Compare commits
No commits in common. "master" and "pages" have entirely different histories.
104 changed files with 14977 additions and 6435 deletions
|
@ -1,36 +0,0 @@
|
|||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
jekyll:
|
||||
runs-on: docker
|
||||
container:
|
||||
image: jvconseil/jekyll-docker
|
||||
steps:
|
||||
- name: Checkout source
|
||||
uses: actions/checkout@v4
|
||||
- name: Checkout built site
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: pages
|
||||
path: _site
|
||||
- name: Setup cache directory
|
||||
run: mkdir .jekyll-cache
|
||||
- name: Install dependencies
|
||||
run: bundle install
|
||||
- name: Build the site
|
||||
run: jekyll build --trace
|
||||
- name: Include the Codeberg pages .domains file
|
||||
run: cp ${{ env.GITHUB_WORKSPACE }}/.domains ${{ env.GITHUB_WORKSPACE }}/_site/.domains
|
||||
- name: Publish Site
|
||||
run: |
|
||||
cd _site
|
||||
git config --global --add safe.directory ${{ env.GITHUB_WORKSPACE }}/_site
|
||||
git config user.name "Scribe [bot]"
|
||||
git config user.email "scribe@niblock.tech"
|
||||
git add -A .
|
||||
git status
|
||||
git commit -m "Automated Publish"
|
||||
git push
|
63
.gitignore
vendored
63
.gitignore
vendored
|
@ -1,63 +0,0 @@
|
|||
# Global gitignore file
|
||||
|
||||
##
|
||||
# Stolen from octocat: https://gist.github.com/octocat/9257657
|
||||
##
|
||||
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
##
|
||||
# Additions
|
||||
##
|
||||
|
||||
# Vim Related #
|
||||
###############
|
||||
*.swp
|
||||
.netrwhist
|
||||
*.un~
|
||||
|
||||
# Ruby #
|
||||
########
|
||||
*.gem
|
||||
/.yardoc/
|
||||
|
||||
# Jekyll #
|
||||
##########
|
||||
.jekyll*
|
||||
_site*
|
748
2015/01/01/Ireland-Log.html
Normal file
748
2015/01/01/Ireland-Log.html
Normal file
|
@ -0,0 +1,748 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Ireland Log</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/01/01/Ireland-Log.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="day-1-072710">Day 1: 07/27/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Melon... *scatter*
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Today is travel day! Heading out right now towards JFK, then a 5 hour lay-over
|
||||
there, then finally taking off towards the Emerald Isle! I’m both excited and
|
||||
anxious, but surprisingly calm. I think it’s to the point where I’m ready to get
|
||||
things moving.</p>
|
||||
|
||||
<p>This flight will be rather uneventful: short 55 minute hop to JFK. I’m looking
|
||||
forward to the longer flight. The time will give me opportunity to read, relax
|
||||
and think… something I haven’t done enough of in the past week.</p>
|
||||
|
||||
<h1 id="day-2-072810">Day 2: 07/28/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Left is safe!
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Today we finally arrived in Ireland, first in Dublin and then Shannon. The trip
|
||||
over was a bit of a challenge: a lack of sleep combined with an atmosphere
|
||||
trying to promote one, all wrapped in the situation of no comfortable way to
|
||||
actually get sleep helped to contribute to me not sleeping more than 30 minutes
|
||||
tops. On the plus side, I did get to watch Dorian Grey and Percy Jackson on the
|
||||
way over. Also, they served a very delicious beef stew for dinner; I was
|
||||
pleasantly surprised.</p>
|
||||
|
||||
<p>Upon arrival, we immediately set out to retrieve our luggage, which arrived
|
||||
mostly unmolested. Then, as we proceeded out of the terminal, we finally found
|
||||
our 4th member, Suf, waiting eagerly for our arrival; he had arrived a day
|
||||
earlier, and had many a story to share about his adventures in Limerick (our
|
||||
eventual destination for the day). We got our car, forgot our GPS, recovered our
|
||||
GPS, and began driving toward Limerick from Shannon Airport. We quickly
|
||||
discovered that, given our American driving-habits, we thought every car driving
|
||||
on the “wrong side of the road” was going to kill us. I think twice we all
|
||||
panicked for fear of our lives. But, once we adjusted (or at least, once Suf
|
||||
did… Cary is still a bit iffy) the drive was relatively quick and painless. We
|
||||
arrived not more than 30 minutes later in Limerick, and made for the City Center
|
||||
to explore on foot the many shops and eateries that the city had to offer, as
|
||||
well as pay a visit to “The Bitter End” Pub, where Suf had visited on the
|
||||
previous night. We explored for a bit, had lunch at The Bitter End, visited a
|
||||
shop so Cary could purchase a couple shilelagh (spelling), wander to a tourist
|
||||
booth for information and, with said acquired directions, made for our first B&B
|
||||
of the trip: Coonagh Lodge. We relaxed and napped a bit at the Lodge, enough to
|
||||
recouperate for a voyage back to Limerick, and made for some dinner and
|
||||
adventure. We explored around, eventually stopping in at a place called
|
||||
“Wokking” for some authentic Irish Chinese food, which turned out to be very
|
||||
tasty and filling. We then explored for a pub, stopping at “Charlie St.
|
||||
George’s” pub for a quick pint and some people-watching. Then, we explored a bit
|
||||
more, and wound up back at The Bitter End to enjoy an evening cup of tea and
|
||||
some relaxing time. After this, we made back to the B&B, where I discovered that
|
||||
my power brick likes to make a weird noise as it charges my laptop. I account it
|
||||
to the different voltage, and pray that it doesn’t explode and kill us all.</p>
|
||||
|
||||
<p>Of most important note, Suf decided to enlighten us with some of his arab cab
|
||||
driving slang, most notable of which is “Why for you fuck my road?” An important
|
||||
question, to be sure, and one to be answered in the days to come. A very steady
|
||||
lean into this adventure, which I prefer to the alternative “kick-in-the-door”
|
||||
style. Hopefully I can figure out some way to get my computer to connect to WPA2
|
||||
connections so I can have internet more readily. At least for tonight, I
|
||||
probably won’t get back on (unfortunate news for my KoL desires. Too many
|
||||
adventures will be wasted after I waste the NS… Oh well…)</p>
|
||||
|
||||
<h1 id="day-3-072910">Day 3: 07/29/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"Ya know, you keep that shirt on much longer, you gonna get jungle rot" - Biff McBodyspray
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Today was our first big travel day. We left Limerick around 11:00 am and made
|
||||
for Galway. Along the way we stopped in at the Cliffs of Moher, and then
|
||||
continued on to our destination in Kinvara.</p>
|
||||
|
||||
<p>The Cliffs of Moher are quite the site to see. Set along the Atlantic Ocean is a
|
||||
couple-mile stretch of sheer cliffs, topped with walkways and occasional watch
|
||||
towers, or at least ruins of them. We walked the Cliffs for about an hour, just
|
||||
exploring the different angles and particulars of the cliffs themselves: the
|
||||
numerous outcroppings, the way the waves would collide with the rock, the caves
|
||||
and small inlets that the water had born away. All these details helped to
|
||||
complete one heck of a view! I also enjoyed the visitor center, which was built
|
||||
into the hillsides near the cliffs.</p>
|
||||
|
||||
<p>After the cliffs, we make our way to Kinvara. We stop briefly at the Burren, a
|
||||
barren area of rocks and not much else. Once we arrive, we check into our B&B
|
||||
and decide to hold off on Galway until tomorrow night. This leaves us with
|
||||
plenty of time to explore Kinvara proper. We relax for a bit and make to town
|
||||
for some dinner and adventures. We decided to stop in at an Italian place called
|
||||
‘The Full Tide Inn’, and while waiting for our food, had quite the heated
|
||||
philosophical discussion. It really put into perspective for me just how
|
||||
unprepared I am to defend my own view/the Stoic view of topics. After dinner, we
|
||||
walked out to Dunguaire Castle, which was unfortunately closed, but we still
|
||||
were able to explore the surrounding grounds. We learned a bit of background
|
||||
from a fellow tourist, and then made our way back into town to buy a few snacks
|
||||
before heading back to our B&B. That night, despite our best laid plans, we
|
||||
weren’t able to get to Scion. However, luckily for me, the internet access at
|
||||
the B&B was unprotected and therefore I could hop onto KoL and finish up my
|
||||
ascension! I bought the trophie available to me (the one regarding food
|
||||
recipies) and clammered through the astral gash to return once more to my life
|
||||
of adventuring. I ascended as a Sauceror, holding onto Pastamancy so I can
|
||||
really start to rack up the bonus adventures from my cooking. A few adventures
|
||||
gone, I manage to get to level 2 the first day, and am very excited to really
|
||||
get this sauce boiling.</p>
|
||||
|
||||
<h1 id="day-4-073010">Day 4: 07/30/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Be-buh-buh-day, be-buh-buh-day, E-DAY-OH, E-DAY-OH, THAT'S OK!
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Holy crap, today seemed like an entire month’s worth of exploration and
|
||||
adventure. After a delicious traditional Irish breakfast, we made for Galway.</p>
|
||||
|
||||
<p>In Galway we parked and set out for our busiest and most fun day yet. I can tell
|
||||
you now that my feet are none to happy about the amount of walking we achieved,
|
||||
but if nothing else this is a good reminder to properly prepare next time: make
|
||||
sure my shoes are comfortable enough to walk around in almost constantly. So, we
|
||||
park and make towards the city center. Galway is situated along the coast of
|
||||
Galway Bay (go figure…) and has a river running through the center of town. We
|
||||
head down the busy pedestrian walkway and hit up a few shops. Chris, Suf and
|
||||
Cary all check out a couple tattoo parlours, and me being less interested make
|
||||
for some good people watching and relax a bit. We continue our walk through the
|
||||
busy crowds, and eventually make our way to the river. Exploring it for a bit,
|
||||
Cary and I decide to stop off at a river-side restaurant called ‘Mustard’, where
|
||||
I get one of the most delicious pulled-pork sandwiches I’ve ever enjoyed.
|
||||
Afterwards, we met back up with Chris and Suf, and walked out towards the bay a
|
||||
bit. As we voyaged further away from the city, we met with a couple of fellow
|
||||
travelers, and discovered a great bar to stop at in town, known as ‘E Brun’ or
|
||||
‘The Bridge.’ At the bar we met Bill, a local of Galway, who told us of many
|
||||
great sites and happenings around town. An important detail of our stay in
|
||||
Galway is that the Galway Races were going on. Evidently, they’re a big deal.</p>
|
||||
|
||||
<p>So, after our stop in the pub and a delicious Guiness, we make to explore and
|
||||
find ‘The Crane,’ where Shela’s son will be playing live music later in the
|
||||
evening. We find it, and gather from another local (and rather attractive) girl
|
||||
the location of a couple of good niteclube. After finding the Crane we decide to
|
||||
hunt our a place to eat, and eventually wander back to ‘Kelly’s’, which helps to
|
||||
bring back nostalgic memories of Geneseo and our own Kelly’s. We enjoy a
|
||||
deliciously filling meal there, compliments of Chris, and find out that later in
|
||||
the evening we can enjoy Crane for some authentic (and rather good) Irish jazz
|
||||
(which sounds not much different from any other type of jazz…). Thus far,
|
||||
although I’ve been able to explain our day in only a few short paragraphs, we’ve
|
||||
experienced to us what has felt like a lifetime worth of exploration. But, the
|
||||
fun is only just about to start.</p>
|
||||
|
||||
<p>10:20pm, and we just left The Crane Bar to head back to the B&B for some
|
||||
kick-ass Scion action. Along the way, we overhear a few clubs, but nothing
|
||||
really catches our ear until we get to Kelly’s. We can hear the beats from
|
||||
outside, we can feel our feet aching but wanting to join in, so we head upstairs
|
||||
and find (!!!)… a bunch of people standing around as a DJ mixes. What a let
|
||||
down! Well, Suf wouldn’t have any of this, and neither would the rest of us, so
|
||||
after settling into our comfortable corner, Suf finally finds a song that he’ll
|
||||
groove to. And groove he does. Following quickly in suite, we join him on the
|
||||
floor and find ourselves almost alone dancing. The 4 American tourists are the
|
||||
only ones dancing in the Irish Niteclub. Almost poetic, mostly pathetic. Well,
|
||||
this quickly changes, as more people flock to the dance floor after seeing our
|
||||
amazing example. And by no means am I exaggerating! We literally started the
|
||||
dance party at a niteclub. We groove it and move it for a good couple of hours
|
||||
before we take off for new adventures. After a bit of exploring, and a lot of
|
||||
drunk people, we decide to split up: Chris and Suf head back to Kelly’s for some
|
||||
more dancing, Cary wanders the street talking to people, and I, the lamest of
|
||||
the group, head back to the car to call it a night. Before long, we all
|
||||
reconvene, load up the GPS and make our way back to the B&B. This night has been
|
||||
legendary, and no degree of detailed description can truly capture just how epic
|
||||
the night was.</p>
|
||||
|
||||
<p>Simply put: Galway was unforgetable.</p>
|
||||
|
||||
<h1 id="day-5-073110">Day 5: 07/31/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"Where are we heading again? Ballerina?" "BALLINA!"
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After the unbelievable adventure of Galway, we head out for our next stop in
|
||||
Northwest Ireland: Ballina.</p>
|
||||
|
||||
<p>We set off after saying goodbye to our thus-far favorite B&B and host Shiela,
|
||||
and head north. As we’re driving, we spot a few turn offs and decide to stop at
|
||||
one of them to explore a bit of the countryside. We find our way onto a
|
||||
mountain, scale the smaller hills leading up to it, and eventually make our way
|
||||
back to the car to continue walking. As we’re driving, we happen across one of
|
||||
the more epic scenes of our voyage: the carved out “seat” of a mountain, which
|
||||
we refer to afterwards as ‘The God Seat.’ Surely, the scene of epic Scion games
|
||||
to come.</p>
|
||||
|
||||
<p>As we continue along our voyage, we stop off at Kylemore Abbey, the most
|
||||
stunning scene I’ve seen in my life thus far. Imagine a white and grey castle,
|
||||
then make it less war-oriented and more beautiful, then set it on a gorgeous
|
||||
lake, at the base of a very impressive mountain. That’s Kylemore Abbey. We park
|
||||
and explore a bit, and I get several good pictures. Further, I manage to spot a
|
||||
statue of something half way up the mountain, made of white stone. Whoever made
|
||||
this statue certainly had a lot of determination!</p>
|
||||
|
||||
<p>We leave the Abbey and finish our journey to our B&B for the evening. We relax,
|
||||
settle in, and finally get to playing some Scion. Cary volunteered to run
|
||||
first, so we play through the first half of his one shot: saving a ‘shie’ from
|
||||
an Irish scion and his giant lackies. My character, a defensive tank named
|
||||
Derrick Nasher, does quite well. We finish up the session, spend our exp (making
|
||||
us even more boss), and crash for a relatively early night.</p>
|
||||
|
||||
<p>This B&B also has an encrypted internet, so at first I’m out of luck. However,
|
||||
on a whim I try out the Chromium build I brought along (thanks Hexxeh!!), and
|
||||
manage to easily set up a connection through that! I can’t upload any files or
|
||||
pictures very well, but I can still play some KoL and post a few updates to my
|
||||
social sites. Also, Google Voice has proven to be a godsend! Being able to text
|
||||
from a website has been my primary means of keeping in contact with the family
|
||||
back at home.</p>
|
||||
|
||||
<h1 id="day-6-080110">Day 6: 08/01/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"...just chillax..."
|
||||
|
||||
"Woah... I never expected to hear 'chillax' outside of the states!"
|
||||
|
||||
- A conversation between Kim and Chris
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Day 2 of our stay in Ballina. We eat an early breakfast and make for Killary
|
||||
Adventure for some archery!</p>
|
||||
|
||||
<p>We arrive in Killary around noon, and enjoy an hour of arching with our
|
||||
instructor Kim and another instructor named Dugal. I managed to shoot 2
|
||||
bullseyes! It’s amazing that if you actually hold the weapon properly and keep
|
||||
proper form, you can actually aim with it. Never would have thought otherwise…
|
||||
(/sarcasm). We joked, tried out some trick shooting, played a HORSE-style game,
|
||||
and all-in-all came out of the adventure feeling really great. Plus, we all got
|
||||
some wicked “battle wounds” from the bow on our forearms.</p>
|
||||
|
||||
<p>After the archery, we decide to head to Westport, on advice from Kim, for some
|
||||
shopping and to get lunch. We immediately (perhaps fatefully) stumble upon a
|
||||
place called ‘The Asgard’ and decide that there’s no better place to eat in town
|
||||
than here. I enjoy some Bangers and Mash - Asgard Style - and feel the wonderful
|
||||
feeling of fulness once more. This trip has been a wonderful venture in
|
||||
delicious foods. The traditional Irish breakfast (Egg, real bacon, sausages,
|
||||
black and white pudding, half a tomatoe, toast, tea and juice) is so filling
|
||||
that most of the time we feel no need to eat before dinner. Today, though, was a
|
||||
glaring exception; that, and we had a different breakfast of pancakes and
|
||||
poached eggs. After the Bangers and Mash, we split up: I head off to explore the
|
||||
riverway and the port, while the others go shopping. I manage to snap quite a
|
||||
few nice pictures, and figure out some more features on the camera, before we
|
||||
meet back up and head back to Ballina, and then onwards to Enniscrone, the
|
||||
birthplace of Cary’s ancestors, the Grimes.</p>
|
||||
|
||||
<p>We arrive in Enniscrone around 4:00 in the afternoon, to a beautiful sunny day
|
||||
and warm weather. Enniscrone in a beach town, so we split up once again, with me
|
||||
heading out towards the beach and the others once more hitting up the shops. I
|
||||
walk along the Atlantic Ocean, soaking in the waves and the rays, and eventually
|
||||
make my way back to the car to relax for a bit. We head back to the B&B, rest
|
||||
for a bit, and decide that heading back to Enniscrone for some delicious,
|
||||
authentic Irish-Chinese food would be best. And best it was: we discovered the
|
||||
awesomness and addictivness that is puffed-rice prawn crisps. Dinner was good,
|
||||
too.</p>
|
||||
|
||||
<p>We head back to the B&B and finish up Cary’s session of Scion. Chris set his
|
||||
crab-tank relic for self-destruct and took care of all the giants for us, while
|
||||
I managed to manipulate our crazy Irish scion friend Brian that he forgot how to
|
||||
fight, which led to his untimely demise (or at least him falling
|
||||
unconscious…). We saved the ‘shie’, secured the relic protected inside it, and
|
||||
got Brian’s birthrights for ourselves. A success, and a good start to our Scion
|
||||
adventures yet to come. Cary hands the GM torch over to Chris, and we begin his
|
||||
session tonight: we get tasked by Brigid (one of the Tuatha) to help out one of
|
||||
her daughters. We manage to find her just in time for the night to expire, and
|
||||
so we call it there. In KoL, I’ve managed to get to level 4, half-way towards 5,
|
||||
before I call it a night. I haven’t yet played all my available turns, but I’m
|
||||
making decent progress. With a bit more practice I can probably get getting to
|
||||
level 6 a 2-day process, which will help to speed through the slower part of the
|
||||
game.</p>
|
||||
|
||||
<h1 id="day-7-080210">Day 7: 08/02/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Worst. Bank. Holiday. Ever.
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After a restful evening, and another delicious breakfast of pancakes and poached
|
||||
eggs, we enjoy a quick chat with John, our host, before heading off on our
|
||||
“driving day from hell.” Our course will take us through the middle of Ireland,
|
||||
stopping off at Athlone to see the oldest bar in Ireland (and perhaps the world)
|
||||
and eventually into Tipperary for the evening</p>
|
||||
|
||||
<p>Our first stop of the day is in Athlone, a city smack-dab in the middle of
|
||||
Ireland. The drive to Athlone was a bit long, but still strikingly beautiful. It
|
||||
seems like Ireland, despite it’s rather small size, is still host to some of the
|
||||
most grandiouse and beautiful scenes I’ve ever seen. We arrive in Athlone around
|
||||
noon, and wander around a bit. Suf, Cary and I all stop in at ‘The Snug’ for a
|
||||
quick pint, before we take off across the bridge in the middle of town to hit up
|
||||
some shopping. We stop off in Athlone Castle along the way for some great
|
||||
pictures, and run into Chris, who had wandered off to find some shops, after we
|
||||
cross the bridge. Chris and I decide to backtrack to the Castle, then wander
|
||||
around before we head back to Sean’s. Sean’s is the oldest bar in Ireland,
|
||||
dating back towards 900AD, and quite possible the oldest bar in the world.
|
||||
Obviously, I enjoy a pint of Guiness before we head back to the car and continue
|
||||
along our day’s journey.</p>
|
||||
|
||||
<p>We decide to stop off at Clanmocnoise Abbey, a ruined abbey just south of
|
||||
Athlone, before heading out to Tipperary. The sites there are truely amazing,
|
||||
and the ruined Abbey is quite cool as well. The conservation attempts have, thus
|
||||
far, done a good job of maintaining what was salvageable, but the Abbey itself
|
||||
is beyond repair. After some cool pictures, we continue on our way to Tipperary.</p>
|
||||
|
||||
<p>We finally arrive at our destination for the evening. Tipperary is a small town,
|
||||
with a good amount of shops and a very comfortable atmosphere. Unfortunately,
|
||||
and unknown to us, due to the Bank Holiday most of the food shops are closed. We
|
||||
settle for a fast-food place called “American Stars” and apologize to our
|
||||
digestive tracks before heading back to our B&B for some Scion action.</p>
|
||||
|
||||
<p>Scion has us defending Nikki from a couple of Fenrir, which we succeed in doing,
|
||||
and then finding out our target was, in fact, a doppleganger. We discover this a
|
||||
bit too late, though, and end our session assaulting ‘The God Seat’ and a Norse
|
||||
Scion, who claims that “the ginger bitch has got to go.” Well, Derrick’ll be
|
||||
damned if he let’s a potential future employer die that easily. The stage is set
|
||||
as both Derrick and the Norse Scion enter their Collosus Armor, Cary’s Scion
|
||||
enters his Warpspasm, and Suf’s Scion prepares to make pincushins out of the
|
||||
Frost Giants. After Scion comes KoL, which sees my progression to level 5 and
|
||||
acquisition of Advanced Sausecrafting. I adventure for a bit more, before
|
||||
fatigue wins and I succumb to sleep.</p>
|
||||
|
||||
<h1 id="day-8-080310">Day 8: 08/03/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"There any bars... excuse me... pubs around here?"
|
||||
|
||||
"Welcome to Ireland, lad!"
|
||||
|
||||
- A conversation between me and a bouncer
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Today we headed back to the Rock of Cashel to get a great tour around the castle
|
||||
grounds. I took lots of pictures, bought a few things for myself and a great
|
||||
sweater for my mom, fall down a few steps while wandering the castle grounds
|
||||
(resulting in a beautiful leg-bruise to match my archery-provided battle wound
|
||||
on my forearm), and we wrap up Tipperary and head to Cork.</p>
|
||||
|
||||
<p>We arrive in Cork and are immediately thrust into the realization that Cork is
|
||||
quite the large, industrial city. After a bit of confusion finding our way to
|
||||
our B&B for the night, we decide to take some naps to recover some energy and
|
||||
mana, and head out to find dinner and some nighttime entertainment. On the
|
||||
generocity of our very funny and cheery innkeep, we head to a place called
|
||||
Zak’s, and are pleasantly surprised in the meal; I had a delicious Irish-beef
|
||||
burger, some awesome garlic bread, and a Murphy’s to wash it all down (Murphy’s
|
||||
is brewed in Cork; Guiness is not very welcomed here). We finish dinner, and
|
||||
head out to find some clubs for the night.</p>
|
||||
|
||||
<p>We start our evening off wandering the neighborhood around Zak’s. We find a
|
||||
place, rather populated and playing somewhat good music, but quickly discover
|
||||
it’s overpopulated with Binfo for the night. We pass this pub, and ask the
|
||||
bouncer for any suggestions, and get pointed towards a place called “Sober
|
||||
Lane.” Ignoring the odd name, we head off in the appropriate direction and run
|
||||
into a metal pub along the way, so I insist we stop in and enjoy a drink. We get
|
||||
a pint, enjoy the music, and move on. ‘Sober Lane’ turns out to be a much
|
||||
younger-oriented pub, which doesn’t dissappoint us, but it really pulls through
|
||||
when Chris discovers the dart board in the back corner. We quickly take it over,
|
||||
playing darts until the pub closes (oddly early, for our expectations), and
|
||||
Chris and I head out to relax outside. Cary and Suf, being the charmers that
|
||||
they are, end up chatting it with two girls local to the area, who invite all of
|
||||
us back to a place called ‘Cruscien Lar’ (which we all continually misunderstand
|
||||
as crusifixion). We follow them through the streets of Cork, and eventually wind
|
||||
up at the closed pub. They hit the secret side enterence, and convince the owner
|
||||
and co. to let us in.</p>
|
||||
|
||||
<p>Cruscien Lar (which I’m sure I’m spelling wrong), ended up being the undeniable
|
||||
high point of Cork. Once we got a bit more comfortable and began chatting with
|
||||
everyone, we really ended up enjoying ourselves! And then, we met Alan. Alan is
|
||||
a veritable world travelling musician. He has been pretty much everywhere,
|
||||
including state side, with his band ‘The Jordans’ and he had many tales to share
|
||||
with us. He mentioned that the prices for alcohol (and women (…and drugs))
|
||||
were best in Slovakia, that you’ll never see anything more beautiful than the
|
||||
Southeastern Asian countries, and that Russia really isn’t that bad a place.
|
||||
Really a lot of what we talked about fell into those topics, and it was a
|
||||
conversation which I enjoyed thoroughly. Alan taught me that being a world
|
||||
traveller doesn’t take gobs of money and resources. All it takes is a desire to
|
||||
explore, and a willingness to step outside your comfortable little box.</p>
|
||||
|
||||
<p>Throughout the night we talked with Alan, and his friends Marie and Ger (the
|
||||
girls which Cary and Suf connected with), about not only their travels, but also
|
||||
their taste in music (which was gloriously metal-oriented), their careers, their
|
||||
adventures and their aspirations. As the night wound down, we all said our
|
||||
farewells, and left through the side door. Our night was almost at an end! As we
|
||||
wandered back to the B&B, we stumbled across a rather rowdy bunch, and Suf,
|
||||
being the social butterfly that he is, decided to hop on board. We eventually
|
||||
were introduced to Nollagh and her friends, who were travelling in our direction
|
||||
to a supposed party. Considering we’re still young, as was the night, we tagged
|
||||
along and were eager to arrive at another Irish party. Sadly, the party was a
|
||||
bit of a bust, and seeing as we were so close to home, we decided to just call
|
||||
it a night. An awesome night, almost so much to as to rival our crazy adventures
|
||||
in Galway.</p>
|
||||
|
||||
<h1 id="day-9-080410">Day 9: 08/04/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>My father's name is Merry Merry Mack!
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After a rather enjoyable rest, we departed from Cork on our way to our final
|
||||
“big city” stop: Killarney. Killarney has a very homey feel about it. There are
|
||||
plenty of tourist shops, plenty of sites and sounds to experience, and the night
|
||||
life is absolutely amazing, but more on that in a bit.</p>
|
||||
|
||||
<p>We arrived at our B&B to find that the owner had stepped out for a bit, so we
|
||||
decided to just park and wander into town. We quickly found some great shops,
|
||||
restaurants, pubs, and other such attractions. Chris and I wandered around a few
|
||||
places, and I ended up finding a few good gifts for the family: a corkscrew and
|
||||
wine stopper for dad, both made of pewter; and a hat for Eric, which I think
|
||||
will suit him quite nicely. After a bit more wandering, we headed back to the
|
||||
B&B to relax and recover before we hit the town.</p>
|
||||
|
||||
<p>I think the most memorable part of Killarney for me was all the festivities
|
||||
going on at night in the city. Almost every pub had live music, there were
|
||||
people out walking and having a great time. There were lights, and food, and
|
||||
music, and drinks… it just felt like a fun place to be! We started our night
|
||||
wandering around a bit, and found ourselves at an outside banquet of sorts, with
|
||||
life music. Suf and I, exemplifying our boistrious nature, led the singing of
|
||||
the chorus (see the quote), and made our mark early in the Killarney
|
||||
perspective. After our job was done there, we found our way to a pub called
|
||||
‘Scruffy’s’, near an amazing hotel. The band playing there had some great
|
||||
traditional music as well, which we joined in on. Had a pint, made some friends,
|
||||
moved on down the road to our final destination for the evening: McSorley’s.
|
||||
McSorley’s is appropriately named because my feet at the end of the night were
|
||||
very McSore. To say the least, McSorely’s is about 50% enough to keep me in
|
||||
Ireland. The drinks were great, the atmosphere was amazing, and, the best part
|
||||
of all, the music was fantastic. This particular evening we were treated to a
|
||||
performance by a ground called “Zoot Allures”, a cover band. They played an
|
||||
AMAZING set, with so many great songs, and such great energy, that it made me
|
||||
really wish American clubs would pull their heads out of their asses and
|
||||
actually play good music. Anyways, amazing music was played, several videos
|
||||
were filmed, more-than-several beverages were consumed, and at the end of the
|
||||
night, the lead singer from the group gave me a great, big bear hug. Naturally,
|
||||
I returned the favor.</p>
|
||||
|
||||
<p>Well, Zoot Allures wasn’t the end of the night for us, as McSorely’s has a
|
||||
secret back room dance club, so we obviously had to make use of that. We danced
|
||||
for a good while, then Chris, Cary and I decided to take off and get back to the
|
||||
B&B to sleep. We left a window open for Suf. Once again, to say the least,
|
||||
Killarney is absolutely amazing!</p>
|
||||
|
||||
<h1 id="day-10-080510">Day 10: 08/05/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>The room fell silent, as the man lowered his microphone to the crowd. A single
|
||||
bewildered bystander asked, "Yeah?" The man only nodded, a knowning nod. The
|
||||
bystander tipped his head back, and breathed deep the pub air, and finally, as
|
||||
the tension grew to an unberable level, cried out: "THUNDERSTRUCK!!!"
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>I thought the first night was amazing. Holy crap this town just keeps getting
|
||||
better and better!</p>
|
||||
|
||||
<p>So, day 2. After some great, great sleep (which, of the 4 of us, I’m the only
|
||||
one to wake up in time for breakfast), I clean myself up and head to town.
|
||||
Yesterday I had seen an “internet cafe,” and figured it would be similar to what
|
||||
we call internet cafes in America (I was wrong), so I made my way there to get
|
||||
my KoL fix, and check up on the tubes. Well, the internet cafe was a
|
||||
pay-per-use computer room, so I threw my cash at the front desk and got a couple
|
||||
hours of hardcore internet access. KoL Update: beat the boss bat, the Goblin
|
||||
King, and the first part of my Nemesis quest. Not bad, I guess, but I think it’s
|
||||
safe to say that juggling an acension with travelling abroad is a bit difficult,
|
||||
unless you know what you’re doing. I don’t, for the most part.</p>
|
||||
|
||||
<p>After lunch at a (surprise!) Chinese food place, we decided to take the
|
||||
afternoon off and head back to the B&B to play some more Scion, before
|
||||
McSorley’s opened up again. We did some great stuff, saved the freckled Scion,
|
||||
then I made the decision to let her die (which ended up coinciding with some
|
||||
major character development, so that’s nice), and then Cary’s character died
|
||||
defending her. So, all in all, we failed our mission, but succeeded at Scion.
|
||||
Huh.</p>
|
||||
|
||||
<p>Anyways, McSorley’s opened up shortly after the game, so we hit up dinner (more
|
||||
Chinese), and I spent some time wandering around getting pictures of the pubs we
|
||||
had visited. It’s funny: my dad complimented me on all the pictures of the
|
||||
beautiful scenary and what not, but he asked a very important questions: where
|
||||
are all the pubs?? So I tried to rectify that our last night in Killarney,
|
||||
snapping a picture of a few placed before winding my way back to McSorley’s for
|
||||
the evening. Round 2… FIGHT!</p>
|
||||
|
||||
<p>The cover band at McSorley’s tonight was not as good as the other band, which is
|
||||
the equivalent as saying that the 200000 Candle-Power flashlight isn’t as bright
|
||||
as the 300000 Candle-power one: they’re both way brighter (or, awesomer in this
|
||||
case) than the required flashlight (or, typical American cover band, in this
|
||||
case). Tonight’s show was by Revenge, who paid tribute to some of the older
|
||||
songs, including quite a bit of ACDC. We rocked out hard core, really supporting
|
||||
the band out front by dancing and singing along. Then the moment happened, the
|
||||
moment that Chris has claimed is the most epic moment of the trip. The quote
|
||||
says it all, but in short: the band was playing Thunderstruck by ACDC, and the
|
||||
lead singer lowered the mic to me to scream “THUNDERSTRUCK!!” into, and it was
|
||||
amazing timing. I do have to say, sometimes my timing is spectacular. Anyways,
|
||||
that memory will stick with me forever, and I think with Chris, Suf and Cary as
|
||||
well, so I consider this night an unbelievable success.</p>
|
||||
|
||||
<p>Once more, we invaded the back room, only this time we stayed until close. We
|
||||
danced our way into another dance party, because evidently we’re all Lords of
|
||||
the Dance, and met some new friends: May, a French girl there with friends. We
|
||||
danced with them, we danced with total strangers, and we danced until we
|
||||
couldn’t dance any more! I literally understood what it meant to be out of mana
|
||||
that night. I had barely the energy to return home, before I just passed out on
|
||||
my bed.</p>
|
||||
|
||||
<p>Killarney is the city I would most enjoy in Ireland. Of all the places we’ve
|
||||
gone, it’s the city which feels the most alive. It has the loudest pulse, the
|
||||
brightest flash, the sweetest music; it’s the type of environment I want to live
|
||||
in. While I don’t think Ireland is quite the island for me, if I did decide to
|
||||
live here, Killarney would be my final destination.</p>
|
||||
|
||||
<h1 id="day-11-080610">Day 11: 08/06/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Wow, this place is nice. I don't think we belong here.
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Today we all are taking a bit of a down day. After the past 2 nights, I’m
|
||||
exhausted, and ready to just sit around a do nothing for a bit. Well,
|
||||
conveniently Cary is getting his tattoo today, so I got my wish. We check out of
|
||||
our B&B, pack up the car, park in town and go exploring a bit more. After I
|
||||
stop at the Tourist Information, I learn of a free Wi-Fi pub nearby, and relax
|
||||
there for a couple of hours, enjoying some tea and playing some KoL. I don’t
|
||||
really achieve anything of any worth in game, and Suf, Cary and Chris show up
|
||||
just in time for us to work on our Scion characters a bit and head to dinner. We
|
||||
go to the Chinese food place we hit up last night for lunch, and then Cary must
|
||||
depart for his tattoo. Chris, Suf and I all decide to wander back into the pub
|
||||
for a bit, where I finish up my KoL for the day, enjoy some more Scion, check
|
||||
the email, and generally just chillax.</p>
|
||||
|
||||
<p>We leave Killarney around 5:30 and arrive at our second-to-last destination,
|
||||
Ballyseede Castle Hotel. Since we have nothing to do until later, we settle in,
|
||||
relax for a bit and get to playing some more Scion. That’s right: WE ROLEPLAYED
|
||||
IN A CASTLE.</p>
|
||||
|
||||
<p>After the session, we split up: Cary, Suf and Chris all head back to Killarney
|
||||
(a whopping 15 minute drive) to hit up McSorley’s again, and I lame out and take
|
||||
the night off. Whilst waiting for sleep to drift in, I enjoy some good ol’
|
||||
American past-time and watch a bit o’ telly: ‘Analyze That’ was on. I watched
|
||||
‘Analyze That’ in a castle. Today is just full of achievements!</p>
|
||||
|
||||
<h1 id="day-12-080710">Day 12: 08/07/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"Ma'am? A quick question. We named the dogs: this one is named Roger the Mighty,
|
||||
and this one is named George the Stout. How close were we?"
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After a wonderful night’s rest in the castle, we pack up our things, enjoy a
|
||||
delicious breakfast, explore the castle grounds a bit more, and head off to our
|
||||
final B&B, just outside of Shannon.</p>
|
||||
|
||||
<p>As we approached our destination, we decided to stop by Limerick for
|
||||
lunch/dinner and just explore our initial landing grounds one last time. We
|
||||
wander to ‘The Bitter End’, take some pictures, and find our way to a Chinese
|
||||
food place (big surprise) and an outdoor pub. Since we couldn’t decide on which
|
||||
one to go to, I suggested we go to both. This decision was met with much
|
||||
happiness. After we finished our Chinese food (quite delicious), we headed next
|
||||
door, and was met with delicious desserts and beautiful women. Our waitress let
|
||||
slip it was her birthday, so in true, boistrious American style, we sang her
|
||||
‘Happy Birthday!’ (Hope it was a good one, Sam!). Apparently she got in trouble
|
||||
for that… Oops…</p>
|
||||
|
||||
<p>Anyways, we hit up our B&B to drop stuff off, and repack our bags for tomorrow’s
|
||||
trip, and finish up our Scion campaign. We hopped out to ‘Durty Nelly’s’ for a
|
||||
quick dinner (and sadly, our waitress Una already had her birthday a month ago)
|
||||
of traditional Fish and Chips, then back to the B&B to finish up our night
|
||||
rolling the dice. With the campaign finished, we hit the hay in preparation for
|
||||
tomorrow’s voyage. Hopefully none of my loot get’s wrecked!</p>
|
||||
|
||||
<h1 id="day-13-080810">Day 13: 08/08/10</h1>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"Do I really have to be the asshole to say that we travelled back in time in
|
||||
that hot tub?" - Hot Tub Time Machine
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>And just as quickly as it began, our whirlwind tour comes to an end. We left the
|
||||
B&B early this morning to get to the airport, returned the car without a fuss,
|
||||
checked in our baggage, shuffled through customs and passport checks, and
|
||||
eventually found our way to the gate. The airport in Shannon has free Wi-Fi,
|
||||
which is epic, so I whiddle away at my turn-count in KoL, achieving little but
|
||||
still enjoying the game. Shoot off a text to mom letting her know things are on
|
||||
time, and eventually board my first of three flights for the day.</p>
|
||||
|
||||
<p>The flight is rather uneventful. We’re seated next to a kid flying back from a
|
||||
wedding, so it was fun to chat with him for a bit. Then, onto the free movies:
|
||||
Iron Man 2 (pretty boss), Hot Tub Time Machine (really, quite the unknown
|
||||
comedy. Hilarious!) and Repo Men (meh, not really my bowl of soup…) round out
|
||||
the trip. We land soundly in JFK, disembark, and find our next flight delayed,
|
||||
so Chris, Suf and I, after bidding farewell to Cary at the Terminal, head to
|
||||
‘NYC Sports Grill’, right outside our arrival gate from the beginning of the
|
||||
voyage, and enjoy some good ol’ fashion American burgers before our flight to
|
||||
Boston.</p>
|
||||
|
||||
<p>The flight to Boston is painless, despite the Logan Airport’s best attempt at
|
||||
being the worst air port ever (I just really don’t like it). We land safe and
|
||||
sound back home, and I eagerly make my way to baggage claim to make sure
|
||||
everything is safe there. I get my bags (w00t), find everything in one piece and
|
||||
accounted for (w00t x2), and bid Chris and Lindsay farewell as my parents drive
|
||||
up in the van.</p>
|
||||
|
||||
<p>Thus, our voyage ends. A successful first trip overseas, and a more-or-less
|
||||
successful first attempt at travel blogging too. Methinks I’ll have to try this
|
||||
again sometime. Farewell, and as they say on the Emerald Isle: CHEERS!</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-01-01
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
231
2015/04/28/Farewell-to-Windows-Tour.html
Normal file
231
2015/04/28/Farewell-to-Windows-Tour.html
Normal file
|
@ -0,0 +1,231 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Bye Bye Windows</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/04/28/Farewell-to-Windows-Tour.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Farewell to Windows Tour 2015</h1>
|
||||
<p>It has come time to bid Windows farewell. Once upon a time Windows was
|
||||
the only digital world I knew. It began when I was young, during the
|
||||
venerable 3.1 era. I remember booting up our family computer into DOS, and
|
||||
before starting Windows I could start Doom 2 or Keen's Dream, or any
|
||||
number of other games. That was my first interaction with a command line.
|
||||
My, my, how times have changed.</p>
|
||||
|
||||
<p>From Doom 2 and Keen I went on to Baldur's Gate and Battlezone. I
|
||||
dabbled here and there in NES/Sega/SNES/Genesis stuff, but PC gaming
|
||||
always held my attention. The only exception to this was my Gameboy with
|
||||
Pokemon, because that game is literal crack to a 12 year old. Baldur's
|
||||
Gate held my attention like only a classic RPG can, and I remember
|
||||
pouring over the manual and this guidebook I had to learn as much as I
|
||||
could about the world the game created. Around this time I was also
|
||||
getting into Dungeons and Dragons (Satan's game!), so there was a
|
||||
definite mixture of digital and tabletop gaming. Battlezone, on the
|
||||
other hand, was introduced to me by my good friend Rob, and became a
|
||||
classic among my group of friends. Then, of course, Smash Bros became
|
||||
a thing and that was our game of choice. That and Soul Calibur; ah
|
||||
memories.</p>
|
||||
|
||||
<p>It wasn't until relatively recently that I ever even tried gaming on
|
||||
Linux. My senior year of high school I was introduced to Linux by my
|
||||
friend Ben. That spawned the interest, but it was always secondary to
|
||||
my true love of computers, gaming. Throughout college I had an Asus
|
||||
netbook, which was always my Linux machine, but I still had my Windows
|
||||
desktop, which was my gaming machine. Windows was essential for gaming:
|
||||
Steam; Final Fantasy 11 (yes, I know.); triple-A titles. These
|
||||
were "Windows Exclusives," unless I wanted to venture into console
|
||||
territory. Thus it remained, throughout college and my early-mid 20's.
|
||||
Then something magical happened: Steam came to Linux. That was the
|
||||
deathblow to Windows in my book, at least for my needs. I had long ago
|
||||
dropped my interest in many games, leaving a small but well-loved list of
|
||||
games that I do still care about. The majority of these are now supported
|
||||
on Linux, but there are a few which remain Windows only. That is what this
|
||||
"tour" is for; the last few games I want to play on Windows, before I go
|
||||
Linux only.</p>
|
||||
|
||||
<h3>Featuring</h3>
|
||||
<p>The list isn't huge, but there are some definite strong players:</p>
|
||||
<ul>
|
||||
<li>Dark Souls and Dark Souls 2</li>
|
||||
<li>Dishonored</li>
|
||||
<li>Duke Nuken Forever</li>
|
||||
<li>Far Cry 3: Blood Dragon</li>
|
||||
<li>Spec Ops: The Line</li>
|
||||
</ul>
|
||||
<p>Mostly "newer" games, mostly graphics-intensive games. I know these
|
||||
run fine on Windows, and they may work in Wine but I don't feel like
|
||||
either figuring out if they do, or trying to make them play nice.</p>
|
||||
|
||||
<h3>Special Guest Appearances By</h3>
|
||||
<p>There are a few games that I will fiddle with to get working in Wine
|
||||
though, and these are games I don't quite want to let go, but still are
|
||||
Windows only: Skyrim and Guild Wars 2. I love Guild Wars 2, I think it's
|
||||
the best MMO on the market, with the most supportive and friendly
|
||||
community and one of the best developers. Skyrim is, well, Skyrim; I like
|
||||
hitting things. Chivalry would be a close third on this list, but Chivalry
|
||||
is on Linux now, so I can scream my lungs out and stab people whenever I
|
||||
want. Regardless, I imagine I'll be playing plenty of each of these while
|
||||
finishing up the main list.</p>
|
||||
|
||||
<h3>Tickets on Sale Now!</h3>
|
||||
<p>Well, not exactly. But this would be a fantastic way to get into
|
||||
streaming, and maybe I'll transition from Windows to Linux with that as
|
||||
well. Streaming has always been something I've wanted to do, but never had
|
||||
the time nor effort to pursue. So, either tradition will hold strong, or a
|
||||
new challenger will appear. Until then.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-04-28
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
256
2015/05/04/Philosophy-of-Bill-1.html
Normal file
256
2015/05/04/Philosophy-of-Bill-1.html
Normal file
|
@ -0,0 +1,256 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Philosophy of Bill</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/05/04/Philosophy-of-Bill-1.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="perception-and-thought">Perception And Thought</h1>
|
||||
|
||||
<p>I consider myself a very philosophical person. That doesn’t mean I’m any
|
||||
good at philosophy, I just tend to think a lot about ethics, morality, and
|
||||
happiness. Recently I’ve been thinking more about my worldview, what I
|
||||
value as important, and how I achieve happiness in my daily life. I wanted
|
||||
to jot down what I feel is a brief examination of my basic tenants; the
|
||||
basic Philosophy of Bill.</p>
|
||||
|
||||
<p>I derive a lot of my philosophy from my Christian up-bringing and
|
||||
Stoicism. I’m not a very religious person, though. I never really was. My
|
||||
belief of what God is falls strongly under the agnostic category: I’m not
|
||||
sure what God is, or if I believe in a God, but I do believe in a higher
|
||||
power of some sort. I feel it’s logical to always assume there is something
|
||||
more powerful than yourself, but I also feel it’s impossible to prove this.
|
||||
I like to define faith as simply irrational belief. I have faith in many
|
||||
things, both permanent and temporary. I like faith, actually, quite a bit.
|
||||
I admire those who have strong faith, so long as they maintain reason and
|
||||
are not fanatical. I also try to maintain a very open approach to religion.
|
||||
I believe everyone has the right to worship however they choose, so long as
|
||||
it does not involve anything overly immoral, such as killing. I have a hard
|
||||
time tolerating people who are overly zealous about their faith, or about
|
||||
denouncing someone else’s faith. Nothing is more disgusting than attacking
|
||||
someone for their beliefs. They are called beliefs for a reason; they are
|
||||
not fact, they are opinion. It’s ineffective to attack opinions, because
|
||||
they are ephemeral to begin with. Like trying to hit a ghost with a
|
||||
lamp-post: it just won’t do what you think it will.</p>
|
||||
|
||||
<p>I love debate and discussion, but there is a clear difference between
|
||||
debate for truth and argument for winning. I try to keep in the first camp,
|
||||
but I’m not super-human and I have an ego so I often visit the later.
|
||||
However, I always learn when I make mistakes, and I cherish when I fail,
|
||||
because it only serves to better myself. I think that’s the most
|
||||
fundamental under-lying theme of my philosophy: always better myself;
|
||||
always learn something. That ego thing, though, that’s a tough monster to
|
||||
handle. I’ve found myself adopting views similar to Zen Buddism (I think)
|
||||
often when trying to quell my ego:</p>
|
||||
|
||||
<ul>
|
||||
<li>All will return to nothingness.</li>
|
||||
<li>Ergo, what I do will be inconsequential.</li>
|
||||
<li>Ergo, I am inconsequential.</li>
|
||||
</ul>
|
||||
|
||||
<p>I think most people hear this and grow disheartened or depressed, but I
|
||||
view it as very uplifting. There’s a certain freedom in knowning that, no
|
||||
matter how much I fail, in the end it won’t matter much. It’s sobering to
|
||||
remember that no matter how much I’ve achieved or won, in the end it won’t
|
||||
matter much. It’s important to remember that I am nothing but an improbable
|
||||
spec of matter floating on a rock in an unimaginably vast and empty space.
|
||||
Too many people get caught up on that “in the end” part, though, and they
|
||||
begin to question why they should act at all. Well, there’s a bit of time
|
||||
between now and “the end” and you need to fill the void with something. For
|
||||
me, that’s learning, and understanding, and appreciating.</p>
|
||||
|
||||
<p>In my studies, I’ve discovered and adopted Stoicism as a philosophy. I
|
||||
won’t explain too much what Stoicism is about, since there are many sources
|
||||
online which do that. I apply Stoicism mostly in the mental aspects of the
|
||||
philosophy, and less in the faith/religious aspects. From Stoicism, I have
|
||||
reinforced my beliefs in the importance of understanding our environment. I
|
||||
remind myself every day of things I cannot control, and that I can only
|
||||
control my perception of things. I try to act according to logic and
|
||||
wisdom, and not according to feelings, which can hamper reason. For
|
||||
example, I try not to let anger control my actions if I get trolled by my
|
||||
friend Nick. I understand that anger, love, stress, and all other feelings
|
||||
are very much out of my control, but allowing them to control me is well
|
||||
within my control. In other words, I very much get angry, or grow lustful,
|
||||
or prideful, but I try not to let those feelings dictate my actions. I
|
||||
believe it was Seneca the Younger who said, “Men are not angered by things,
|
||||
but by their perceptions of them.” One of many mantra I keep in
|
||||
reserve.</p>
|
||||
|
||||
<p>The most important thing in my life, though, is not control but
|
||||
happiness. I can seek to control my perceptions and emotions all I want,
|
||||
but if it does not lead to happiness, it is a fruitless endeavor. I find
|
||||
happiness most when I learn; when I understand a system. I’m an engineer at
|
||||
heart, so I view the world as a system of systems (of systems, of
|
||||
systems…) each of which is bare to understanding. I free myself from ego
|
||||
and oppression so that I can learn without fear of failure or the
|
||||
disapproval of my peers. I like to always remind myself that the only
|
||||
person who truly cares about me, is me. That’s not to say others don’t care
|
||||
about me, but they care about themselves first, and me afterwards. That’s
|
||||
how things are; it’s not wrong or depressing or hurtful it’s just the way
|
||||
the system works. I care for many people, but I’m always number one on the
|
||||
list.</p>
|
||||
|
||||
<p>While all this is well and good, philosophy is an ever changing system;
|
||||
a CICD environment. I am constantly integrating new ideas and concepts into
|
||||
my understanding of the world, and sometimes purging old or unnecessary
|
||||
ones. I have my fair-share of quandries, perhaps more so than others;
|
||||
perhaps it’s an unfair-share. That’s what makes it worth it, though, to me.
|
||||
I seek to learn, and in doing so, find happiness and confusion. It’s a
|
||||
recursive system: the confusion leads to learning, which leads to happiness
|
||||
and confusion. And I love recursion.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-05-04
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
302
2015/05/06/TLS-Part-1.html
Normal file
302
2015/05/06/TLS-Part-1.html
Normal file
|
@ -0,0 +1,302 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: An Examination of TLS, Part 1</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/05/06/TLS-Part-1.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>TLS: An Examination Into the Security of the Internet, Part 1</h1>
|
||||
|
||||
<p>TLS, more often referred to as SSL, is the means by which a secure
|
||||
connection is established over a computer network. Most often these
|
||||
connections are established over the Internet, between a client (ex., web
|
||||
browser) and a server (ex., a web site). In the specific case of web sites,
|
||||
HTTP is layered on TLS/SSL to ensure a secure and private connection; HTTPS
|
||||
is not a separate protocol, rather a combination or protocols. Establishing
|
||||
a secure connection thus requires a few steps:</p>
|
||||
|
||||
<h2>Step 1: Establish an TCP connection</h2>
|
||||
|
||||
<p>TCP is a transport-layer protocol that establishes a connection which is
|
||||
reliable and fault-tolerant. As opposed to UDP, TCP will seek to verify
|
||||
that information is transferred successfully and as intended. This is
|
||||
important for the next step. The connection is established as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>A client will contact a server and announce it wishes to
|
||||
establish a connection. (Called a SYN, short for synchronize). This
|
||||
SYN is a number, stored as part of the TCP header; we'll call it
|
||||
A.</li>
|
||||
<li>The server will respond to the client announcing it has
|
||||
received the client's wish, and also state that it wishes to establish
|
||||
a connection. (Called a SYN-ACK, short for synchronize-acknowledge).
|
||||
Ths SYN-ACK is actually two values: One is the ACK value, A+1. The
|
||||
second is the server's SYN value, which we'll call B.</li>
|
||||
<li>The client then acknowledged the server's wish, thus
|
||||
establishing a connection (Called simply an ACK). Because it was
|
||||
expecting an ACK value in step 2, and expecting that value to be A+1,
|
||||
it can verify that this connection is the same as the one it started.
|
||||
Additionally and similarly, the ACK which gets returned to the server
|
||||
as B+1.</li>
|
||||
<li>At this point, the connection is established. Both client and
|
||||
server have assured themselves of a proper connection thanks to the
|
||||
three-way handshake described above. From this point forward, the
|
||||
server has bound a specific port to listen for any further
|
||||
communications with the client. </li>
|
||||
</ol>
|
||||
|
||||
<h2>Step 2: Establish an SSL/TLS Connection</h2>
|
||||
|
||||
<p>TLS, Transport Layer Security, is appropriately on the same layer as
|
||||
TCP, the transport layer. TLS relies on public key authentication to
|
||||
establish a secure connection between the aforementioned client and server.
|
||||
The connection is established as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>A client will announce to the server it wishes to establish a
|
||||
TLS/SSL connection. It will include information such as it's TLS/SSL
|
||||
version, the ciphersuites it wishes to use, and which compression
|
||||
methods it wishes to use.</li>
|
||||
<li>The server then uses the highest possible TLS/SSL version, chooses
|
||||
one of the ciphersuites available to the client, chooses one of the
|
||||
compression methods available to the client, and sends it's
|
||||
certificate. A certificate is basically a container for a server's
|
||||
public key, but with many additional details, and often signed by a
|
||||
certificate authority, to further verify the certificate contains the
|
||||
proper key. More on certificates in part 2.</li>
|
||||
<li>The client then uses the server's public key to encrypt a secret.
|
||||
This secret is then sent back to the server.</li>
|
||||
<li>The server decrypts the secret with it's private key. This secret
|
||||
is now shared by only the client and the server, and from this point
|
||||
on is used for symmetric encryption.</li>
|
||||
</ol>
|
||||
|
||||
<p>From this point forward, the connection is encrypted and secure from
|
||||
external threats. Of course, this all depends on a trusted certificate and
|
||||
proper encryption algorithms.</p>
|
||||
|
||||
<h2>Step 3: Establish an HTTP connection</h2>
|
||||
|
||||
<p>HTTP is an application-layer protocol, and is responsible for translating
|
||||
the information from the transport layer into information used by an
|
||||
application. Your web browser, for example, will utilize HTTP to translate
|
||||
a bunch of hexidecimal information into alpha-numeric information, which is
|
||||
then formatted and presented to you as a web page. Security is previously
|
||||
established thanks to TLS/SSL, and reliability is previously established
|
||||
thanks to TCP.</p>
|
||||
|
||||
<p>Part 2 focuses more on the specifics of TLS: certificates, cipher
|
||||
suites, and public key authentication.</p>
|
||||
|
||||
<h1>Sources</h1>
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Public-key_cryptography">
|
||||
Wikipedia: Public-key Cryptography</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/6290/how-is-it-possible-that-people-observing-an-https-connection-being-established-w">Stack
|
||||
Exchange: How is it possible that people observing an HTTPS
|
||||
connection being established wouldn't know how to decrypt
|
||||
it?</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work">
|
||||
Stack Exchange: How Does SSL/TLS work?</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes (because why remove them?)
|
||||
Asymmetric Key Authentication:
|
||||
- Relies on two keys: Public key, Private key
|
||||
- Both keys are related, but impossible (computationally infeasable) to
|
||||
identify the private key based on the public key [1][2]
|
||||
- The public key can be distributed publicly
|
||||
- Used to encrypt message to the owner of the private paired key
|
||||
- Used to verify signatures from the private key
|
||||
- The private key is kept secret
|
||||
- Used to decrypt message from the public paired key
|
||||
- Used to as a digital signature
|
||||
|
||||
Basics of an Asymmetric Key handshake:
|
||||
1. Client reaches out to server, requesting a secure connection
|
||||
2. Server acknowledges request, sends back it's public key
|
||||
- This is commonly known as a certificate. Often signed by a
|
||||
third-party to ensure it is what it's supposed to be.
|
||||
3. Client uses this public key to encrypt a secret, and sends the package
|
||||
back to the server.
|
||||
4. The server then uses it's private key to decrypt the public-key
|
||||
encrypted secret, and uses that secret hence forth to encrypt all traffic.
|
||||
5. A private connection is now established.
|
||||
|
||||
Basics of Certificates
|
||||
1. A certificate is a vessel for a server to provide authentication
|
||||
information.
|
||||
2. Typically a certificate will contain the following information:
|
||||
- A UUID of the certificate itself
|
||||
- The subject of the certificate
|
||||
- The signature, and signature algorithm used
|
||||
- The issuer of the certificate, as well as dates when it is valid
|
||||
- The purpose of the key
|
||||
- The thumbprint, and algorithm, used to hash the key
|
||||
- The public key itself
|
||||
3. Certificate Authorities act as a third part to verify the integrity of
|
||||
public keys.
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-05-06
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
217
2015/07/09/A-Friends-Father.html
Normal file
217
2015/07/09/A-Friends-Father.html
Normal file
|
@ -0,0 +1,217 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: A Good Friend's Father</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/07/09/A-Friends-Father.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>A Good Friend's Father</h1>
|
||||
<p> A good friend's father died. He was quite a strong figure in my
|
||||
childhood. He was compassionate, endearing, strong, and happy. He is
|
||||
succeeded by two of my best childhood friends, and his second wife. I will
|
||||
always remember him as smiling, or laughing, or even sometimes frustrated
|
||||
with his children.</p>
|
||||
|
||||
<p> When I learned of his passing, I immediately thought of my position in
|
||||
life. My father is roughly the same age, and my mother slightly younger.
|
||||
Was this death too early? Is there such a thing? If I stick to my
|
||||
philosophical beliefs, then death is fated, regardless of where or when;
|
||||
never early, never late. When I told a friend of the passing, his remarks
|
||||
were expectedly typical: "That's fucked up. He died so early. He died so
|
||||
young." The trick with beliefs is they are always tested. I found myself
|
||||
caught up in grief and worry. Surprised at the passing, worried with the
|
||||
thought of my parents dying. I even grew anxious of the funeral and calling
|
||||
hours. Suddenly this anxiety was like a weed, finding it's way into the
|
||||
cracks in my beliefs and understanding, unsettling and disrupting my peace
|
||||
of mind. Instead of mourning the loss, I tangled myself into an emotional
|
||||
knot, and selfishly so.</p>
|
||||
|
||||
<p> I sat, a few days after the news, watching the rain. I considered how
|
||||
the rain falls where it is due, regardless of what it falls on. The
|
||||
rain cares not, it simply is. I considered the millions of drops falling on
|
||||
the millions of people all around the globe. Their situations in life as
|
||||
unique as each drop; in structure similar, yet in action ever slightly
|
||||
divergent. In life, I cannot decide where or when I exist, I can only
|
||||
decide how to perceive my existance. Epictetus wrote, "man is disturbed not
|
||||
by things, but by the views he takes of them." My perceptions were skewed,
|
||||
my understanding flawed, and thus I was disturbed.</p>
|
||||
|
||||
<p> One of my favorite analogies is Bruce Lee's metaphor about water. It is
|
||||
a reminder to be fluid and formless, adaptable and potent; "If nothing
|
||||
within you stays rigid, outward things will disclose themselves." There's
|
||||
no way for me to know what will be asked of me, as my life moves forward.
|
||||
I must be shapeless, so when obstacles appear I flow around or through
|
||||
them, without hesitation. I cannot affect when or how these obstacles
|
||||
appear, only how I perceive them. I had forgotten this. </p>
|
||||
|
||||
<p> A good friend's father died, and he reminded me how to live.</p>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes
|
||||
|
||||
Rest in peace, Chaz. You were a good man, a good father, and a friend.
|
||||
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
<!-- cursor: 11 -->
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-07-09
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
285
2015/11/10/TLS-Part-2.html
Normal file
285
2015/11/10/TLS-Part-2.html
Normal file
|
@ -0,0 +1,285 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: An Examination of TLS, Part 2</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2015/11/10/TLS-Part-2.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>TLS: An examination into the Security of the Internet, Part 2</h1>
|
||||
|
||||
<p>TLS, more often referred to as SSL, is the means by which a secure
|
||||
connection is established over a computer network. Part 1 examines how to
|
||||
establish a secure connection using TLS. This article examines further the
|
||||
techniques and technology that makes TLS secure. Specifically, a brief
|
||||
examination of certificates, cipher suites, and public-key
|
||||
authentication.</p>
|
||||
|
||||
<h2>Certificates</h2>
|
||||
<p>A certificate is a vessel for a domain to provide authentication
|
||||
information. More specifically, and perhaps most importantly, a certificate
|
||||
is the package which transfers a key. TLS relies entirely upon Public-Key
|
||||
Authentication to setup a secure connection. The challenge with Public-Key
|
||||
Authentication is often sharing keys in a verifiable and secure manner.
|
||||
This is to say that, despite public keys being public, you still need to
|
||||
verify the owner of the key. This is where certificates, and Certificate
|
||||
Authorities come in. Each certificate is tailored to a specific domain. It
|
||||
includes not only the public key for a user to connect to the server with,
|
||||
but also meta-data about the certificate: a UUID, and information about the
|
||||
Certificate Authority; a signature authorizing the certificate, as well as
|
||||
the encryption used for the signature; a thumbprint of the key, and details
|
||||
of the algorithm used to hash the key; and a purpose for the certificate.
|
||||
Certificates may contain additional details, but the aforementioned list is
|
||||
required.</p>
|
||||
|
||||
<p>A Certificate Authority (CA) is a trusted third-party repository of
|
||||
signed keys. The purpose of a CA is very specific: verification. A CA will
|
||||
generate and issue a key-pair to a domain. The domain can then share the
|
||||
public key using a certificate. How specifically a CA verifies the domains
|
||||
and keys is out of scope of this discussion, but Wikipedia provides many
|
||||
details on the techniques used.</p>
|
||||
|
||||
<h2>Cipher Suites</h2>
|
||||
<p>A cipher is the algorithm used to encrypt information. Ciphers are
|
||||
incredibly complex mathematical formulae, and are well beyond my
|
||||
understanding. However, it is important to note that the strength of a key
|
||||
is only as strong as the cipher suite used to generate it. Likewise, the
|
||||
strength of a certificate is only as strong as the cipher used to sign
|
||||
it. Keep this in mind when you generate and work with keys.</p>
|
||||
|
||||
<h2>Public-Key Authentication</h2>
|
||||
<p>The most important part of TLS is public-key authentication. I would
|
||||
argue that public-key authentication is one of the most important facets of
|
||||
the technical world. Because of this, I want to recap in more general terms
|
||||
how public-key authentication works:</p>
|
||||
|
||||
<ol>
|
||||
<li>Two parties want to establish a secure connection.</li>
|
||||
<li>Each party generates two keys: one to share publicly, one to keep
|
||||
secret.</li>
|
||||
<li>Each party then shares their public keys.</li>
|
||||
</ol>
|
||||
|
||||
<p>Now, whenever one of the two parties wants to securely communicate with
|
||||
the other, they "sign" (encrypt) the communication with their private key.
|
||||
The second party can then use the public key of the first party to verify
|
||||
the identify of the sender, and decrypt the message.
|
||||
|
||||
<h2>Conclusion</h2>
|
||||
<p>Security is a very deep and involved topic, but one I feel every
|
||||
Sys-Admin should know a bit about. While these posts are only meant to serve
|
||||
as a high-level overview of TLS, there are many more-detailed sources
|
||||
available. I would suggest a visit to your local Wikipedia as a good first
|
||||
step. Thanks for reading.</p>
|
||||
|
||||
<h1>Sources</h1>
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Public-key_cryptography">
|
||||
Wikipedia: Public-key Cryptography</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/6290/how-is-it-possible-that-people-observing-an-https-connection-being-established-w">Stack
|
||||
Exchange: How is it possible that people observing an HTTPS
|
||||
connection being established wouldn't know how to decrypt
|
||||
it?</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work">
|
||||
Stack Exchange: How Does SSL/TLS work?</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes (because why remove them?)
|
||||
Asymmetric Key Authentication:
|
||||
- Relies on two keys: Public key, Private key
|
||||
- Both keys are related, but impossible (computationally infeasible) to
|
||||
identify the private key based on the public key [1][2]
|
||||
- The public key can be distributed publicly
|
||||
- Used to encrypt message to the owner of the private paired key
|
||||
- Used to verify signatures from the private key
|
||||
- The private key is kept secret
|
||||
- Used to decrypt message from the public paired key
|
||||
- Used to as a digital signature
|
||||
|
||||
Basics of an Asymmetric Key handshake:
|
||||
1. Client reaches out to server, requesting a secure connection
|
||||
2. Server acknowledges request, sends back it's public key
|
||||
- This is commonly known as a certificate. Often signed by a
|
||||
third-party to ensure it is what it's supposed to be.
|
||||
3. Client uses this public key to encrypt a secret, and sends the package
|
||||
back to the server.
|
||||
4. The server then uses it's private key to decrypt the public-key
|
||||
encrypted secret, and uses that secret hence forth to encrypt all traffic.
|
||||
5. A private connection is now established.
|
||||
|
||||
Basics of Certificates
|
||||
1. A certificate is a vessel for a server to provide authentication
|
||||
information.
|
||||
2. Typically a certificate will contain the following information:
|
||||
- A UUID of the certificate itself
|
||||
- The subject of the certificate
|
||||
- The signature, and signature algorithm used
|
||||
- The issuer of the certificate, as well as dates when it is valid
|
||||
- The purpose of the key
|
||||
- The thumbprint, and algorithm, used to hash the key
|
||||
- The public key itself
|
||||
3. Certificate Authorities act as a third part to verify the integrity of
|
||||
public keys.
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2015-11-10
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,15 +1,40 @@
|
|||
---
|
||||
tabtitle: Developing Stoic Understanding
|
||||
title: Developing Stoic Understanding
|
||||
topics: philosophy
|
||||
pub: "2016-01-30"
|
||||
short_desc: "Sherman J. Clark wrote a fantastic article on the Stoicism Today blog in
|
||||
December which really spoke to me. It approached some of the questions and
|
||||
problems I've had with Stoicism in an elegant and enlightening way, which
|
||||
has led to my significantly greater understanding of Stoicism."
|
||||
---
|
||||
|
||||
<h1>Revelations: Developing Stoic Understanding</h1>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Developing Stoic Understanding</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2016/01/30/Revelations-Stoic-Understanding.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Revelations: Developing Stoic Understanding</h1>
|
||||
<p>Sherman J. Clark wrote a fantastic article on the Stoicism Today blog in
|
||||
December which really spoke to me. It approached some of the questions and
|
||||
problems I've had with Stoicism in an elegant and enlightening way, which
|
||||
|
@ -187,3 +212,129 @@ philosophy that works only if you do not think about it too carefully"
|
|||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2016-01-30
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,15 +1,40 @@
|
|||
---
|
||||
tabtitle: "Random Thoughts"
|
||||
title: "Random Thoughts 1"
|
||||
topics: [technology, gaming]
|
||||
pub: "2016-03-11"
|
||||
short_desc: "I'm on vacation this week, which is pretty grand. Thus far
|
||||
I've accomplished one of the 4 rather meager goals I set for myself, played
|
||||
plenty of games, caught up on some reading and videos and feeds, and slept
|
||||
in far later than I should have."
|
||||
---
|
||||
|
||||
<h1>Disjointed Thoughts</h1>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Random Thoughts</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2016/03/11/Random-Thoughts-1.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Disjointed Thoughts</h1>
|
||||
|
||||
<p>I'm on vacation this week, which is pretty grand. Thus far I've
|
||||
accomplished one of the 4 rather meager goals I set for myself, played
|
||||
|
@ -186,3 +211,131 @@ Sources:
|
|||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2016-03-11
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
281
2018/01/11/Character-Azulien.html
Normal file
281
2018/01/11/Character-Azulien.html
Normal file
|
@ -0,0 +1,281 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Azulien Blackblade</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/11/Character-Azulien.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>Here’s the character backstory for one of my older characters from a game long
|
||||
since forgotten: Azulien Blackblade. This character was a fighter-sorcerer,
|
||||
built for a custom 3.5 game run by my friend Bill. He was loads of fun to play,
|
||||
though I may have spoken up when I should have stayed silent. He died as a pile
|
||||
of pieces, after taunting a demi-god and, expectedly, being eviserated. Enjoy!</p>
|
||||
|
||||
<h2 id="character-backstory-azulien-blackblade">Character Backstory: Azulien Blackblade</h2>
|
||||
|
||||
<p>I was a prestigious man. Once I wore the robes of a wizard. I studied at the
|
||||
greatest libraries, spoke with the most intelligent scholars, and kept company
|
||||
with the Archmages. But one day that all changed. The day I will never forget in
|
||||
all my life: the day the Urdeshi attacked.</p>
|
||||
|
||||
<p>We were travelling through the northern regions of the desert, making our way to
|
||||
ruins located among the dunes. As we stopped to drink and rest, our party was
|
||||
beset upon by raiders, shielding their faces with wrapped fabrics, and attacking
|
||||
us relentlessly with blades and spears. Of the 15 in our band, only 3 lived
|
||||
through the attack. We were the unlucky ones. My robes were bloodied and torn,
|
||||
my spellbook was burned before my eyes, my components along with it, and my
|
||||
knowledge of the arcane became a secret lest I beg for death. Many times I had
|
||||
considered revealing my talents, and welcoming the purge that would follow. The
|
||||
particular group of Urdesh we found were skeptical of magic: they broke all our
|
||||
potions, our wands, anything that didn’t smell normal. My familiar, my dear
|
||||
raven, was roasted and force fed to me. I didn’t eat for days afterwards.</p>
|
||||
|
||||
<p>They tought me how to fight. How to use the weapons they used. They tought me
|
||||
how to skirmish with only a scimitar to defend myself with. How to cast aside
|
||||
blows, how to use a handful of sand to distract my opponent from my incoming
|
||||
blow. They taught me pain. They taught me to not fear an incoming attack. Not to
|
||||
fear death. From that, only rage grew. My hatred for the Urdesh slowly filled my
|
||||
now-empty mind. Where once was scholarly knowledge and magical aptitude there
|
||||
stood only revenge. A lust that was never fulfilled. A hunger that was never
|
||||
sated.</p>
|
||||
|
||||
<p>For 5 years of my life I was haunted and tormented by the Urdesh. I was made a
|
||||
puppet in their games; a gladiator in their arenas. My skills with the scimitar
|
||||
and spear grew to legend. Armed with my rage and my revenge, I would let no
|
||||
other gladiator steal from me the potential to see my captors destroyed. I would
|
||||
never bow, never break, never surrender. My blade grew black from all the blood
|
||||
and sand and grime. With each fight, I became more. I was no longer a slave, now
|
||||
I was a name: Blackblade; the Raven Swordsman; Death. Names appropriate to my
|
||||
appearance and my promise. The old me was dead, and the new me was never alive.</p>
|
||||
|
||||
<p>My insatiable revenge crept into the corners of my mind, revealing the
|
||||
locked-away arcane knowledge. The fury of hundreds of gladitorial battles,
|
||||
thousands of cracks of the whips, and millions of possibilities of better lives
|
||||
all converged on the power I had stored away. No longer was I afraid of them. No
|
||||
longer did their skepticism seem like a threat. Now it was their weakness. Now,
|
||||
vengeance was mine.</p>
|
||||
|
||||
<p>With the cover of darkness, I scoured my memories for every shred of arcane
|
||||
knowledge I could muster. I found my cantrips, my little tricks I had used to
|
||||
harass the pretty girls at the college. Flares and dancing lights wouldn’t do
|
||||
what I needed, but they could help. I needed more power. I crept deeper. There I
|
||||
felt it. The coldness of death, but the screaming of life, entwined. I could
|
||||
feel the grasp of skeletons and ghasts, but they did not scare me; it was almost
|
||||
like familiy. I could see the faces of people I had never known. They seemed
|
||||
familiar, almost connected to me. I could feel their anger, their undying need
|
||||
for vengeance. Like me, they were captives of fear and torment. Their rage was
|
||||
almost unbearable, but I would not turn away. I would not submit to an illogical
|
||||
existance as a mindless machine of death. I would overcome the rage, channel the
|
||||
rage, harness the anger, focus the vengeance. I would take their blessings of
|
||||
undeath and turn them upon my enemies as a curse. I knew now that the power I
|
||||
had was not from study. It was always within me, welled up like a great lake,
|
||||
full of untapped resources. I felt the presence of their blood grow, their power
|
||||
now released. They were now me. I was their vessel. The scimitar I used, Raven I
|
||||
called it, was now a weapon of death.</p>
|
||||
|
||||
<p>Their time had come. They had no reason to fear the unknown, until now.</p>
|
||||
|
||||
<p>The first to go was the guard. As he came, right on schedule, to deliver my
|
||||
food, I offered him a choice. I had grown to like Mukeesh. He was stupid, and
|
||||
because of that he was compasionate. He was too afraid. He was too loyal. He
|
||||
died. From him, I lifted the keys with magic, commanding them into the lock,
|
||||
releasing me. As I left, I could feel his blood calling to me. With his
|
||||
head-wrap and Raven I made my way to the barracks. It was night time. There were
|
||||
little defenses around those who defend. They died one by one. I would cup their
|
||||
mouth, and slit their throat just enough for them to wake before they bled out.
|
||||
Their last moments were all the same: horror, struggling, moaning, pleading,
|
||||
acceptance, sorrow. They wept occassionally. There were a few who were
|
||||
unsurprised, and stared into my eyes until their’s went dark. They were the
|
||||
brave. They had faced death. But none can win against death. The blood running
|
||||
from my captors veins was unbearable. I tasted it, the nector of life. It was
|
||||
ambrosia, life itself, sustaining me. Their lives were my feast.</p>
|
||||
|
||||
<p>I made my way through the camp, finally settling on the gladiator pits. Some of
|
||||
my bretheren ran, some clung to some twisted form of loyaly and fought. The all
|
||||
died. I drank in their life, their essence, and their sacrifice healed me.
|
||||
Through the death of my enemies I grew strong, through the blood of the fallen
|
||||
did I reclaim my dominance. Not only were the powers of death mine to harness,
|
||||
but the fruits of its labor were sweet and nourishing.</p>
|
||||
|
||||
<p>The last to fall was my teacher. He was the only one I awoke before I killed
|
||||
him. I waited for him to pray, to be ready for his gods. He tried to fight me,
|
||||
but the master had become weak. His attacks were predictable. His tactics were
|
||||
rotten. His flesh was soft, and my blade was sharp. He died a warrior, as he had
|
||||
lived. His blood was the most satisfying of them all. I have no remorse for him.
|
||||
It is pathetic to pity anyone; death comes for all.</p>
|
||||
|
||||
<p>I gathered up all the resources I needed, took all the coin I could find, and
|
||||
left. To this day I still hear tales of the Swordsman of Death who slaughtered
|
||||
an entire Urdesh gladiator camp. “They are right to fear him.” I always reply.
|
||||
“Death is patient but swift. It may come on the wings of an angel or the sword
|
||||
of a stranger. But death always comes.” I escaped that night and found a human
|
||||
settlement. My scars and tattoos I covered as best I could, but they always
|
||||
found me out. A run-away slave, an escaped prisoner; a fugitive. The humans
|
||||
would at least treat my as their own. I found temporary refuge, but left
|
||||
quickly. In the following days there were many hunters that I encountered. One
|
||||
of them gave me the scar that marks me today. His name was Al-Kadaf, and his
|
||||
blade was called Plight. It cut me from above my left eye to my right cheek. He
|
||||
told me that wound would stay forever. My blade ending his life was my only
|
||||
response.</p>
|
||||
|
||||
<p>Still I am hunted. Still the Urdesh search for the Raven Swordsman. But I go by
|
||||
a different name now. I am Azulien Blackblade, Scourge of the Urdesh. Send your
|
||||
hunters. Send your armies. I walk with death. I hunger for your life. And
|
||||
tonight, I will feast.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-12
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
196
2018/01/15/Letters-To-Lucilius.html
Normal file
196
2018/01/15/Letters-To-Lucilius.html
Normal file
|
@ -0,0 +1,196 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Moral Letters :: Index</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/15/Letters-To-Lucilius.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>My friend Rob and I have recently been disucssing Seneca's
|
||||
Moral Letters to Lucilius. As a companion to those discussions, I'm
|
||||
documenting my responses to each letter. This page will serve as an index for
|
||||
all of my responses.</p>
|
||||
|
||||
<h2>Seneca's Moral Letters to Lucilius</h2>
|
||||
<ul>
|
||||
<li><a href="
|
||||
/2018/01/15/letter-to-lucilius-1.html">
|
||||
Letter 1: On Time</a></li>
|
||||
<li><a href="
|
||||
/2018/01/15/letter-to-lucilius-2.html">
|
||||
Letter 2: On discursiveness in reading</a></li>
|
||||
<li><a href="
|
||||
/2018/01/28/letter-to-lucilius-3.html">
|
||||
Letter 3: On True and False Friendship</a></li>
|
||||
<li><a href="
|
||||
/2018/01/28/letter-to-lucilius-4.html">
|
||||
Letter 4: On the Terrors of Death</a></li>
|
||||
<li><a href="
|
||||
/2018/02/11/letter-to-lucilius-5.html">
|
||||
Letter 5: On the Philosopher's Mean</a></li>
|
||||
<li><a href="
|
||||
/2018/02/11/letter-to-lucilius-6.html">
|
||||
Letter 6: On Sharing Knowledge</a></li>
|
||||
<li><a href="
|
||||
/2018/01/28/letter-to-lucilius-11.html">
|
||||
Letter 11: On the Blush of Modesty</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius">
|
||||
Collection of Seneca's Moral Letters to Lucilius on Wikisource
|
||||
</a></p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-15
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
255
2018/01/15/letter-to-lucilius-1.html
Normal file
255
2018/01/15/letter-to-lucilius-1.html
Normal file
|
@ -0,0 +1,255 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 1</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/15/letter-to-lucilius-1.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Letter 1: On Time</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p> Greetings from Seneca to his friend Lucilius.</p>
|
||||
|
||||
<p>1. Continue to act thus, my dear Lucilius – set yourself free for your own
|
||||
sake; gather and save your time, which till lately has been forced from you,
|
||||
or filched away, or has merely slipped from your hands. Make yourself
|
||||
believe the truth of my words, – that certain moments are torn from us, that
|
||||
some are gently removed, and that others glide beyond our reach. The most
|
||||
disgraceful kind of loss, however, is that due to carelessness. Furthermore,
|
||||
if you will pay close heed to the problem, you will find that the largest
|
||||
portion of our life passes while we are doing ill, a goodly share while we
|
||||
are doing nothing, and the whole while we are doing that which is not to the
|
||||
purpose. 2. What man can you show me who places any value on his time, who
|
||||
reckons the worth of each day, who understands that he is dying daily? For
|
||||
we are mistaken when we look forward to death; the major portion of death
|
||||
has already passed. Whatever years be behind us are in death's hands.</p>
|
||||
|
||||
<p>Therefore, Lucilius, do as you write me that you are doing: hold every hour
|
||||
in your grasp. Lay hold of to-day's task, and you will not need to depend so
|
||||
much upon to-morrow's. While we are postponing, life speeds by. 3. Nothing,
|
||||
Lucilius, is ours, except time. We were entrusted by nature with the
|
||||
ownership of this single thing, so fleeting and slippery that anyone who
|
||||
will can oust us from possession. What fools these mortals be! They allow
|
||||
the cheapest and most useless things, which can easily be replaced, to be
|
||||
charged in the reckoning, after they have acquired them; but they never
|
||||
regard themselves as in debt when they have received some of that precious
|
||||
commodity, – time! And yet time is the one loan which even a grateful
|
||||
recipient cannot repay.</p>
|
||||
|
||||
<p>4. You may desire to know how I, who preach to you so freely, am practising.
|
||||
I confess frankly: my expense account balances, as you would expect from one
|
||||
who is free-handed but careful. I cannot boast that I waste nothing, but I
|
||||
can at least tell you what I am wasting, and the cause and manner of the
|
||||
loss; I can give you the reasons why I am a poor man. My situation, however,
|
||||
is the same as that of many who are reduced to slender means through no
|
||||
fault of their own: every one forgives them, but no one comes to their
|
||||
rescue.</p>
|
||||
|
||||
<p>5. What is the state of things, then? It is this: I do not regard a man as
|
||||
poor, if the little which remains is enough for him. I advise you, however,
|
||||
to keep what is really yours; and you cannot begin too early. For, as our
|
||||
ancestors believed, it is too late to spare when you reach the dregs of the
|
||||
cask. Of that which remains at the bottom, the amount is slight, and the
|
||||
quality is vile. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>Time management. I'm pretty bad at time management. It's interesting
|
||||
re-reading this letter after having read ahead a few. This one reads much
|
||||
less personal than his later letters. Perhaps an indication of a developing
|
||||
relationship.</p>
|
||||
|
||||
<p>Much of the letter emphasizes the importance of being present, and aware. One
|
||||
of the most impactful parts of this letter epitomizes this: "Whatever years
|
||||
be behind us are in death's hands." The acceptance of death as a necessary
|
||||
and constant part of life is a Stoic theme, but this sentence reminds us of
|
||||
this reality without remorse. Replace 'years' with 'time', and the letter's
|
||||
theme is laid bare: time is an expense account you can only hope to balance,
|
||||
and never credit. Seneca himself makes this comparison, noting that he only
|
||||
balances his by being aware of his expenditures. To him, it seems being
|
||||
aware of the waste is enough to balance the waste itself, which I find
|
||||
interesting.</p>
|
||||
|
||||
<p>Seneca's account of how we spend our time strikes me as a tad cynical:
|
||||
"...the largest portion of our life passes while we are doing ill, a goodly
|
||||
share while we are doing nothing, and the whole while we are doing that
|
||||
which is not to the purpose." Essentially, we spend most of our life not
|
||||
doing what we intend to do, either because we fail to act, or we "[do] ill".
|
||||
If I interpret "doing ill" to mean not pursuing Stoic virtue, I can
|
||||
extrapolate "the purpose" to mean living a virtuous life. I think the
|
||||
statement seeks more specific examples than the entirety of life's pursuit,
|
||||
though, and in those cases "doing ill" could mean doing that which does not
|
||||
benefit the specific pursuit. This could be playing video games instead of
|
||||
cleaning my house, for example. In this case, it seems apt to define "doing
|
||||
ill" as procrastination, and "the purpose" being whatever our goal is at
|
||||
that particular moment. Though an interesting third option is more of a
|
||||
relativity approach: we feel that life passes us by fastest while "doing
|
||||
ill" or doing nothing, and in general life seems to pass by faster when we
|
||||
are not focusing on our task than when we are. The ol' "Time flies while
|
||||
you're having fun" chestnut. Not to say "doing ill" is having fun, though.
|
||||
Rather, "doing ill" is like partying until 4am, and wondering how it got so
|
||||
late.</p>
|
||||
|
||||
<p> Live in the moment, be aware of how you spend your time, and always act to
|
||||
spend it wisely. Just be aware: no matter how carefully you budget, your
|
||||
account will always be indebted to death.</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_1">
|
||||
Moral Letters to Lucilius, Letter 1 on Wikisource
|
||||
</a></p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-15
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
234
2018/01/15/letter-to-lucilius-2.html
Normal file
234
2018/01/15/letter-to-lucilius-2.html
Normal file
|
@ -0,0 +1,234 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 2</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/15/letter-to-lucilius-2.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Letter 2: On Discursiveness in Reading</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p>1. Judging by what you write me, and by what I hear, I am forming a good
|
||||
opinion regarding your future. You do not run hither and thither and distract
|
||||
yourself by changing your abode; for such restlessness is the sign of a
|
||||
disordered spirit. The primary indication, to my thinking, of a well-ordered
|
||||
mind is a man's ability to remain in one place and linger in his own company.
|
||||
2. Be careful, however, lest this reading of many authors and books of every
|
||||
sort may tend to make you discursive and unsteady. You must linger among a
|
||||
limited number of master thinkers, and digest their works, if you would derive
|
||||
ideas which shall win firm hold in your mind. Everywhere means nowhere. When a
|
||||
person spends all his time in foreign travel, he ends by having many
|
||||
acquaintances, but no friends. And the same thing must hold true of men who
|
||||
seek intimate acquaintance with no single author, but visit them all in a hasty
|
||||
and hurried manner. 3. Food does no good and is not assimilated into the body
|
||||
if it leaves the stomach as soon as it is eaten; nothing hinders a cure so much
|
||||
as frequent change of medicine; no wound will heal when one salve is tried
|
||||
after another; a plant which is often moved can never grow strong. There is
|
||||
nothing so efficacious that it can be helpful while it is being shifted about.
|
||||
And in reading of many books is distraction.</p>
|
||||
|
||||
<p>Accordingly, since you cannot read all the books which you may possess, it is
|
||||
enough to possess only as many books as you can read. 4. "But," you reply, "I
|
||||
wish to dip first into one book and then into another." I tell you that it is
|
||||
the sign of an overnice appetite to toy with many dishes; for when they are
|
||||
manifold and varied, they cloy but do not nourish. So you should always read
|
||||
standard authors; and when you crave a change, fall back upon those whom you
|
||||
read before. Each day acquire something that will fortify you against poverty,
|
||||
against death, indeed against other misfortunes as well; and after you have run
|
||||
over many thoughts, select one to be thoroughly digested that day. 5. This is
|
||||
my own custom; from the many things which I have read, I claim some one part
|
||||
for myself.</p>
|
||||
|
||||
<p>The thought for today is one which I discovered in Epicurus; for I am wont
|
||||
to cross over even into the enemy's camp, – not as a deserter, but as a scout.
|
||||
6. He says: "Contented poverty is an honourable estate." Indeed, if it be
|
||||
contented, it is not poverty at all. It is not the man who has too little, but
|
||||
the man who craves more, that is poor. What does it matter how much a man has
|
||||
laid up in his safe, or in his warehouse, how large are his flocks and how fat
|
||||
his dividends, if he covets his neighbour's property, and reckons, not his past
|
||||
gains, but his hopes of gains to come? Do you ask what is the proper limit to
|
||||
wealth? It is, first, to have what is necessary, and, second, to have what is
|
||||
enough. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>I'm not sure who named the letters, but I think they should always read "On
|
||||
Whatever I Intend to Write About, oh and this generally unrelated quote
|
||||
probably from Epicurus." Which isn't to complain, I just find it amusing.
|
||||
And, to be fair, this letter and quote combination do fit together.</p>
|
||||
|
||||
<p>The gist of this letter is the importance of focus. Seneca posits having too
|
||||
broad a focus with regard to authors or topics will make Lucilius
|
||||
"discursive and unsteady." A jack-of-all-trades is a master of none. His
|
||||
comparisons with travel, food, medicine, and agriculture are all apt, though
|
||||
a tad misleading, as each topic necessitates a differing degree of focus,
|
||||
not to mention each may pursue different ends; the pursuit of reading or
|
||||
travel may be ephemeral, whereas the pursuit of medicine or treatment may be
|
||||
more lasting. Considering the theme of the letter, though, I don't want to
|
||||
argue these particulars, since I like the metaphors.</p>
|
||||
|
||||
<p>The secondary theme of the letter deals with possessions. Both Seneca, and
|
||||
the surprisingly on-topic quote from Epicurus encourage only owning enough
|
||||
to cover what is needed, not necessarily what is desired. "It is, first, to
|
||||
have what is necessary, and, second, to have what is enough." As an aspiring
|
||||
minimalist, I couldn't agree more.</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_2">
|
||||
Moral Letters to Lucilius, Letter 2 on Wikisource
|
||||
</a></p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-15
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
382
2018/01/27/halvar.html
Normal file
382
2018/01/27/halvar.html
Normal file
|
@ -0,0 +1,382 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Character Write-up: Halvar</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/27/halvar.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="character-backstory-halvar-rune-bearer">Character Backstory: Halvar, Rune Bearer</h1>
|
||||
|
||||
<p>The boy stirred. A movement in his room brought his senses to him. It moved like
|
||||
a shadow, hunting across his wall, and he feared he was the prey. Slipping
|
||||
quietly from his blankets, he reached under his bed, and swiftly brought forth
|
||||
the shield his father had given him. None too soon, as green flame erupted from
|
||||
the shadow, streaking across the room. The boy raised his shield, as the flames
|
||||
crashed upon him. In the same moment it was over, the boy standing among the
|
||||
scorched wood, his shield glowing brightly from the runes inscribed on its face.
|
||||
The shadow stepped forward, no longer a monster but a human figure, and bowed
|
||||
deeply.</p>
|
||||
|
||||
<p>“You have within you the secret of the runes,” it said in a voice impossible to
|
||||
place. Shifting in tone and pitch, the boy was uncertain if he was watching a
|
||||
woman or a man. He was starting to think it was another entirely.</p>
|
||||
|
||||
<p>“The gods are not dead, nor is magic. Your sword, your blood, is proof enough.
|
||||
Your destiny calls you, Halvar. Take forth your sword, and learn its true name.
|
||||
Reveal the secret of the runes. You, Halvar, you will–”</p>
|
||||
|
||||
<p>A loud belch erupted from the man next to him.</p>
|
||||
|
||||
<p>“Give it up, Halvar! We’ve heard your tale a thousand times. It’s a good story
|
||||
but a better lullaby once we get into the mead!”</p>
|
||||
|
||||
<p>Laughter sprung up, and Halvar leaned back into his chair. The dark bedroom
|
||||
faded from his mind, replaced with the warmth of the nearby fire. The inn was
|
||||
empty, save them, and it felt vast compared to his memories. After a long drink
|
||||
from his cup, he spoke.</p>
|
||||
|
||||
<p>“Alright Baldur, I see I may talk you children to sleep with my tales of
|
||||
greatness and destiny. Come then, you tell us one!”</p>
|
||||
|
||||
<p>As others rallied the cry, the door to the inn was thrown open, and a figure
|
||||
stumbled in. Dressed in the armor of a town guard, he glanced around the room in
|
||||
a panic, before focusing on the hearth and the gathering of men there.</p>
|
||||
|
||||
<p>“The road! Wolves! The caravan is under attack!” He shouted.</p>
|
||||
|
||||
<p>Halvar rose without hesitation, as those around him looked to him.</p>
|
||||
|
||||
<p>“Baldur, watch closely. This is how legends are made!”</p>
|
||||
|
||||
<p>He ran from the inn, reaching to his hip and finding his sword. He hadn’t
|
||||
remembered putting his belt on earlier. He must have done so without thinking.</p>
|
||||
|
||||
<p><em>Too eager for song and drink!</em> He mused.</p>
|
||||
|
||||
<p>As he neared the edge of the village, several others joined with him, and
|
||||
together they began down the road. Howling could be heard on the wind, and the
|
||||
woods were lit with the dancing light of torches.</p>
|
||||
|
||||
<p>Halvar turned to the others. “I will go first, and draw their attention. Ivar,
|
||||
try to target the ones in the back with that bow. Tad, you go for the wagon. Our
|
||||
goal is to draw them from the caravan. Once they’re away, get the wagon moving!”</p>
|
||||
|
||||
<p>He turned, then, and ran, not waiting for his companions replies. He knew time
|
||||
was short, and greatness lay only around the bend.</p>
|
||||
|
||||
<p>Running fast, sword in hand, he came upon the caravan. The horses were frenzied,
|
||||
but still harnessed. A small blessing, he thought, then regretted, seeing the
|
||||
first of the dead. To his left he could see two wolves in the brush, and he
|
||||
guessed three more must be near his flank. He turned his back on the two,
|
||||
taunting them, as he moved past the wagon. His simple farce worked, and the
|
||||
wolves made to pounce. The first wolf fell to his blade, as the second danced to
|
||||
his side. From behind, he heard movement, then a yelp. He dared a glance, and
|
||||
saw two more wolves. One was laying on its side, an arrow from its neck. The
|
||||
other began to circle.</p>
|
||||
|
||||
<p>A sudden crack of reins drew his attention away to see the cart lurch forward.
|
||||
The distraction was enough, and one of the circling wolves lunged. It caught
|
||||
Halvar’s empty arm, and pulled him off balance, to the ground. Slashing wildly,
|
||||
Halvar quickly recovered. His arm was mangled, the blood dripping from his hand
|
||||
as the spittle dripped from the wolves mouths. The second wolf then lept, but
|
||||
was caught mid flight by an arrow, and fell to the ground lifeless. Now
|
||||
outnumbered, the remaining wolf retreated to the darkness of the woods.</p>
|
||||
|
||||
<p>Ivar was upon him then, supporting him as they quickly made after the caravan.
|
||||
His arm burned, his chest pounded, and his head swam with anticipation of
|
||||
Baldur’s face, when he shared of his glory.</p>
|
||||
|
||||
<p>“Good shooting, Ivar! That’s two for you and two for me! Wait until Baldur–”</p>
|
||||
|
||||
<p>In a white blur, Ivar was torn from his side. Stumbling slightly, he turned to
|
||||
see a great white wolf, the size of a small horse, with Ivar’s neck in its
|
||||
teeth. With a snarl, it ripped the life from him, and as blood dripped from its
|
||||
mouth, it spoke in the common tongue.</p>
|
||||
|
||||
<p>“You will die this night, rune bearer. You cannot be allowed to live.”</p>
|
||||
|
||||
<p>Halvar took up his stance. His left arm useless, he put it between him and his
|
||||
enemy. The wolf then bellowed an unearthly howl, which echoed in the woods and
|
||||
was joined by more voices.</p>
|
||||
|
||||
<p><em>Unfortunate</em>, he thought, <em>This would make for a great tale. And not a single
|
||||
skald around to watch!</em></p>
|
||||
|
||||
<p>The two circled. The great wolf snarled a laugh of sorts.</p>
|
||||
|
||||
<p>“Do you know of me, manling? I am a daughter of Fenrir. I am to join my father
|
||||
in Ragnarok. I will feast upon your gods carcasses, and drink of their blood!
|
||||
You are not a god. What hope have you against one as great as me? Bare your
|
||||
neck, and I will end your life quickly.”</p>
|
||||
|
||||
<p>Halvar smiled. “Do you know of me, pup? I am Halvar, son of Haakon, son of
|
||||
Eirik, son of Odinson. I carry the secrets of the runes, and will herald the
|
||||
return of the gods! You dare impede my destiny?! You will serve only to further
|
||||
my legend!”</p>
|
||||
|
||||
<p>With renewed vigor, Halvar attacked. Sword was met with fang, as blow after blow
|
||||
was traded. The great wolf, no stranger to the weapons of man, danced around the
|
||||
blade. As each grew bloodied, they parted, panting and weary.</p>
|
||||
|
||||
<p>“You fight well, for a runt.” Halvar managed between breaths. “Tell me your
|
||||
name, great wolf. No warrior should live in legend unknown!”</p>
|
||||
|
||||
<p>The wolf bared its teeth, perhaps mimicking a smile. “I am called Ísstonn, ice
|
||||
fang. A vetrgarmr. Daughter of Vetrkona, Daughter of Hati Hróðvitnisson.”</p>
|
||||
|
||||
<p>A crushing of snow behind him signalled more wolves. Halvar knew his time was
|
||||
over.</p>
|
||||
|
||||
<p><em>Never a skald around…</em> He began, then was interrupted by a yelp and a thud. He
|
||||
glanced over his shoulder to see one of the two wolves laying still, an ax in
|
||||
its side. From the woods, a figure emerged.</p>
|
||||
|
||||
<p>“You’re not a skald, but you’ll do!” Halvar shouted, a grin now upon his face.
|
||||
His father stepped forth, drawing the handax from the wolf, and moved to join
|
||||
him.</p>
|
||||
|
||||
<p>“Father and son shall fall by my fangs!” Ísstonn barked, and the fight resumed.</p>
|
||||
|
||||
<p>Once more, sword met fang, and blows were traded. Halvar and Haakon fought the
|
||||
winter wolf, as other wolves howled in the dark woods. The bravery and skill of
|
||||
the two was too much for the great wolf, and before long she lay bloodied and
|
||||
defeated on the snow.</p>
|
||||
|
||||
<p>“You fight with conviction, Haakonson,” she spit, as blood ran from her mouth.
|
||||
“Beware my father’s fang, manling. He will devour your gods.” The light faded
|
||||
from the great beast, as the last fog of its breath disappeared into the cold night
|
||||
air.</p>
|
||||
|
||||
<p>The two men made haste to the village. The night now silent.</p>
|
||||
|
||||
<p>“Halvar, what happened tonight, no one in the village may know of it.” Haakon
|
||||
said, as he bandaged Halvar’s arm.</p>
|
||||
|
||||
<p>“Surely you joke! What happened tonight is a story to rival the legends of old!
|
||||
Ow!” Haakon squeezed Halvar’s arm tightly. Tears welled in his eyes, as he
|
||||
stared with an intensity Halvar had not seen for many years.</p>
|
||||
|
||||
<p>“Halvar. You indeed have a great destiny before you. This village is in danger
|
||||
if you remain. You must leave here, and find your legend beyond these fields.”</p>
|
||||
|
||||
<p>Haakon then stood, and dared clear his eyes with his sleeve. After a brief
|
||||
pause, he went and retrieved a small chest. He heaved the heavy container onto
|
||||
the floor besides Halvar, and beckoned him open it.</p>
|
||||
|
||||
<p>Within, Halvar found a suit of chain mail, polished and oiled. Beneath it, a
|
||||
leather tunic, and nestled next to it all, a helmet.</p>
|
||||
|
||||
<p>“This was your grandfather’s, and his before him.” Haakon said. “If the stories
|
||||
are to be believed, this mail saw many battles, some during the great war.”</p>
|
||||
|
||||
<p>Haakon then placed two hand axes next to the chest. “These are yours now. Muninn
|
||||
and Huginn, named for the All Father’s favorite ravens. May they serve you well,
|
||||
as they do him”</p>
|
||||
|
||||
<p>Finally, he laid Halvar’s sword upon his lap. “And this, you know of. What you
|
||||
may not know is the legend of this sword. Here, a drink and our final toast.”
|
||||
Haakon handed a cup to Halvar, and they drank.</p>
|
||||
|
||||
<p>“Ages past, when myths were made, and magic was commonplace, the keepers of the
|
||||
runes used their powers to gift man with powerful weapons and armor and other
|
||||
trinkets. This sword is one such weapon. I know not its true name. My father
|
||||
told me it was called Eljunvegr, Enduring Hope, as I have told you, but there
|
||||
is another name, lost to time. These runes, they are more than just decoration,
|
||||
as you well know. Legend says, in the time of the great war, this sword was used
|
||||
by a great berserker of Odin. Odin’s ritual to save humanity would destroy any
|
||||
and all around him, and Odin commanded his men flee and live. This berserker
|
||||
refused the command of the god, and fought alone to protect the All Father,
|
||||
ensuring his victory. He fought with this sword, as you now will.”</p>
|
||||
|
||||
<p>Haakon then helped Halvar don his armor, and brought to him a pack. They then
|
||||
went outside, to meet the dawn. Haakon led to Halvar a horse, and then returned
|
||||
to the house. Before entering, he turned.</p>
|
||||
|
||||
<p>“You do honor to your family, Halvar. Never forget that.” With that, Haakon
|
||||
moved inside, and closed the door.</p>
|
||||
|
||||
<p>As Halvar neared the edge of the village, there stood two men. He recognized one
|
||||
as Baldur, and after a moment recognized the second as Tad.</p>
|
||||
|
||||
<p>“Leaving so soon? Surely you’ve tales of your daring rescue last night?” Baldur
|
||||
said, stifling a yawn. “Where are you off to so early? It looks like you ride to
|
||||
war!” He chuckled.</p>
|
||||
|
||||
<p>“You saved this village last night. That caravan had food and medicine.” Tad
|
||||
chimed in.</p>
|
||||
|
||||
<p>“We saved the village, Tad. You, me and Ivar. We did.” Halvar replied, his voice
|
||||
lacking in its usual bravado.</p>
|
||||
|
||||
<p>“Well, seems your adventures were a bit humbling. I admit, I fear what an actual
|
||||
adventure will make you!” Baldur laughed. His expression then grew sober. “Every
|
||||
great warrior needs a shield, Halvar. I know how much this means to you. I
|
||||
restored it as best I could.”</p>
|
||||
|
||||
<p>From his side, Baldur lifted a round shield. It was expertly crafted, and
|
||||
perfectly balanced. Upon its face, a rune was burned into the wood, and gelded
|
||||
in silver.</p>
|
||||
|
||||
<p>“Take this too, it’s from my family.” Tad held forth a horn, carved of bone with
|
||||
a steel mouthpiece. “Consider them a reminder: your legend started here. Now go,
|
||||
your father will have our beards if we’re seen with you.”</p>
|
||||
|
||||
<p>With a nod, Halvar rode from the village. He knew not to where he went, but he
|
||||
knew his destiny would not let him stray far.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-27
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
263
2018/01/28/letter-to-lucilius-11.html
Normal file
263
2018/01/28/letter-to-lucilius-11.html
Normal file
|
@ -0,0 +1,263 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 11</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/28/letter-to-lucilius-11.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="letter-11-on-the-blush-of-modesty">Letter 11: On the Blush of Modesty</h1>
|
||||
|
||||
<h2 id="original-text">Original Text</h2>
|
||||
|
||||
<p>[1] Your friend and I have had a conversation. He is a man of ability; his very
|
||||
first words showed what spirit and understanding he possesses, and what progress
|
||||
he has already made. He gave me a foretaste, and he will not fail to answer
|
||||
thereto. For he spoke not from forethought, but was suddenly caught off his
|
||||
guard. When he tried to collect himself, he could scarcely banish that hue of
|
||||
modesty, which is a good sign in a young man; the blush that spread over his
|
||||
face seemed so to rise from the depths. And I feel sure that his habit of
|
||||
blushing will stay with him after he has strengthened his character, stripped
|
||||
off all his faults, and become wise. For by no wisdom can natural weaknesses of
|
||||
the body be removed. That which is implanted and inborn can be toned down by
|
||||
training, but not overcome. [2] The steadiest speaker, when before the public,
|
||||
often breaks into a perspiration, as if he had wearied or over-heated himself;
|
||||
some tremble in the knees when they rise to speak; I know of some whose teeth
|
||||
chatter, whose tongues falter, whose lips quiver. Training and experience can
|
||||
never shake off this habit; nature exerts her own power and through such a
|
||||
weakness makes her presence known even to the strongest. [3] I know that the
|
||||
blush, too, is a habit of this sort, spreading suddenly over the faces of the
|
||||
most dignified men. It is, indeed more prevalent in youth, because of the warmer
|
||||
blood and the sensitive countenance; nevertheless, both seasoned men and aged
|
||||
men are affected by it. Some are most dangerous when they redden, as if they
|
||||
were letting all their sense of shame escape. [4] Sulla, when the blood mantled
|
||||
his cheeks, was in his fiercest mood. Pompey had the most sensitive cast of
|
||||
countenance; he always blushed in the presence of a gathering, and especially at
|
||||
a public assembly. Fabianus also, I remember, reddened when he appeared as a
|
||||
witness before the senate; and his embarrassment became him to a remarkable
|
||||
degree. [5] Such a habit is not due to mental weakness, but to the novelty of a
|
||||
situation; an inexperienced person is not necessarily confused, but is usually
|
||||
affected, because he slips into this habit by natural tendency of the body. Just
|
||||
as certain men are full-blooded, so others are of a quick and mobile blood, that
|
||||
rushes to the face at once.</p>
|
||||
|
||||
<p>[6] As I remarked, Wisdom can never remove this habit; for if she could rub out
|
||||
all our faults, she would be mistress of the universe. Whatever is assigned to
|
||||
us by the terms of our birth and the blend in our constitutions, will stick with
|
||||
us, no matter how hard or how long the soul may have tried to master itself. And
|
||||
we cannot forbid these feelings any more than we can summon them. [7] Actors in
|
||||
the theatre, who imitate the emotions, who portray fear and nervousness, who
|
||||
depict sorrow, imitate bashfulness by hanging their heads, lowering their
|
||||
voices, and keeping their eyes fixed and rooted upon the ground. They cannot,
|
||||
however, muster a blush; for the blush cannot be prevented or acquired. Wisdom
|
||||
will not assure us of a remedy, or give us help against it; it comes or goes
|
||||
unbidden, and is a law unto itself.</p>
|
||||
|
||||
<p>[8] But my letter calls for its closing sentence. Hear and take to heart this
|
||||
useful and wholesome motto: “Cherish some man of high character, and keep him
|
||||
ever before your eyes, living as if he were watching you, and ordering all your
|
||||
actions as if he beheld them.” [9] Such, my dear Lucilius, is the counsel of
|
||||
Epicurus; he has quite properly given us a guardian and an attendant. We can get
|
||||
rid of most sins, if we have a witness who stands near us when we are likely to
|
||||
go wrong. The soul should have someone whom it can respect, – one by whose
|
||||
authority it may make even its inner shrine more hallowed. Happy is the man who
|
||||
can make others better, not merely when he is in their company, but even when he
|
||||
is in their thoughts! And happy also is he who can so revere a man as to calm
|
||||
and regulate himself by calling him to mind! One who can so revere another, will
|
||||
soon be himself worthy of reverence. [10] Choose therefore a Cato; or, if Cato
|
||||
seems too severe a model, choose some Laelius, a gentler spirit. Choose a master
|
||||
whose life, conversation, and soul-expressing face have satisfied you; picture
|
||||
him always to yourself as your protector or your pattern. For we must indeed
|
||||
have someone according to whom we may regulate our characters; you can never
|
||||
straighten that which is crooked unless you use a ruler. Farewell.</p>
|
||||
|
||||
<h2 id="response">Response</h2>
|
||||
|
||||
<p>This letter stikes me as another casual writing of Seneca’s. Some of his letters
|
||||
seem very serious, and some are much more conversational. In this letter, Seneca
|
||||
remninds us that the faults which nature gave us are beyond the power of wisdom
|
||||
to fix. This, he assures us, is not something we should feel ashamed of or take
|
||||
as a weakness, since it lies outside our control. His examples generally focus
|
||||
on blushing, hence the title and theme, but it’s easy for us to extend it to
|
||||
many facets of our physical self; height comes to mind most immediately.</p>
|
||||
|
||||
<p>As with many sources of Stoicism, when I read the reassurances of authors long
|
||||
since gone, I can’t help but feel a sense of comfort. The problems of today, the
|
||||
personal struggles we all endure, the anxieties we fight to overcome; they’re
|
||||
not new. Others before us have encountered them, and others after us will. I
|
||||
think the Stoics would be quick to remind us, it is our place to endure and then
|
||||
help others endure. At least, that’s what I am quick to remind myself of.</p>
|
||||
|
||||
<p>The quote, another from Epicurus (Seneca’s secret man-crush, no doubt), speaks
|
||||
of finding a good role-model. Reflecting on his quote made me realize I don’t
|
||||
have many role-models in life, at least not many living. Perhaps that matters
|
||||
little, but I think having a living example you can work from makes matters
|
||||
easier. Seneca rightly shows how it goes beyond simply living by your
|
||||
role-model’s standards, but also using them as an ever-present companion, in
|
||||
order to help with decisions and actions. Very reminiscent of “What would Jesus
|
||||
do?” Personally, I like this idea, and I must look for a role-model I can
|
||||
follow. A few names jump out: Tim Ferris, and Elon Musk. Ferris for his
|
||||
unrelenting pursuit to better himself, and Musk for his unrelenting pursuit to
|
||||
better the world around him.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_11">Moral Letters to Lucilius, Letter 11 on Wikisource</a></li>
|
||||
</ul>
|
||||
|
||||
<h6 id="letter-index"><a href="/2018/01/15/Letters-To-Lucilius.html">Letter Index</a></h6>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-28
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
260
2018/01/28/letter-to-lucilius-3.html
Normal file
260
2018/01/28/letter-to-lucilius-3.html
Normal file
|
@ -0,0 +1,260 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 3</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/28/letter-to-lucilius-3.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Letter 3: On True and False Friendship</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p>1. You have sent a letter to me through the hand of a "friend" of yours, as
|
||||
you call him. And in your very next sentence you warn me not to discuss with
|
||||
him all the matters that concern you, saying that even you yourself are not
|
||||
accustomed to do this; in other words, you have in the same letter affirmed
|
||||
and denied that he is your friend. 2. Now if you used this word of ours in
|
||||
the popular sense, and called him "friend" in the same way in which we speak
|
||||
of all candidates for election as "honourable gentlemen," and as we greet
|
||||
all men whom we meet casually, if their names slip us for the moment, with
|
||||
the salutation "my dear sir," – so be it. But if you consider any man a
|
||||
friend whom you do not trust as you trust yourself, you are mightily
|
||||
mistaken and you do not sufficiently understand what true friendship means.
|
||||
Indeed, I would have you discuss everything with a friend; but first of all
|
||||
discuss the man himself. When friendship is settled, you must trust; before
|
||||
friendship is formed, you must pass judgment. Those persons indeed put last
|
||||
first and confound their duties, who, violating the rules of Theophrastus,
|
||||
judge a man after they have made him their friend, instead of making him
|
||||
their friend after they have judged him. Ponder for a long time whether you
|
||||
shall admit a given person to your friendship; but when you have decided to
|
||||
admit him, welcome him with all your heart and soul. Speak as boldly with
|
||||
him as with yourself. 3. As to yourself, although you should live in such a
|
||||
way that you trust your own self with nothing which you could not entrust
|
||||
even to your enemy, yet, since certain matters occur which convention keeps
|
||||
secret, you should share with a friend at least all your worries and
|
||||
reflections. Regard him as loyal, and you will make him loyal. Some, for
|
||||
example, fearing to be deceived, have taught men to deceive; by their
|
||||
suspicions they have given their friend the right to do wrong. Why need I
|
||||
keep back any words in the presence of my friend? Why should I not regard
|
||||
myself as alone when in his company?</p>
|
||||
|
||||
<p>4. There is a class of men who communicate, to anyone whom they meet, matters
|
||||
which should be revealed to friends alone, and unload upon the chance
|
||||
listener whatever irks them. Others, again, fear to confide in their closest
|
||||
intimates; and if it were possible, they would not trust even themselves,
|
||||
burying their secrets deep in their hearts. But we should do neither. It is
|
||||
equally faulty to trust everyone and to trust no one. Yet the former fault
|
||||
is, I should say, the more ingenuous, the latter the more safe. 5. In like
|
||||
manner you should rebuke these two kinds of men, – both those who always
|
||||
lack repose, and those who are always in repose. For love of bustle is not
|
||||
industry, – it is only the restlessness of a hunted mind. And true repose
|
||||
does not consist in condemning all motion as merely vexation; that kind of
|
||||
repose is slackness and inertia. 6. Therefore, you should note the
|
||||
following saying, taken from my reading in Pomponius: "Some men shrink into
|
||||
dark corners, to such a degree that they see darkly by day." No, men should
|
||||
combine these tendencies, and he who reposes should act and he who acts
|
||||
should take repose. Discuss the problem with Nature; she will tell you that
|
||||
she has created both day and night. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>In this letter I take away two themes: one of friendship, and one of
|
||||
discussions. Of friendship, I think Seneca's definition sets a high bar,
|
||||
though rightfully so. A friend (perhaps a "true friend", considering
|
||||
Facebook et al) is one you can confide in without restriction, except for
|
||||
the most tightly held of secrets. I can personally count the number of
|
||||
people I could call this type of friend on one hand. To Seneca, as with me,
|
||||
friend is an honorable position.</p>
|
||||
|
||||
<p>In today's social-media-fueled world, I find that the term "friend" resonates
|
||||
much closer to Seneca's sick burn: "friend" in the same way in which we
|
||||
speak of all candidates for election as "honorable gentlemen." Perhaps,
|
||||
though, there's a bit of syntactic significance here. To the Stoics, the
|
||||
importance of community and brotherhood is found throughout. Marcus Aurelius
|
||||
has a famous quote about it, as masterfully illustrated by the great Gavin
|
||||
at Zen Pencils: [<a href="https://zenpencils.com/comic/aurelius/"> Link
|
||||
</a>]. I think it safe to say we should be friendly and helpful to all we meet,
|
||||
whereas to welcome one as a friend is a significant event, and one which
|
||||
requires careful consideration.</p>
|
||||
|
||||
<p>The second theme, discussion, is only touched on but I think is significant
|
||||
enough to warrant attention. Seneca mentions the importance of moderation in
|
||||
trust and discussion with others. Do not share freely and constantly, and
|
||||
also do not withdraw within yourself too far. I think here we see a
|
||||
blueprint for discussion with others. To borrow from Marcus, we are all
|
||||
brothers, and in that sense we should be comfortable discussing common
|
||||
matters. However, it is only with friends that we should be comfortable
|
||||
discussing more personal matters, and even then we must be considerate. Once
|
||||
again, our social-media-centric world finds many of us sharing freely into a
|
||||
void we do not recognize as a crowd. Many would do well to remember: social
|
||||
media is not empty! There are those who greedily capture every word you give
|
||||
freely, like a stray animal to a buffet. Judge well what you decide to
|
||||
share, for likely it is not with "true friends" that the message solely
|
||||
goes.</p>
|
||||
|
||||
<p>Reflecting on this letter made me carefully evaluate my friendships. I rarely
|
||||
have difficulty with people, though admittedly I take time to "warm up" to
|
||||
them. In terms of discussions, I don't find much to be beyond common topics.
|
||||
In that sense, I think I am a bit too loose-lipped, though perhaps not as
|
||||
much as I think. However, I do know that it is a small group with which I
|
||||
confide the most personal challenges or achievements I have made. And, as
|
||||
Seneca does suggest, I do not allow entry into this group lightly!</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_3">
|
||||
Moral Letters to Lucilius, Letter 3 on Wikisource
|
||||
</a></p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-20
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,14 +1,40 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 4"
|
||||
title: "Seneca's Letter to Lucilius, Letter 4: On the Terrors of Death"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-20"
|
||||
short_desc: "Letter 4 was the first letter I ever read. Seneca discusses
|
||||
death, life, and how to deal with both. I found it during a time of great
|
||||
anxiety and strife, yet even now I find it enlightening."
|
||||
---
|
||||
|
||||
<h1>Letter 4: On the Terrors of Death</h1>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 4</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/01/28/letter-to-lucilius-4.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Letter 4: On the Terrors of Death</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p>1. Keep on as you have begun, and make all possible haste, so that you may
|
||||
|
@ -149,3 +175,129 @@
|
|||
<p><a href="https://www.theonion.com/world-death-rate-holding-steady-at-100-percent-1819564171">
|
||||
The Onion, "World Death Rate Holding Steady at 100 Percent"
|
||||
</a></p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-01-20
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
273
2018/02/11/letter-to-lucilius-5.html
Normal file
273
2018/02/11/letter-to-lucilius-5.html
Normal file
|
@ -0,0 +1,273 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 5</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/02/11/letter-to-lucilius-5.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="letter-5-on-the-philosophers-mean">Letter 5: On the Philosopher’s Mean</h1>
|
||||
|
||||
<h2 id="original-text">Original Text</h2>
|
||||
|
||||
<p>I commend you and rejoice in the fact that you are persistent in your studies,
|
||||
and that, putting all else aside, you make it each day your endeavour to become
|
||||
a better man. I do not merely exhort you to keep at it; I actually beg you to do
|
||||
so. I warn you, however, not to act after the fashion of those who desire to be
|
||||
conspicuous rather than to improve, by doing things which will rouse comment as
|
||||
regards your dress or general way of living. Repellent attire, unkempt hair,
|
||||
slovenly beard, open scorn of silver dishes, a couch on the bare earth, and any
|
||||
other perverted forms of self-display, are to be avoided. The mere name of
|
||||
philosophy, however quietly pursued, is an object of sufficient scorn; and what
|
||||
would happen if we should begin to separate ourselves from the customs of our
|
||||
fellow-men? Inwardly, we ought to be different in all respects, but our exterior
|
||||
should conform to society. Do not wear too fine, nor yet too frowzy, a toga.
|
||||
One needs no silver plate, encrusted and embossed in solid gold; but we should
|
||||
not believe the lack of silver and gold to be proof of the simple life. Let us
|
||||
try to maintain a higher standard of life than that of the multitude, but not a
|
||||
contrary standard; otherwise, we shall frighten away and repel the very persons
|
||||
whom we are trying to improve. We also bring it about that they are unwilling to
|
||||
imitate us in anything, because they are afraid lest they might be compelled to
|
||||
imitate us in everything.</p>
|
||||
|
||||
<p>The first thing which philosophy undertakes to give is fellow-feeling with all
|
||||
men; in other words, sympathy and sociability. We part company with our promise
|
||||
if we are unlike other men. We must see to it that the means by which we wish to
|
||||
draw admiration be not absurd and odious. Our motto, as you know, is “Live
|
||||
according to Nature”; but it is quite contrary to nature to torture the body, to
|
||||
hate unlaboured elegance, to be dirty on purpose, to eat food that is not only
|
||||
plain, but disgusting and forbidding. Just as it is a sign of luxury to seek
|
||||
out dainties, so it is madness to avoid that which is customary and can be
|
||||
purchased at no great price. Philosophy calls for plain living, but not for
|
||||
penance; and we may perfectly well be plain and neat at the same time. This is
|
||||
the mean of which I approve; our life should observe a happy medium between the
|
||||
ways of a sage and the ways of the world at large; all men should admire it, but
|
||||
they should understand it also.</p>
|
||||
|
||||
<p>“Well then, shall we act like other men? Shall there be no distinction between
|
||||
ourselves and the world?” Yes, a very great one; let men find that we are unlike
|
||||
the common herd, if they look closely. If they visit us at home, they should
|
||||
admire us, rather than our household appointments. He is a great man who uses
|
||||
earthenware dishes as if they were silver; but he is equally great who uses
|
||||
silver as if it were earthenware. It is the sign of an unstable mind not to be
|
||||
able to endure riches.</p>
|
||||
|
||||
<p>But I wish to share with you to-day’s profit also. I find in the writings of
|
||||
our Hecato that the limiting of desires helps also to cure fears: “Cease to
|
||||
hope,” he says, “and you will cease to fear.” “But how,” you will reply, “can
|
||||
things so different go side by side?” In this way, my dear Lucilius: though they
|
||||
do seem at variance, yet they are really united. Just as the same chain fastens
|
||||
the prisoner and the soldier who guards him, so hope and fear, dissimilar as
|
||||
they are, keep step together; fear follows hope. I am not surprised that they
|
||||
proceed in this way; each alike belongs to a mind that is in suspense, a mind
|
||||
that is fretted by looking forward to the future. But the chief cause of both
|
||||
these ills is that we do not adapt ourselves to the present, but send our
|
||||
thoughts a long way ahead. And so foresight, the noblest blessing of the human
|
||||
race, becomes perverted. Beasts avoid the dangers which they see, and when they
|
||||
have escaped them are free from care; but we men torment ourselves over that
|
||||
which is to come as well as over that which is past. Many of our blessings bring
|
||||
bane to us; for memory recalls the tortures of fear, while foresight anticipates
|
||||
them. The present alone can make no man wretched. Farewell.</p>
|
||||
|
||||
<h2 id="response">Response</h2>
|
||||
|
||||
<p>Mean as in average. Not, like… being a jerk. In this letter, Seneca encourages
|
||||
us to live a life which does not ostracize us from society. Instead, we should
|
||||
look beyond the facade, and understand the intentions behind our and others’
|
||||
actions. Living within and conforming to society is not a problem, so long as we
|
||||
do not neglect our virtue: “Inwardly, we ought to be different in all respects,
|
||||
but our exterior should conform to society.”</p>
|
||||
|
||||
<p>I take from this letter two important lessons: live your life for you, not for
|
||||
others; and don’t be afraid to be normal. Though, maybe “live your life for you
|
||||
and pursue virtue” is better. Seek modesty (and moderation) in all things. Be a
|
||||
philosopher in thought, word, and deed, but be an everyday person too, and
|
||||
perhaps primarily. Nobody likes being lectured to, but people do enjoy talking
|
||||
to each other. A big aspect of Stoicism is sharing what we learn with others;
|
||||
improving ourselves to improve others. The only way to do that is by being, for
|
||||
lack of a better word, normal. As Seneca puts it, “We part company with our
|
||||
promise if we are unlike other men.”</p>
|
||||
|
||||
<p>Seneca’s included quote at the end comes from Hecato, and re-enforces the
|
||||
significance of moderation. “Cease to hope, and you will cease to fear.” Seneca
|
||||
expands on this to stress the importance of staying present: “…memory recalls
|
||||
the tortures of fear, while foresight anticipates them.” The way Seneca
|
||||
approaches and expands the quote, though, is simply poetic, and something I will
|
||||
certainly remember moving forward: “Just as the same chain fastens the prisoner
|
||||
and the soldier who guards him, so hope and fear, dissimilar as they are, keep
|
||||
step together; fear follows hope.”</p>
|
||||
|
||||
<p>A few more things worth noting:</p>
|
||||
|
||||
<p>“Repellent attire, unkempt hair, slovenly beard, open scorn of silver dishes, a
|
||||
couch on the bare earth, and any other perverted forms of self-display, are to
|
||||
be avoided.” This seems like a direct response (and another patented Seneca Sick
|
||||
Burn) to the Cynics.</p>
|
||||
|
||||
<p>“It is the sign of an unstable mind not to be able to endure riches.” I read
|
||||
this a few different ways. First, endure the riches of others, and do not let
|
||||
them effect your sense of self-worth. Second, endure the riches of yourself, and
|
||||
do not let it inflate your self-worth. Finally, endure all riches, and recognize
|
||||
them as an indifference, preferred but never at the expense of virtue.</p>
|
||||
|
||||
<h1 id="source">Source</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_5">Moral Letters to Lucilius, Letter 5 on Wikisource</a></li>
|
||||
</ul>
|
||||
|
||||
<h6 id="letter-index"><a href="/2018/01/15/Letters-To-Lucilius.html">Letter Index</a></h6>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-02-11
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
250
2018/02/11/letter-to-lucilius-6.html
Normal file
250
2018/02/11/letter-to-lucilius-6.html
Normal file
|
@ -0,0 +1,250 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Seneca's Letter to Lucilius, Letter 6</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2018/02/11/letter-to-lucilius-6.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="letter-6-on-sharing-knowledge">Letter 6: On Sharing Knowledge</h1>
|
||||
|
||||
<h2 id="original-text">Original Text</h2>
|
||||
|
||||
<p>I feel, my dear Lucilius, that I am being not only reformed, but transformed. I
|
||||
do not yet, however, assure myself, or indulge the hope, that there are no
|
||||
elements left in me which need to be changed. Of course there are many that
|
||||
should be made more compact, or made thinner, or be brought into greater
|
||||
prominence. And indeed this very fact is proof that my spirit is altered into
|
||||
something better, – that it can see its own faults, of which it was previously
|
||||
ignorant. In certain cases sick men are congratulated because they themselves
|
||||
have perceived that they are sick.</p>
|
||||
|
||||
<p>I therefore wish to impart to you this sudden change in myself; I should then
|
||||
begin to place a surer trust in our friendship, – the true friendship which hope
|
||||
and fear and self-interest cannot sever, the friendship in which and for the
|
||||
sake of which men meet death.</p>
|
||||
|
||||
<p>I can show you many who have lacked, not a friend, but a friendship; this,
|
||||
however, cannot possibly happen when souls are drawn together by identical
|
||||
inclinations into an alliance of honourable desires. And why can it not happen?
|
||||
Because in such cases men know that they have all things in common, especially
|
||||
their troubles.</p>
|
||||
|
||||
<p>You cannot conceive what distinct progress I notice that each day brings to me.
|
||||
And when you say: “Give me also a share in these gifts which you have found so
|
||||
helpful,” I reply that I am anxious to heap all these privileges upon you, and
|
||||
that I am glad to learn in order that I may teach. Nothing will ever please me,
|
||||
no matter how excellent or beneficial, if I must retain the knowledge of it to
|
||||
myself. And if wisdom were given me under the express condition that it must be
|
||||
kept hidden and not uttered, I should refuse it. No good thing is pleasant to
|
||||
possess, without friends to share it.</p>
|
||||
|
||||
<p>I shall therefore send to you the actual books; and in order that you may not
|
||||
waste time in searching here and there for profitable topics, I shall mark
|
||||
certain passages, so that you can turn at once to those which I approve and
|
||||
admire. Of course, however, the living voice and the intimacy of a common life
|
||||
will help you more than the written word. You must go to the scene of action,
|
||||
first, because men put more faith in their eyes than in their ears, and second,
|
||||
because the way is long if one follows precepts, but short and helpful, if one
|
||||
follows patterns.</p>
|
||||
|
||||
<p>Cleanthes could not have been the express image of Zeno, if he had merely heard
|
||||
his lectures; he shared in his life, saw into his hidden purposes, and watched
|
||||
him to see whether he lived according to his own rules. Plato, Aristotle, and
|
||||
the whole throng of sages who were destined to go each his different way,
|
||||
derived more benefit from the character than from the words of Socrates. It was
|
||||
not the class-room of Epicurus, but living together under the same roof, that
|
||||
made great men of Metrodorus, Hermarchus, and Polyaenus. Therefore I summon you,
|
||||
not merely that you may derive benefit, but that you may confer benefit; for we
|
||||
can assist each other greatly.</p>
|
||||
|
||||
<p>Meanwhile, I owe you my little daily contribution; you shall be told what
|
||||
pleased me to-day in the writings of Hecato; it is these words: “What progress,
|
||||
you ask, have I made? I have begun to be a friend to myself.” That was indeed a
|
||||
great benefit; such a person can never be alone. You may be sure that such a man
|
||||
is a friend to all mankind. Farewell.</p>
|
||||
|
||||
<h2 id="response">Response</h2>
|
||||
|
||||
<p>This letter is very casual, more of an update than anything, I feel. Seneca
|
||||
draws reference to the significance of friendship once more, as was covered in
|
||||
letter three. Expanding upon it, he emphasizes the importance of sharing
|
||||
knowledge: “And if wisdom were given me under the express condition that it must
|
||||
be kept hidden and not uttered, I should refuse it. No good thing is pleasant to
|
||||
possess, without friends to share it.” Beyond just sharing, though, is the
|
||||
importance of experiencing. His mentions of Cleanthes to Zeno, and Plato or
|
||||
Aristotle to Socrates, help illustrate this notion.</p>
|
||||
|
||||
<p>What strikes me of significance in this letter is the quote Seneca includes from
|
||||
Hecato: “What progress, you ask, have I made? I have begun to be a friend to
|
||||
myself.” It reminds me of a quote from an article I read written in the 1920s:
|
||||
“I am persuaded that no one ever achieves anything worth-while in this world
|
||||
unless he has so great a respect for his work that he compels all other men to
|
||||
respect it.” In my eyes, the first is a requirement for the second; before you
|
||||
can respect yourself and your work, you must be a friend with yourself. Instead
|
||||
of fighting against every negative feeling or doubt, you must find strength and
|
||||
power. Only then will you live with such assurance that you will harbor respect
|
||||
wherever you walk.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_6">Moral Letters to Lucilius, Letter 6 on Wikisource</a></li>
|
||||
<li><a href="https://mikecanex.wordpress.com/2012/12/26/1922-why-i-quit-being-so-accommodating/">Why I Quit Being So Accomidating</a></li>
|
||||
</ul>
|
||||
|
||||
<h6 id="letter-index"><a href="/2018/01/15/Letters-To-Lucilius.html">Letter Index</a></h6>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2018-02-11
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/philosophy">philosophy</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
255
2020/06/03/post.html
Normal file
255
2020/06/03/post.html
Normal file
|
@ -0,0 +1,255 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: An Update</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/06/03/post.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="an-update">An Update</h1>
|
||||
|
||||
<p>There is nothing I’ve experienced as humbling as powerlessness. The immediate
|
||||
realization that, despite all the capabilities which may be before you, you can
|
||||
do nothing to affect a situation. It is a powerful reminder that we are, all,
|
||||
parts of a whole. That could mean “cogs in a machine” or other such cynical
|
||||
metaphors, or it could mean part of a team, working together towards a goal. I
|
||||
often fall for the former, and rally to the later. Right now, I see examples of
|
||||
the later all around me: protesters on streets, in parks, joining together to
|
||||
oppose a borderline dictator who chooses military action over reform. Yet, I
|
||||
don’t understand how I can fit in. I understand how, literally, I can join in
|
||||
the protests. I’m not worried about my health or my status in doing so, yet I
|
||||
still hesitate. Because I feel powerless. Because I look at protests, and I see
|
||||
peaceful citizens opposed by military bullies. I see the desperate grasps for
|
||||
control furthering oppression and injustice. I see “their” power, and I feel
|
||||
“their” power, and I sit here, thoughts gasping for breath in a sea of rage and
|
||||
regret. I know adding my voice would not be in vain. I understand that another
|
||||
body in the crowd is not just a number, but a show of support. And yet I still
|
||||
hesitate. Perhaps out of fear; perhaps I was wrong to boldly claim I was
|
||||
unconcerned with my health or status. I like to think I can set aside those and
|
||||
other “indifferents” during times when virtuous action is required; I like to
|
||||
think I would be one to race towards danger, if it was the right thing to do.
|
||||
Yet, as the saying goes, often our actions speak louder than words.</p>
|
||||
|
||||
<p>But perhaps this is a misperception. There are many ways to show support, many
|
||||
avenues to fight oppression. If fear dictate I stay in my house, “safe” from the
|
||||
troubles in the world, then what can I do from here? Much like a voice in the
|
||||
crowd, throwing a blog post out to the world may seem ineffective, but to expect
|
||||
change on this scale be made only by my voice, is selfish and fantasy. This blog
|
||||
post represents my voice online. It is my space, where I can share my ideas and
|
||||
theories, my creations and my fears. In our digital world, this is my personal
|
||||
park from which I can protest, and so I shall. And just like protest in
|
||||
meatspace, it need not end at this. I can still contact my representative, my
|
||||
congressperson, and anyone I feel can and should know my opinion. And so I
|
||||
shall. And I encourage anyone who stumbles across this post, in good times and
|
||||
bad alike, to know that you have options. That powerlessness, while humbling, is
|
||||
not a force of oppression, but a call to examine your perceptions.</p>
|
||||
|
||||
<h2 id="resources">Resources</h2>
|
||||
|
||||
<p><a href="https://www.house.gov/representatives/find-your-representative">Find your
|
||||
Representative</a></p>
|
||||
|
||||
<p><a href="https://www.senate.gov/senators/contact">Find your Senators</a></p>
|
||||
|
||||
<h1 id="and-now-for-something-completely-different">And now for something completely different…</h1>
|
||||
|
||||
<p>Rails! I’ve been learning Ruby on Rails (again… again) as a means to build
|
||||
some of the applications I’ve been thinking of. The most immediate, and the
|
||||
motivation for the recent return, is to build a character sheet system for
|
||||
roleplaying games, specifically Pathfinder and D&D 5e. For a long time, I have
|
||||
considered how cool it would be to have a dynamic character sheet that can
|
||||
calculate all my rolls for me, help me level up, and provide me contextual
|
||||
information. I want to explore tying it to a chat bot, available first on Matrix
|
||||
but later on Discord and perhaps others, to allow for in-line reference and
|
||||
rolling with character awareness, for both players and DMs. I’ve been working my
|
||||
way through Michael Hart’s <a href="https://www.learnenough.com/ruby-on-rails-6th-edition">Ruby on Rails
|
||||
Tutorial</a>. I’m literally
|
||||
on the last chapter of building the example application, and look forward to
|
||||
using it as the foundation to build my application. I also played around with
|
||||
<a href="https://matrix.org/">Matrix</a> and a <a href="https://github.com/ananace/ruby-matrix-sdk">Ruby
|
||||
API</a> for building a bot. Glaub, my
|
||||
WIP bot, was able to connect to the Heroku-deployed application and query it for
|
||||
information via REST calls. I look forward to exploring this more as well.</p>
|
||||
|
||||
<p>I also stumbled across <a href="https://100daystooffload.com">#100DaysToOffload</a>. I
|
||||
think it’s a cool idea, and I’m going to try and pursue it. I have plenty I
|
||||
think about and do every day, and some of it may be helpful.</p>
|
||||
|
||||
<p>Finally, I’ve been very interested in a number of things since being confined
|
||||
during quarantine: self-hosting, decentralized platforms, exercise, cooking,
|
||||
gaming, streaming. Some of these are continued hobbies, some of these are
|
||||
relatively new, and some are completely new to me. I see many synergies between
|
||||
them, and as part of my writing goals, I want to explore them. I already
|
||||
highlighted one: Matrix, a decentralized platform, and building a
|
||||
character-sheet bot. In fact, it also incorporates self-hosting, since I
|
||||
followed <a href="https://matrix.org/blog/2020/04/06/running-your-own-secure-communication-service-with-matrix-and-jitsi">this fun
|
||||
tutorial</a>
|
||||
and setup and configured my own Matrix homeserver and Jitsi Meet instance.
|
||||
Because part of the #100DaysToOffload is to share these posts on socials, I’m
|
||||
also resuming my look into <a href="https://joinmastodon.org/">Mastodon</a> and considering
|
||||
self-hosting a homeserver of that as well. I’m also considering finding a
|
||||
<a href="https://joinpeertube.org/">Peertube</a> community to upload videos to. I think
|
||||
Peertube is a cool idea, and as someone pointed out, there’s not a lot of gaming
|
||||
content on it. I could help promote the platform as an alternative for finding
|
||||
fun gaming videos. Well, at least, for finding gaming videos.</p>
|
||||
|
||||
<p>That’s all for now. Stay safe, stay vigilant, pursue virtue in all that you do.
|
||||
If you’re not sure what to do, consider writing a blog! I’m writing this post as
|
||||
part of <a href="https://100daystooffload">#100DaysToOffload</a>, an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-06-03
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
382
2020/06/14/setting-up-btrfs.html
Normal file
382
2020/06/14/setting-up-btrfs.html
Normal file
|
@ -0,0 +1,382 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Setting Up a BTRFS RAID-1</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/06/14/setting-up-btrfs.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="btrfs-smooth-as-butter">BTRFS: Smooth as Butter</h1>
|
||||
|
||||
<p>I have a habit of calling BTRFS “butter-F-S.” Conveniently in text I don’t feel
|
||||
a need to say that, because it’s easier to type out BTRFS than “butter-F-S”, as
|
||||
opposed to being easier to say the latter than the former. Regardless, BTRFS is
|
||||
a file system, which can be thought of as the organization system used by a hard
|
||||
drive to store files. File systems provide the functionality necessary for
|
||||
handling data; without one, data would exist on a disk with no means of (simple,
|
||||
reliable) access, management, or use. Every operating system provides the
|
||||
necessary configurations for using at least one file system, and often times can
|
||||
be expanded to understand more file systems, as is the case with Linux. If
|
||||
you’re used to Windows, you’ll be primarily familiar with two file systems:
|
||||
NTFS, and FAT. If you’re familiar with Linux, you’ll have probably dealt with
|
||||
those, as well as EXT. If you’re adventerous, you have have tried additional
|
||||
file systems such as ZFS, or BTRFS.</p>
|
||||
|
||||
<p>When I returned to Linux full-time on my desktop, I decided I wanted to setup a
|
||||
storage system. I initially shopped around for a NAS: network-attached storage.
|
||||
This would be a separate device, basically a motherboard with hard-drives. It
|
||||
would include software for storing data reliably, as well as applications for
|
||||
serving that data, such a Plex. There are many top-rated off-the-shelf options
|
||||
available, but many are costly, propietary, and lock you in to that solution. I
|
||||
decided to go with something a bit more readily available, and turn two existing
|
||||
3 terrabyte drives into a storage system that would live as part of my desktop.
|
||||
The remainder of this post will deal with how I setup BTRFS on my Linux desktop,
|
||||
using sub-volumes, creating automated snapshots, and setting up a back-up
|
||||
schedule.</p>
|
||||
|
||||
<h2 id="setting-up-btrfs">Setting up BTRFS</h2>
|
||||
|
||||
<p>Linux has “first-class” support for BTRFS, which was a deciding force between it
|
||||
and ZFS. (Though, recently, ZFS has made some strides as well.) The only
|
||||
requirements necessary for using BTRFS is to install the <code class="language-plaintext highlighter-rouge">btrfs-progs</code> program,
|
||||
which is required for basic operations. With requirements done, the next step is
|
||||
to setup the filesystem on your disk of choice. This will delete all information
|
||||
on your disk, so only do this when you’re certain any existing data has been
|
||||
backed-up, or you don’t mind losing it.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mkfs.btrfs /dev/partition
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>I decided to go with a partitionless setup, which is a slightly modified version
|
||||
of the above command. The above command also allows for adding a disk label, as
|
||||
well as a few other options; <code class="language-plaintext highlighter-rouge">man mkfs.btrfs</code> will give you all the details. I
|
||||
decided to call my BTRFS storage system my “Bag of Holding.”</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mkfs.btrfs -L BagOfHolding /dev/sdg
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Creating a partitionless setup removes the MBR or GPT partitioning schemes, and
|
||||
relies on subvolumes to simulate partitions. Because I’m only using these disks
|
||||
for storage, and I won’t be booting from them, this seemed like the way to go.</p>
|
||||
|
||||
<p>My setup will take two drives, and combine them together into a RAID-1. In order
|
||||
to allow for me to get the data from the drives into my new RAID, I did one disk
|
||||
at a time, and moved data between them, I then balanced the RAID.</p>
|
||||
|
||||
<h2 id="configuring-a-btrfs-raid">Configuring a BTRFS RAID</h2>
|
||||
|
||||
<p>At this point, I have two separate drives. One of my drives has all my data on
|
||||
it, the other drive is a raw, partitionless filesystem. At this point, we can
|
||||
leverage BTRFS to combine both our disks into a single “device”, and then
|
||||
balance it. All these commands will leverage the <code class="language-plaintext highlighter-rouge">btrfs</code> command, which needs to
|
||||
be run as root.</p>
|
||||
|
||||
<p>First, mount one of the drives. In my case, I mounted the drive with data</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mount -t btrfs /dev/sdg /mnt/BagOfHolding
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Next, I added my second device to the mounted file system</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>btrfs device add /dev/sdh /mnt/BagOfHolding
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>At this point, we have a filesystem with two devices, but the data and metadata
|
||||
hasn’t been balanced yet. To simply balance the data, and replicate a RAID-0
|
||||
setup, you would run the <code class="language-plaintext highlighter-rouge">btrfs balance</code> command, specifying the
|
||||
mounted filesystem. In my case, I wanted to replicate a RAID-1 setup, having the
|
||||
two disks mirrored instead of striped. The command is modified to include a
|
||||
“balance filter”:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>btrfs balance -dconvert=raid1 -mconvert=raid1 /mnt/BagOfHolding
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This command will take time, since it has to re-balance the data across the
|
||||
devices. A convenient time for a short aside:</p>
|
||||
|
||||
<h3 id="buzzwords-of-butter">Buzzwords of Butter</h3>
|
||||
|
||||
<ul>
|
||||
<li>Copy-on-Write (COW): Basically, only make copies to data when there are
|
||||
written changes to it. I don’t fully understand Copy-on-Write, and is
|
||||
possibly a good candidate for a future post.</li>
|
||||
<li>Subvolumes: Like a partition, but not a block device. The BTRFS Wiki defines
|
||||
it as “an independently mountable POSIX filetree.” I think of subvolumes as
|
||||
“software partitions” which I’m sure is both wrong and infuriating to people
|
||||
who know more about it than I do.</li>
|
||||
<li>Snapshots: A snapshot is a subvolume that shares its data with another
|
||||
subvolume, using copy-on-write. This means if there are no changes to the
|
||||
underlying data, a snapshot is basically just a reference to the exactly
|
||||
same data as the initial subvolume. As changes get made, the snapshot
|
||||
references a copy of “old” data, as opposed to the new data. Thus, a
|
||||
snapshot represents data at a specific point in time.</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="setting-up-subvolumes">Setting up Subvolumes</h2>
|
||||
|
||||
<p>At this point, I have a single device made of two disks. The device, when
|
||||
queried using <code class="language-plaintext highlighter-rouge">btrfs filesystem show</code> shows the total available and used space,
|
||||
and the individual disks composing it. Creating subvolumes is optional; by
|
||||
default, a BTRFS filesystem has one subvolume (with id 5) as the “root.” If you
|
||||
mount the device, you’ll mount that, and see the entire device. I wanted a bit
|
||||
more organization, and options for snapshots, so I created a number of
|
||||
subvolumes for different files: Books, Code, Documents, Games, Misc, Music,
|
||||
Pictures, Videos. I mount each separately, and then sym-link directories in my
|
||||
home directory to a corresponding subvolume.</p>
|
||||
|
||||
<p>Creating a subvolume is very straight forward, using the <code class="language-plaintext highlighter-rouge">brtfs subvolume
|
||||
create</code> command. I made many, as mentioned before, and I’ll walk through how I
|
||||
setup the Books subvolume. I followed the same steps for all other subvolumes.</p>
|
||||
|
||||
<p>First, I created it:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>btrfs subvolume create /mnt/BagOfHolding/Books
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Then, I configured it to automatically mount. This involved adding a line to my
|
||||
fstab file:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>...
|
||||
UUID=658cc4e0-93e1-43b5-b068-d889b44ae98d /mnt/BagOfHolding/Books btrfs subvol=/Books,defaults,nofail,x-systemd.device-timeout=5
|
||||
...
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Looks very similar to other entries, except that the option <code class="language-plaintext highlighter-rouge">subvol=/Books</code> is
|
||||
necessary! This whole line tells the file system to mount the BTRFS subvolume
|
||||
located at Books <em>relative to the “root” subvolume</em>, to the mount point
|
||||
“/mnt/BagOfHolding/Books”. The other important thing to remember is that
|
||||
subvolumes are not block devices. For the BTRFS device, there is only one block
|
||||
device, and that’s the RAID we setup earlier. If you run <code class="language-plaintext highlighter-rouge">btrfs filesystem show</code>
|
||||
you’ll see the device has a single UUID, despite having the two individual
|
||||
disks. In fact, if you were to mount either of the disk devices, you would mount
|
||||
the raid; in my case, if I were to use <code class="language-plaintext highlighter-rouge">/dev/sdg</code> or <code class="language-plaintext highlighter-rouge">/dev/sdh</code> instead of the
|
||||
UUID, it would do the same thing. UUIDs are more reliable, though, so I tend
|
||||
towards them. My fstab has a line like the above for each subvolume. Once that’s
|
||||
done, unmount the RAID, and then either run <code class="language-plaintext highlighter-rouge">mount -a</code> or restart to get each
|
||||
individual subvolume mounted. The final step I did was to symbolic link
|
||||
directories from my home directory to the corresponding subvolumes. Following
|
||||
with Books, I did <code class="language-plaintext highlighter-rouge">ln -s /mnt/BagOfHolding/Books Books</code> from my home directory.
|
||||
Now, if I <code class="language-plaintext highlighter-rouge">cd ~/Books</code> I get to the subvolume on my RAID.</p>
|
||||
|
||||
<h2 id="scheduling-snapshots">Scheduling Snapshots</h2>
|
||||
|
||||
<p>With the RAID established, and subvolumes created, mounted and linked, I now can
|
||||
schedule automatic snapshots. An easy way to do so is with a program called
|
||||
Snapper. Installing that provides the application, as well as schedules both via
|
||||
cron and Systemd. Because I’m running Arch, we’ll rely on the Systemd timer.
|
||||
Before that, we need to create a Snapper configuration.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo snapper -c books create-config /mnt/BagOfHolding/Books
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This will create the configuration file in “/etc/snapper/configs/”. The
|
||||
configuration includes limits on how many snapshots to keep of different types
|
||||
(“hourly”, “weekly”, etc..). The defaults seemed sane enough for me. Without a
|
||||
cron scheduler, though, nothing else happens. (If you have a cron scheduler,
|
||||
then it will have started automatically and will run accordingly). The final
|
||||
step is to enable and start the “snapper-timeline” timer. If desired, modify the
|
||||
timer frequency (I believe the default is hourly, which is good enough).</p>
|
||||
|
||||
<p>One last thing to do for Systemd is to also enable and start the
|
||||
“snapper-cleanup” timer, which will cull snapshots down to the configured amount
|
||||
from the configuraiton file.</p>
|
||||
|
||||
<p>An interesting thing about snapshots is that, unless something has changed, they
|
||||
won’t take up space. Creating 10 snapshots will not replicate data 10 times.
|
||||
What each snapshot will capture are any changes that have been made to the data.</p>
|
||||
|
||||
<h2 id="creating-backups-from-snapshots">Creating Backups from Snapshots</h2>
|
||||
|
||||
<p>The final phase of my BTRFS journey is to establish backups. One thing that must
|
||||
be emphasized: <strong>SNAPSHOTS ARE NOT BACKUPS</strong>. They can be used to make backups,
|
||||
though. The way I’m doing that currently is with a program called snap-sync.
|
||||
snap-sync will iterate through each Snapper config, and send a snapshot from
|
||||
each to a remote BTRFS-formatted source. In my case, the remote source is an
|
||||
external hard drive. I formatted it similar to my RAID drives, without a
|
||||
partition. Once done, I ran <code class="language-plaintext highlighter-rouge">snap-sync</code> as root, which provides guidance for
|
||||
choosing a disk, and walks through each Snapper config. I ran it once, to get
|
||||
each directory established on the external drive. The manual (<code class="language-plaintext highlighter-rouge">man snap-sync</code>)
|
||||
includes example Systemd timers, which I used to create a timer and service in
|
||||
“/usr/lib/systemd/system”. Then, I enabled and started the timer. The example
|
||||
runs once a week, though I think I may update that to once a day.</p>
|
||||
|
||||
<h2 id="conclusion">Conclusion</h2>
|
||||
|
||||
<p>With that, I feel I have a good solution to my storage needs. I can keep all my
|
||||
data on a RAID drive with backups, accessible easily from the primary machine I
|
||||
use. I further synchronize music and pictures to and from my phone using
|
||||
Syncthing, which will be an upcoming topic of discussion. Some next steps:</p>
|
||||
|
||||
<ul>
|
||||
<li>setup and configure Calibre for my books</li>
|
||||
<li>better configure Demlo for my music</li>
|
||||
<li>look into accessing my RAID from my Raspberry Pi, perhaps via NFS, and
|
||||
leveraging wake-on-lan, to allow for streaming media remotely whenever,
|
||||
without having to leave my desktop on</li>
|
||||
</ul>
|
||||
|
||||
<p>I’m writing this post as part of <a href="https://100daystooffload.com">#100DaysToOffload</a>, an initiative to inspire writing habits. Perhaps
|
||||
you could do the same.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://wiki.archlinux.org/index.php/Btrfs">btrfs on the Arch Wiki</a></li>
|
||||
<li><a href="https://wiki.archlinux.org/index.php/Snapper">Snapper on the Arch Wiki</a></li>
|
||||
<li><a href="https://github.com/wesbarnett/snap-sync">snap-sync</a></li>
|
||||
<li><a href="https://btrfs.wiki.kernel.org/index.php/Main_Page">The BTRFS Wiki</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-06-14
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
290
2020/06/18/gabriella_s-fall.html
Normal file
290
2020/06/18/gabriella_s-fall.html
Normal file
|
@ -0,0 +1,290 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Character Story: Gabriella's Fall</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/06/18/gabriella_s-fall.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="character-story-gabriellas-fall">Character Story: Gabriella’s Fall</h1>
|
||||
|
||||
<p><em>Gabriella de la Rodriguez Alejandra Santa Lucia, you are hereby relieved of
|
||||
duty and dishonorably discharged from the Barakhan Army.</em></p>
|
||||
|
||||
<p>The morning was cold. It’s always cold. Something Gabriella knew but rarely
|
||||
experienced. She had not slept well since the hearing, and had taken to
|
||||
wandering the city.</p>
|
||||
|
||||
<p><em>You are charged with gross negligence, gross incompetence, and failure to
|
||||
repair. The results of your actions have cost the lives of 8 Barakhan soldiers
|
||||
under your command.</em></p>
|
||||
|
||||
<p>With a start she awoke to fresh dew. She had apparently dozed off. How swiftly
|
||||
her discipline had faltered. Yet another indication of her failure.</p>
|
||||
|
||||
<p><em>Gareth Brand. Ryal Cross. Willem Frost. Davis Mason.</em></p>
|
||||
|
||||
<p>She stopped paying for rooms, since she spent so little time in them. The
|
||||
streets weren’t that bad at night, despite what some may think. In the gardens
|
||||
or along the parkways, there were always trees to rest beneath. The city, the
|
||||
one she had dreamt about as a child; the one she has sworn to defend; the one
|
||||
she now walked as a ghost. The city somehow still welcomed her, still provided
|
||||
for her. Who was she to deserve it?</p>
|
||||
|
||||
<p><em>Francis Potter. Cordon Stone. Richard Stone. Samuel White.</em></p>
|
||||
|
||||
<p>She did not.</p>
|
||||
|
||||
<p><em>All possessions of the army are now to be reclaimed. You will doff your armor,
|
||||
remove your shield, and place them on the floor beside you. All possessions
|
||||
which belong to you have been gathered, and are now presented to you.</em></p>
|
||||
|
||||
<p>A sack, with several sets of clothing. A few books. Her Uncle’s sword. These
|
||||
items were handed to her by a court clerk. She took them, and in stunned
|
||||
silence, stared at the floor in front of her.</p>
|
||||
|
||||
<p><em>This dismissal is now complete. As of this moment, you are forbidden interaction
|
||||
with any members of House Barakhan, until you return to Mnemar and make amends
|
||||
for your actions.</em></p>
|
||||
|
||||
<p>She couldn’t move. She could barely breathe. The Field Marshall closed the book,
|
||||
and placed it on the table before him. The Imperial Magister, with the slightest
|
||||
smirk on his face, was the first to leave. After what seemed like ages, one of
|
||||
Field Marshall Barakhan Randall’s captains escorted Gabriella to the exit.</p>
|
||||
|
||||
<p>This was the fourth time she walked into the temple. This time she was
|
||||
determined to at least try. She spotted a secluded space, and knelt at a pew.
|
||||
After a few moments, she rose. This is pointless, she thought, and began to walk
|
||||
out. She paused, then slowly returned to the pew. Again she knelt, and as she
|
||||
had done so many times since Rattimas, whispered quietly the names of her men.
|
||||
<em>Gareth, Ryal, Willem, Davis, Francis.</em> She stopped, took a deep breath, and
|
||||
continued. <em>Cordon, Richard, Samuel.</em> Silence. She stared at her hands, clasped
|
||||
before her.</p>
|
||||
|
||||
<p>“I’ve never done this before. I’ve seen my men pray to gods. I’ve seen the
|
||||
citizens and refugees with their shrines and books. I’ve never been convinced it
|
||||
was worth my time. I guess, now that I have nothing left, it doesn’t seem such a
|
||||
waste.”</p>
|
||||
|
||||
<p>She smiled, and laughed quietly. “This is pointless.”</p>
|
||||
|
||||
<p>She rose, and as she did, a voice from behind her spoke.</p>
|
||||
|
||||
<p>“Where I walk, so must you.”</p>
|
||||
|
||||
<p>Gabriella turned, and before her saw a woman dressed in stately attire. Her
|
||||
white gown was precisely fitted, and simply decorated with pearls and rubies.
|
||||
Her hair was fashioned up into a wide fin around a golden comb. In her hands she
|
||||
held a scepter, of golden shaft and topped with a red orb, which itself was
|
||||
surrounded by a golden crown.</p>
|
||||
|
||||
<p>“Beg your pardon, ma’am. I am not so desperate as to find employ as a servant.”
|
||||
Gabriella replied.</p>
|
||||
|
||||
<p>“You have always been my servant, Gabriella. Ever since you first dreamt of my
|
||||
city.” The woman sat, and gestured for Gabriella to do the same. As she did, the
|
||||
woman continued.</p>
|
||||
|
||||
<p>“My city is under threat, and you have come very far to protect it. The army
|
||||
provided you with training, which will serve you well. While your discharge from
|
||||
the army is unfortunate, it is but a slight bump in the road.”</p>
|
||||
|
||||
<p>The woman waited, then. Gabriella returned her gaze, confused. This woman was
|
||||
not present at her dismissal, and news of it had not spread outside the
|
||||
barracks. If this woman was Barakhan, she was forbidden to speak with Gabriella.</p>
|
||||
|
||||
<p>“I am not worthy of protecting this city. My failures are paramount, and my
|
||||
actions found wanting. I have failed my family, my army, my homeland, and
|
||||
myself.” Gabriella replied.</p>
|
||||
|
||||
<p>“The events which led to your dismissal are unfortunate, but the judgement is
|
||||
fair.”</p>
|
||||
|
||||
<p>Gabriella winced. If the woman noticed, she paid no heed.</p>
|
||||
|
||||
<p>“You will make amends yet. Now is no time for this pathetic exercise in
|
||||
self-pity. For nearly two weeks you have lived as a vagrant and it has not done
|
||||
you well. Cities have inns for a reason. Get a room at The Red River Way. Tork,
|
||||
the keeper, is a good man and will charge you a fair price. You need a bath, and
|
||||
to properly dress yourself. I cannot give you the armor you are familiar with,
|
||||
but this cloak will keep you warm.”</p>
|
||||
|
||||
<p>The woman rose then, and looked down upon Gabriella.</p>
|
||||
|
||||
<p>“You must walk my city. Every road and alley way. Upon its stones and bricks you
|
||||
will discover your strength. You have asked for help, and this is how you shall
|
||||
earn it. You once swore to protect this city, and by proxy have sworn fealty to
|
||||
me. In return, once you have proven your fealty, I will extend my blessing to
|
||||
you.”</p>
|
||||
|
||||
<p>Gabriella stood, as the woman thrust the cloak into her arms.</p>
|
||||
|
||||
<p>“I will find you once more, here, when you are done.”</p>
|
||||
|
||||
<p>“Who are you to command me? I have no commander. I have no lord. I don’t want
|
||||
your charity and I don’t want your chores!” Gabriella responded, a fury rising
|
||||
in her voice.</p>
|
||||
|
||||
<p>“I am the patron of Silent Fall. I am Erathis. You asked for my help. I have
|
||||
given it.”</p>
|
||||
|
||||
<h1 id="100-days">100 Days</h1>
|
||||
<p>I’m writing this post as part of
|
||||
<a href="https://100daystooffload.com">#100DaysToOffload</a>, an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-06-18
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,22 +1,49 @@
|
|||
---
|
||||
tabtitle: "Character Write-up: Jhoric Stonehammer"
|
||||
title: "Character Write-up: Jhoric Stonehammer"
|
||||
topics: [gaming, writing]
|
||||
pub: "2020-06-19"
|
||||
short_desc: "The backstory of my proud cleric of Moradin, Jhoric
|
||||
Stonehammer."
|
||||
---
|
||||
|
||||
Jhoric Stonehammer is the character I'm playing in the `Descent into Avernus`
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Character Write-up: Jhoric Stonehammer</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/06/19/jhoric_background.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>Jhoric Stonehammer is the character I’m playing in the <code class="language-plaintext highlighter-rouge">Descent into Avernus</code>
|
||||
campaign. The backstory was originally developed for a different character, and
|
||||
a different campaign. However, by Moradin's Hammer, I decided to play a cleric,
|
||||
a different campaign. However, by Moradin’s Hammer, I decided to play a cleric,
|
||||
and as I began building the character, I realized the dwarven cleric I had in
|
||||
reserve would do fine. The last bit of his backstory was quickly thrown
|
||||
together, as part of the hook into the campaign, but it works well enough.
|
||||
together, as part of the hook into the campaign, but it works well enough.</p>
|
||||
|
||||
# Character Backstory: Jhoric Stonehammer
|
||||
<h1 id="character-backstory-jhoric-stonehammer">Character Backstory: Jhoric Stonehammer</h1>
|
||||
|
||||
Most of the great halls of the world have been built by dwarven masons and
|
||||
<p>Most of the great halls of the world have been built by dwarven masons and
|
||||
smiths. The mighty vaulted ceilings and buttresses of cathedrals, the
|
||||
impregnable walls of keeps, and the humble alcoves of libraries, can all call
|
||||
themselves brethren. Birthed by the greatest architectural minds of the realms,
|
||||
|
@ -28,9 +55,9 @@ worked with the stone, not against it. When they finished, the product was one
|
|||
never seen before, and never to be seen after. Unique not only in shape, but in
|
||||
spirit. The lifeforce of the dwarf, with the lifeforce of the stone, combined
|
||||
into a creation of such quality, the divines would be impressed. In fact, as
|
||||
many a dwarf will boast, the Halls of Valhalla are built by their ancestors.
|
||||
many a dwarf will boast, the Halls of Valhalla are built by their ancestors.</p>
|
||||
|
||||
Becoming a stonemason is a great honor for a dwarf. Many of the families of many
|
||||
<p>Becoming a stonemason is a great honor for a dwarf. Many of the families of many
|
||||
settlements have long and storied histories and traditions, none-the-least of
|
||||
which involves dedicating a child to the masons or smiths. Being of a trusted
|
||||
family is not enough, though. No dwarf is admitted to the mason’s craft before
|
||||
|
@ -49,9 +76,9 @@ Still, they are taught to focus on learning. As they grow, the students begin to
|
|||
see the learning opportunities in all they do. Every tool created offers secrets
|
||||
of iron; every block cut reveals the history of the stone. When a dwarf exclaims
|
||||
this revelation to his masters, only then is he considered eligible for
|
||||
training.
|
||||
training.</p>
|
||||
|
||||
Now, having been worthy of applying to become a mason or a smith, a dwarf must
|
||||
<p>Now, having been worthy of applying to become a mason or a smith, a dwarf must
|
||||
begin work on his entrance piece. For a smith, this is often a weapon of
|
||||
masterwork quality. For a mason, this may be an architectural design, or a
|
||||
finely crafted stone idol. Once their creation is completed, a task which may
|
||||
|
@ -64,9 +91,9 @@ stone teaches blood, as iron teaches blood. In circumstances where a bloodline
|
|||
relative is not an option, a dwarf may find apprenticeship to the second or
|
||||
third representative from a bloodline. In doing so, the dwarf generally seeks to
|
||||
renew their bloodline, through the assistance of the stronger one. This is seen
|
||||
as an honorable position for a second or third representative of a bloodline.
|
||||
as an honorable position for a second or third representative of a bloodline.</p>
|
||||
|
||||
As an apprentice, the dwarf discontinues any previous expeditions in favor of
|
||||
<p>As an apprentice, the dwarf discontinues any previous expeditions in favor of
|
||||
working exclusively in the workshop of his chosen craft. For a decade or more,
|
||||
the dwarf apprentice practices their craft. A smith may start off working the
|
||||
bellows of his master’s smith. After several years, the dwarf may be trusted to
|
||||
|
@ -80,9 +107,9 @@ for every mason is often to create several pallets worth of cut blocks, whether
|
|||
it be stone, brick, or less common materials, and to assemble the necessary
|
||||
chemicals for mixture into plaster, grout, and other cements. After many years
|
||||
of this, the apprentice is often called upon to assist their master with
|
||||
foundations, extensions, roadwork, and more intricate stone working.
|
||||
foundations, extensions, roadwork, and more intricate stone working.</p>
|
||||
|
||||
Generally after two decades of apprenticeships, a dwarf will be given the title
|
||||
<p>Generally after two decades of apprenticeships, a dwarf will be given the title
|
||||
of journeyman. At this point, they are permitted by the councils to open their
|
||||
own shops, and sell their own services. Journeyman shops are often specialized,
|
||||
so as to find a niche they can work in and profit. Once they have proven their
|
||||
|
@ -97,11 +124,11 @@ apprentices. This is also when a dwarf is permitted (and sometimes expected) to
|
|||
leave their settlement in search of foreign (though still often dwarven)
|
||||
settlements in need of their craftsmanship. It is expected at this time, when a
|
||||
dwarf is generally 110 to 150 years of age, that they start and family to
|
||||
continue their tradition.
|
||||
continue their tradition.</p>
|
||||
|
||||
It is not the first time that Jhoric defied expectations.
|
||||
<p>It is not the first time that Jhoric defied expectations.</p>
|
||||
|
||||
Jhoric Stonehammer, born of Namrok Stonehammer and Hilga Stoutwood, was the
|
||||
<p>Jhoric Stonehammer, born of Namrok Stonehammer and Hilga Stoutwood, was the
|
||||
second born. His older brother, Horace, was to be a smith, and so Jhoric was to
|
||||
be trained a stonemason. He was trained in the tradition of his Uncle, Hilga’s
|
||||
brother Thordon. In his 23rd year, Jhoric went on a 5 year expedition to the
|
||||
|
@ -117,9 +144,9 @@ year, Jhoric began work on his entrance piece to the mason’s council: a lecter
|
|||
the base of which was granite, the stand of which was marble, the desk of which
|
||||
was yellowstone sandstone. The desk was decorated as a scroll, inlay with
|
||||
obsidian lettering of a prayer to Moradin. After his admission as an apprentice
|
||||
to Thordon, Jhoric donated the lecturn to the temple of Moradin.
|
||||
to Thordon, Jhoric donated the lecturn to the temple of Moradin.</p>
|
||||
|
||||
Jhoric’s apprenticeship initially saw him dealing primarily with block cutting
|
||||
<p>Jhoric’s apprenticeship initially saw him dealing primarily with block cutting
|
||||
and transportation. Drawing on their previous arrangements, Jhoric arranged with
|
||||
Horace a caravan to transport cut stone and iron. The arrangement was further
|
||||
improved when the shops of Thordon and Horace (who had attained the rank of
|
||||
|
@ -131,32 +158,160 @@ directly with architectural design, structural design, foundation laying, and
|
|||
resource acquisitions. On his 70th birthday, Thordon and the council announced
|
||||
that Jhoric had achieved the rank of journeyman. Jhoric continued to assist with
|
||||
the construction of the temple, until it’s completion during his 87th year.
|
||||
During those 17 years, Jhoric had established his own shop to work from and for.
|
||||
During those 17 years, Jhoric had established his own shop to work from and for.</p>
|
||||
|
||||
On his 88th birthday, Jhoric had a divine vision, and was compelled by Moradin
|
||||
<p>On his 88th birthday, Jhoric had a divine vision, and was compelled by Moradin
|
||||
to pursue a specific artifact in a lost temple. After consultation and
|
||||
confirmation with the priest of Moradin at the temple he just completed, Jhoric
|
||||
assembled a small adventuring party and pursued the relic. He obtained the relic
|
||||
during his 91st year. Upon returning the relic, the priest of Moradin instructed
|
||||
Jhoric that he must travel to Baldur's Gate. Little detail was given as to the
|
||||
reasoning, aside from that Moradin had once again chosen Jhoric's path. He
|
||||
transferred ownership of his shop to Thordon.
|
||||
Jhoric that he must travel to Baldur’s Gate. Little detail was given as to the
|
||||
reasoning, aside from that Moradin had once again chosen Jhoric’s path. He
|
||||
transferred ownership of his shop to Thordon.</p>
|
||||
|
||||
Upon arrival in Baldur's Gate, Jhoric took up employ with the Shattershield
|
||||
Guild. Having learned that this guild constructed the walls around Baldur's
|
||||
<p>Upon arrival in Baldur’s Gate, Jhoric took up employ with the Shattershield
|
||||
Guild. Having learned that this guild constructed the walls around Baldur’s
|
||||
Gate, it seemed the most appropriate place for him. A wealthy noble, Jopalin,
|
||||
contracted him through the guild to construct some elaborate building materials
|
||||
for an addition to his building, which contains his tea shop as well his living
|
||||
quarters. After several weeks, the materials were completed. Plans to deliver
|
||||
the materials to the construction site were temporarily waylaid by ruffians
|
||||
attempting to steal some of the finer looking items. By Moradin's hammer, they
|
||||
attempting to steal some of the finer looking items. By Moradin’s hammer, they
|
||||
were smote. As Jhoric stood outside the building watching the construction, the
|
||||
tea shop exploded. Nearly everyone, including Jopalin, died. There was one
|
||||
survivor from inside the shop: a half elf. A contingent from the Flaming Fist
|
||||
arrested Jhoric, the half-elf, and a nearby gnome that witnessed the explosion.
|
||||
This is where his story truly begins.
|
||||
This is where his story truly begins.</p>
|
||||
|
||||
# 100 Days
|
||||
I'm writing this post as part of
|
||||
[#100DaysToOffload](https://100daystooffload.com), an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.
|
||||
<h1 id="100-days">100 Days</h1>
|
||||
<p>I’m writing this post as part of
|
||||
<a href="https://100daystooffload.com">#100DaysToOffload</a>, an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-06-19
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
551
2020/07/10/crater-of-igrevor.html
Normal file
551
2020/07/10/crater-of-igrevor.html
Normal file
|
@ -0,0 +1,551 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Pathfinder One-Shot: The Crater of Igrevor</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/07/10/crater-of-igrevor.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="preamble-to-the-pathfinder">Preamble to the Pathfinder</h1>
|
||||
|
||||
<p>For many years now, I’ve been playing in several Pathfinder games. I very much
|
||||
enjoy the system, if only because I love options in roleplaying games. During
|
||||
the COVID-19 pandemic and lockdown, in addition to my weekly game, a second
|
||||
group started a weekly game. This one, unlike the campaign I’ve been playing in
|
||||
for the last 6 years (we’re level 9), sees the characters level up after
|
||||
each adventure, and is meant more as a quick and fun string of one-shots. After
|
||||
a few weeks of Lizzie starting and running the “campaign,” I volunteered to run.
|
||||
This post covers my one-shot <code class="language-plaintext highlighter-rouge">The crater of Igrevor</code>.</p>
|
||||
|
||||
<h2 id="background">Background</h2>
|
||||
|
||||
<p>Before hopping in, a little background. The party at this point had gone on
|
||||
several adventures and made a name for themselves in a relatively small town.
|
||||
They decided to settle down, and because the details of this town weren’t known
|
||||
at the time, all the players collaborated to establish the Town of Ulriksted. I
|
||||
took some liberties with the what we established, and decided that a powerful
|
||||
wizard has also moved to the town, seeing it as an opportunity for trade, but
|
||||
also a good place for a fancy tower. Wizards love their towers. Thus, Igrevor
|
||||
was born.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Igrevor Thel'lessell
|
||||
|
||||
Lawful Neutral Elf
|
||||
|
||||
Cleric of Abadar: 3 // Wizard (Conjurer: Teleportation): 3 // Mystic Theurge: 10
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>As a follower of Abadar, Igrevor is very interested in trade and travel, both on
|
||||
the material and other planes. His arcane studies also focus on extraplanar
|
||||
travel and research. And because I’ve always been interested in the <code class="language-plaintext highlighter-rouge">Mystic
|
||||
Theurge</code> class, I decided this was a perfect opportunity to make use of it. As a
|
||||
trader, I focused his build on several magical crafting feats: wonderous items,
|
||||
magical arms and armor, and constructs.</p>
|
||||
|
||||
<p>Igrevor’s tower sits to the north of town, along the river which flows through
|
||||
Ulriksted. He offers his arcane services to the town, as well as crafting and
|
||||
selling his magical wares to adventurers when they travel through. Unfortunately
|
||||
for him, a powerful <a href="https://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/hag/hag-night">Night
|
||||
Hag</a>
|
||||
has taken an interest in him, and has been haunting his dreams for a while now.
|
||||
Being a powerful wizard, he’s been able to defend himself and his tower
|
||||
accordingly, but the Hag has decided to get some assistance. You see, Igrevor
|
||||
has established a powerful teleportation and planar travel system within his
|
||||
tower, albeit a well protected one. The Hag, studying this herself, conspired to
|
||||
exploit this with the help of a several extraplanar allies: Several
|
||||
<a href="https://www.d20pfsrd.com/bestiary/monster-listings/outsiders/xill">Xill</a>
|
||||
raiding parties, to which she provided
|
||||
<a href="https://www.d20pfsrd.com/bestiary/monster-listings/outsiders/nightmare/">Nightmare</a>
|
||||
mounts; and two <a href="https://www.d20pfsrd.com/bestiary/monster-listings/dragons/dragon/-primal-umbral/umbral-dragon-juvenile">Umbral
|
||||
Dragon</a>
|
||||
brothers.</p>
|
||||
|
||||
<h1 id="the-crater-of-igrevor">The Crater of Igrevor</h1>
|
||||
|
||||
<blockquote>
|
||||
<p><em>While enjoying a pint and a quiet night at Tuckleberry’s tavern, The Leaf and
|
||||
Lyre, the party is rudely interrupted by the sound of a massive explosion,
|
||||
north of town. As they race outside, they see a swirling vortex of colors
|
||||
stretching high into the sky, roughly where Igrevor’s tower is. Screams shortly
|
||||
follow, and as the party pulls their attention closer, they see looming shapes
|
||||
approaching the town.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p><strong>Encounter: Xill Raiding Party</strong></p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>Four-armed, flame-red insect-like humanoid creatures, riding upon steeds of
|
||||
smoke and fire</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>The first encounter is relatively easy for the party, considering at this point
|
||||
they’re level 9. There are 4 Xill, each riding a Nightmare. Each has a special
|
||||
elemental key, tied to each of the four elemental planes: earth, air, water, and
|
||||
fire. The last Xill looted also has a note, written in Infernal: “These keys
|
||||
will keep the portals open, and the tower inaccessible. Once you have your new
|
||||
hosts, return to the Ethereal plane. DO NOT LOSE THEM!” Whoops.</p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>As you move further, the party can clearly see the vortex of colors that now
|
||||
envelop Igrevor’s tower. A chaotic flow of earth, wind, water and fire create an
|
||||
impenetrable globe around what remains of the upper half of the tower, which
|
||||
hangs unsupported in the sky. Beneath it, a crater is all that remains of the
|
||||
bottom of the tower. As the party draws closer, you can make out 4 shimmering
|
||||
portals, at each of the cardinal directions. From each, a distinct color and
|
||||
element can be seen: north, a verdant green and stony landscape identifies a
|
||||
portal to the plane of earth; south, a clear portal surrounded by gusts of
|
||||
strong winds indicate the portal to the plane of air; to the west, a fiery
|
||||
hellscape indicates the portal to the plane of fire; and to the east, a flood of
|
||||
water flowing from the portal to the plane of water. Where the 4 regions meet,
|
||||
the elements clash and swirl about, surging upward, creating the sphere around
|
||||
the tower. As the party takes in the scene, they suddenly receive a Sending from
|
||||
Igrevor: <strong>In dire need of assistance. Tower under attack. Must close portals.
|
||||
Please hurry! WILL REWARD! Use teleportation circle in foyer; top of tower</strong></em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>At this point, I also introduce a small mechanic related to the portals: Each
|
||||
elemental portal gives the PCs a boon:</p>
|
||||
|
||||
<ul>
|
||||
<li>Plane of Earth: DR 1/- for each elemental planar portal open</li>
|
||||
<li>Plane of Fire: Aura, 5ft: 1 fire damage for each elemental planar portal open</li>
|
||||
<li>Plane of Water: Fast Healing 1 for each elemental planar portal open</li>
|
||||
<li>Plane of Air: Bonus 1ft. Movement speed for each elemental planar portal open</li>
|
||||
</ul>
|
||||
|
||||
<p>Each of these boons is removed as soon an the associated portal is closed.</p>
|
||||
|
||||
<p><strong>Puzzle: The Elemental Portals</strong></p>
|
||||
|
||||
<p>To reach the tower, the party much figure out a way to close the portals.
|
||||
Initially, each portal claims a quarter of the ground around the portal. Closing
|
||||
a portal causes the adjacent portals to claim the ground, increasing their power
|
||||
and decreasing the power of the opposite portal. If coordinated, it should be
|
||||
possible for the party to close all portals simultaneously.</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Earth Portal</p>
|
||||
|
||||
<ul>
|
||||
<li>Trying to close the earth portal causes vines to sprout. If fire is still
|
||||
open, the fire aura burns away the vines before they can entangle.</li>
|
||||
<li>Closing the earth portal causes the fire and water portals to increase in
|
||||
power, and the air portal to decrease in power (modified DC)</li>
|
||||
<li>Entangle, DC 15: Thorny vines restrict movement and deal damage. Each round,
|
||||
any creature trying to move through the area must make a reflex save or become
|
||||
entangled, reducing movement speed to 10 feet and dealing 1d6 acid damage.
|
||||
<ul>
|
||||
<li>If the Fire or Water portal has been closed, the DC increases by 2, to a
|
||||
maximum of 19 if both portals are closed.</li>
|
||||
<li>If the Air portal has been closed, the DC decreases by 2</li>
|
||||
<li>If a creature enters the area with the fire aura, the entangle checks
|
||||
automatically succeed: The aura from the plane of wire withers the vines as
|
||||
they try to wrap around you.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p>Fire Portal</p>
|
||||
<ul>
|
||||
<li>Trying to close the fire portal causes intense heat waves. If water is still
|
||||
open, the aura cools the temperature</li>
|
||||
<li>Closing the fire portal causes earth and air to increase in power, and the
|
||||
water portal to decrease in power (modified DC)</li>
|
||||
<li>Heat Waves, DC 15: Intense heat radiating from the portal causes damage and
|
||||
fatigue. Each round, any creature trying to move through the area must make a
|
||||
fortitude save or become fatigued and take 1d6 fire damage.
|
||||
<ul>
|
||||
<li>If the Earth or Wind portal has been closed, the DC increases by 2, to a
|
||||
maximum of 19 if both portals are closed</li>
|
||||
<li>If the water portal has been closed, the DC decreases by 2</li>
|
||||
<li>If a creature enters the area with the water aura, the fatigue checks
|
||||
automatically succeed: The aura for the plane of water cools the area,
|
||||
keeping the heat at bay.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p>Water Portal</p>
|
||||
<ul>
|
||||
<li>Trying to close the water portal causes buffeting waves and sheets of rain to
|
||||
disorient and hamper the player. If the air portal is still open, the aura
|
||||
keeps visions clear.</li>
|
||||
<li>Closing the water portal causes the earth and air portals to increase in
|
||||
power, and the fire portal to decrease in power (modified DC)</li>
|
||||
<li>Stormy Weather, DC 15: Torrential rain and slick ground causes difficult
|
||||
terrain and disorientation. Each round, any creature trying to move through
|
||||
the area must make a reflex save or fall prone, and a will save or become
|
||||
disoriented, moving in a random direction (Roll 1d4: 1, move in intended
|
||||
direction; 2, move to the left; 3, move to the right; 4, move backwards)
|
||||
<ul>
|
||||
<li>If the Earth or Wind portal has been closed, the DC increases by 2, to a
|
||||
maximum of 19 if both portals are closed</li>
|
||||
<li>If the earth portal has been closed, the DC decreases by 2</li>
|
||||
<li>If a creature enters the area with the air aura, there is no risk of
|
||||
disorientation. If a creature enters the area with the earth aura, there is
|
||||
no risk of falling.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p>Air Portal</p>
|
||||
<ul>
|
||||
<li>Trying to close the air portal causes strong winds and electrical shocks. If
|
||||
the earth portal is still open, it helps to resist the winds.</li>
|
||||
<li>Closing the air portal causes the fire and water portals to increase in power,
|
||||
and the earth portal to decrease in power (modified DC)</li>
|
||||
<li>Tornado, DC 15: Strong winds buffet and shock. Each round, any creature trying
|
||||
to move through the area must make a fortitude save or be blown 10 ft away
|
||||
from the portal, and take 1d6 electricity damage.
|
||||
<ul>
|
||||
<li>If the water or fire portal has been closed, the DC increases by 2, to a
|
||||
maximum of 19 if both portals are closed</li>
|
||||
<li>If the earth portal has been closed, the DC decreases by 2</li>
|
||||
<li>If a creature enters the area with the earth aura, the push checks
|
||||
automatically succeed: The earth aura grounds you, giving you resistance to
|
||||
the forceful winds</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p><em>As the last portal closes, the last remnants of the elemental sphere around the
|
||||
tower dissipate. The tower floats silently above the group, with ruins frozen in
|
||||
the air hanging beneath it. The closest pieces, which could be used to climb
|
||||
into the tower proper, are 20 feet in the air.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>With the four elemental portals closed, the tower is now accessible. The party
|
||||
must somehow ascend 20 feet into the air to get to the lowest ruins, and then a
|
||||
Climb (DC 10) check to get to the rest of the tower, 10 feet further up. This,
|
||||
like a few other obstacles, was a way to force the party to use resources. The
|
||||
sorcerer of the group knows fly, and so this was a way to get him to use a
|
||||
spell. The way I tend to run many of my games is to try and force my players to
|
||||
think about their resources, and manage them accordingly. To be fair, I try to
|
||||
give alternatives. For example, the party could use rope to climb up. I think in
|
||||
this case, they used either <code class="language-plaintext highlighter-rouge">Mage Hand</code> or a familiar to loop rope around some
|
||||
rubble, then the fighter climbed up and attached a better rope, and they were
|
||||
able to ascend without expending many resources at all.</p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>Once inside, there is a corkscrew stairwell along the walls of the tower,
|
||||
ascending roughly another 20 feet. At the top, light and shadows play on the
|
||||
wall near where the stairs enter a new floor.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>If the party is perceptive or stealthy enough, they can notice several figures
|
||||
waiting on the next floor, as well as get the drop on them!</p>
|
||||
|
||||
<p><strong>Encounter: Xill and Night Hag</strong></p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>A tall, gaunt figure with long limbs stands with two more Xill. Her skin
|
||||
stretches tightly across her bones, and a grin stretches across her nightmarish
|
||||
visage. Claws and fangs betray her intent.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>Here, again, I tried to force a change of tactics. The room the party fights in
|
||||
is only 20 by 20. The usual <code class="language-plaintext highlighter-rouge">Fireball</code> approach would be dangerous. The party
|
||||
was clever and perceptive, though, and the sorcerer was able to approach the
|
||||
room invisibly, and place a <code class="language-plaintext highlighter-rouge">Fireball</code> in a way so as to kill the Xill. The Hag
|
||||
is immune to fire, conveniently, and so the party had to deal with her some
|
||||
other way. Also, she can cast <code class="language-plaintext highlighter-rouge">Invisibility</code> at will, which helper her get the
|
||||
drop on the party. The sorcerer <code class="language-plaintext highlighter-rouge">Fireball</code>’s the room, ducking down the
|
||||
stairwell to avoid the blast. While no one can see her, she goes invisible. The
|
||||
party doesn’t see any threats, enters the room, and she pounces. Hag’s are great
|
||||
opponents. They have a great kit for DMs to play with; great defenses, including
|
||||
damage reduction, a solid set of immunities, and spell resistance 24! The lore
|
||||
of hags, as extraplanar scavengers and traders, is also fascinating. I’d like to
|
||||
use one in a future campaign, especially an evil campaign, and have this be a
|
||||
companion NPC or something.</p>
|
||||
|
||||
<p>With this encounter completed, the party stands in the aforementioned foyer, and
|
||||
on the ground they see an arcane circle: the teleportation circle.</p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>The corpse of the night hag fades into shadow, as it disappears from the
|
||||
material plane. With the room now secured, you see arcane symbols inscribed in
|
||||
the center of the room. This must be the teleportation circle Igrevor mentioned
|
||||
in his sending. As you step into the circle, you find yourself transported to a
|
||||
large, cylindrical room. An inner wall breaks at four equidistant places,
|
||||
revealing an outer wall, and a shimmering pool of light in a small alcove.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p><em>Exploring the space, the inner room has the teleportation circle, and many
|
||||
arcane symbols drawn into the stone and the walls.</em> A Knowledge(Arcana) or
|
||||
Spellcraft, DC 15, reveals the symbols to be protections related to
|
||||
teleportation, plane shifting, and the like. <em>Checking the outer ring, you find
|
||||
the four aforementioned pools, as well as a wall of force blocking a hallway.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p><em>Oh a whim, you glance up, and see two spheres circling the room. One is pure
|
||||
white, and the other black. They maintain a perfect distance from each other.</em> A
|
||||
Knowledge(Planes), DC 15, identifies the spheres as being made of pure positive
|
||||
and negative energy, respectively. <em>You now notice, as the spheres pass by the
|
||||
alcoves, the pools briefly shift towards the color of the sphere, and the wall
|
||||
of force slightly…</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>Or, at least, that was the original intention. As so often happens, I wasn’t
|
||||
quite satisfied with this part of the original adventure, and modified this it
|
||||
slightly. Originally, the party was going to fight a “Planar Scion.” Initially,
|
||||
the party would find two humanoid energy beings, one made of positive energy and
|
||||
one made of negative energy. The beings would be indestructible, and the party
|
||||
would have to merge them to create a single being, which was now vulnerable.
|
||||
But, I couldn’t figure out a good way to convey this information, while making
|
||||
the combat engaging, in the time I had, so I scrapped it for a puzzle instead.</p>
|
||||
|
||||
<p><strong>Puzzle: Spheres and Pools</strong></p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>As you navigate the room, you find the hallway leading from this room, and an
|
||||
opaque barrier blocking the way forward.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p><em>Oh a whim, you glance up, and see four spheres circling the room. Two are pure
|
||||
white, and the others black. They maintain a perfect distance from each other.</em> A
|
||||
Knowledge(Planes), DC 15, identifies the spheres as being made of pure positive
|
||||
and negative energy, respectively. <em>You now notice, as the spheres pass by the
|
||||
alcoves, the pools briefly shift towards the color of the sphere, and the
|
||||
barrier slightly dissipates</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>The only way through this barrier is to stop the rotating spheres. As alluded to
|
||||
in the descriptive text, the pools and the spheres are related. As the spheres
|
||||
pass over the pools, they shift the pools from clear towards the color of the
|
||||
sphere, and I added that the spheres appear to slow down very slightly. The
|
||||
party had to use positive and negative energy sources to shift the pools to the
|
||||
appropriate attunement, which stopped the spheres, and opened the barrier.</p>
|
||||
|
||||
<p><strong>Final Encounter: Umbral Dragon</strong></p>
|
||||
|
||||
<blockquote>
|
||||
<p><em>As the spheres stop, above the pools, they descend into the pools, and
|
||||
dissolve the barrier blocking the way out of the room. Moving through the
|
||||
hallway, you come to a large meeting hall. An oak table, which could almost
|
||||
seat the entire town of Ulriksted, sits in the middle of the hall, with chairs
|
||||
and tables strewn about. Making your way into hall, you see Igrevor to your
|
||||
right, as he finishes casting a spell and striking down one of two juvenile
|
||||
dragons standing opposite him. He turns to you, and speaks, “The Lords of
|
||||
Ulriksted! And just in time! I am sorry, friends, I cannot assist you further;
|
||||
one of these beasts took most of my arsenal to defeat. I beg your assistance!”
|
||||
As he finishes, you see a sphere arise around him, and him kneel to catch his
|
||||
breath.</em></p>
|
||||
</blockquote>
|
||||
|
||||
<p>The boss battle! The juvenile Umbral Dragon! I toned down the beast a bit, but I
|
||||
definitely shouldn’t have. It was a good fight, and the barbarian did not hold
|
||||
back. As the party defeated them, Igrevor thanked them, and their reward was any
|
||||
single magical item that he can make. In addition, because I’m prone to giving
|
||||
my PCs overpowered items, I allowed each of them to have an item made from the
|
||||
scales of the dragon, which gives them the immunities of the dragon. This turned
|
||||
out to be a <em>very</em> powerful option: immune to cold, death effects, negative
|
||||
energy, paralysis, sleep.</p>
|
||||
|
||||
<h1 id="aftermath">Aftermath</h1>
|
||||
|
||||
<p>I had a lot of fun with this one. The party made their way with through with
|
||||
consistent progress, and the boss battle was challenging but not overwhelming. I
|
||||
think, if run again, I wouldn’t tone down the boss. I ended up running a
|
||||
follow-up adventure, which is currently untitled, but which became a two parter,
|
||||
and the driving motivation for my upcoming third adventure. I look forward to
|
||||
sharing those as well! Feel free to make use of this adventure in your own
|
||||
games!</p>
|
||||
|
||||
<h1 id="maptools">MapTools</h1>
|
||||
|
||||
<p>But wait, there’s more! This adventure was my first foray into MapTools, a free
|
||||
and open-source virtual table top system. It allows you to create detailed
|
||||
maps, add tokens, set sight lines, and much more. You can host a server locally
|
||||
that your players can connect to, and they can move things around themselves.
|
||||
Or, if you’re a bit lazier like me, you can share your screen on your voice call
|
||||
of choice, and just move the tokens for players instead. I had a lot of fun
|
||||
crafting Igrevor’s Tower in MapTools, and then sharing that with my players
|
||||
during the session. It really made the game more enjoyable, and more immersive
|
||||
than just a standard voice-and-video call.</p>
|
||||
|
||||
<p>The community for the MapTool suite has built a lot of tokens, tile sets, and
|
||||
additional assets to really explore and build <em>exactly</em> what you want. I
|
||||
certainly made good use of CSP’s Dungeon Geomorphs (available for free directly
|
||||
within MapTools, and made by <a href="https://www.crookedstaff.co.uk/">Kristian
|
||||
Richards</a>), <a href="https://immortalnights.com/tokensite/">Devin
|
||||
Night’s</a> tokens (some of which are
|
||||
available for free, but are well worth the price) and Torstan’s Markers and
|
||||
Objects (also available directly within MapTools). I’m not sure if the campaign
|
||||
will load without those enabled, but for anyone interested, you can find a link
|
||||
to the campaign maps for this adventure <a href="https://www.theinternetvagabond.com/src/campaigns/crater_of_igrevor.cmpgn">here (click to download)</a>.</p>
|
||||
|
||||
<h1 id="100-days">100 Days</h1>
|
||||
<p>I’m writing this post as part of
|
||||
<a href="https://100daystooffload.com">#100DaysToOffload</a>, an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.rptools.net/toolbox/maptool/">MapTools</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-07-10
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
255
2020/07/19/syncthing-part-1.html
Normal file
255
2020/07/19/syncthing-part-1.html
Normal file
|
@ -0,0 +1,255 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Brief Exploration of Syncthing</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/07/19/syncthing-part-1.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="a-brief-exploration-of-syncthing">A Brief Exploration of Syncthing</h1>
|
||||
|
||||
<p>Syncthing is an incredible tool. Many days past I stumbled upon it as an
|
||||
alternative to Dropbox. It’s different from Dropbox, or similar services,
|
||||
though, in a number of ways. For one, Syncthing is a peer-to-peer
|
||||
synchronization program, whereas Dropbox is a centralized file storage and
|
||||
synchronization service. When you setup and use Syncthing, the files only ever
|
||||
live on whichever peers you setup. This is different from Dropbox, or similar
|
||||
services, where files live on their servers. There’s more to it, and for all the
|
||||
details, the <a href="https://syncthing.net/">Syncthing</a> website provides plentiful
|
||||
information.</p>
|
||||
|
||||
<p>In this post, I want to discuss how to setup Syncthing, and some use-cases for
|
||||
it. In future posts, I want to explore setting up custom relay servers, and
|
||||
perhaps some more use-cases as well.</p>
|
||||
|
||||
<h2 id="setup">Setup</h2>
|
||||
|
||||
<p>Install the appropriate package for your operating system. Syncthing is
|
||||
available on just about every OS out there. Syncthing already has <a href="https://docs.syncthing.net/intro/getting-started.html">thorough
|
||||
installation
|
||||
documentation</a>, so I
|
||||
won’t re-write what’s already available. I will discuss how I setup my Syncthing
|
||||
instead.</p>
|
||||
|
||||
<p>On my desktop, running Arch Linux, I installed the necessary package:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo pacman -S syncthing
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>When I was running Gnome, I also installed <code class="language-plaintext highlighter-rouge">syncthing-gtk</code> to provide a tray
|
||||
icon. After my switch to KDE Plasma, the Syncthing application displays a tray
|
||||
icon by default, and so I removed the now unnecessary package. When I had a
|
||||
Windows partition, I also installed <code class="language-plaintext highlighter-rouge">SyncTrazor</code> for a tray icon.</p>
|
||||
|
||||
<p>The second device of choice is my Android phone, where I installed the Syncthing
|
||||
app (helpfully available on F-Droid too!).</p>
|
||||
|
||||
<p>With packages installed on both devices, I then followed the guide. All things
|
||||
considered, it was a very easy process.</p>
|
||||
|
||||
<h2 id="use-case-music">Use-Case: Music</h2>
|
||||
|
||||
<p>One of the most immediate uses I had for Syncthing was music. I finally decided
|
||||
to drop all streaming services, and start buying my music. As a result, I
|
||||
suddenly had a growing music library available on my desktop. This was the
|
||||
primary reason I decided to try Syncthing: to get music files from my desktop
|
||||
onto my phone. After setup, syncing was a breeze. The new problem became space:
|
||||
I have quite a bit of music now, and I don’t necessarily want all of it on my
|
||||
phone. Conveniently, Syncthing allows for creating a <code class="language-plaintext highlighter-rouge">.stignore</code> file, which
|
||||
tells Syncthing which files to exclude from synchronizing. The
|
||||
<a href="https://docs.syncthing.net/users/ignoring.html">documentation</a> provides a great
|
||||
breakdown of available options. One challenge is that the <code class="language-plaintext highlighter-rouge">.stignore</code> file is
|
||||
<strong>not</strong> synchronized. To get around this, I setup my ignore file to include a
|
||||
second file, which <em>does</em> get synchronized. That file lists every directory and
|
||||
subdirectory in my music folder, and then ends with <code class="language-plaintext highlighter-rouge">**/*</code>. For any directory or
|
||||
subdirectory (generally artist and album, respectively) that I want to sync, I
|
||||
place a <code class="language-plaintext highlighter-rouge">!</code> before it. The eventual plan is to automatically update the file
|
||||
whenever new music is added to the directory. When I get around to that, I’ll
|
||||
almost certainly post about it.</p>
|
||||
|
||||
<h2 id="use-case-notes--to-do">Use-Case: Notes / To-Do</h2>
|
||||
|
||||
<p>Not long after music, I started looking around for a good to-do / note-taking
|
||||
app for my phone. I wanted an application that was simple, without bells and
|
||||
whistles. I tried a few before settling on
|
||||
<a href="https://gsantner.net/project/markor.html">Markor</a>. This app is wonderful.
|
||||
Everything I want, with almost nothing I don’t. It’s open-source, actively
|
||||
developed, available on F-Droid; it works on local files, and <em>that’s it</em>. I
|
||||
started using it to track my gym workouts, make grocery lists, or track
|
||||
suggestions for media. As long as I was on wi-fi, those files were waiting for
|
||||
me on my desktop. Very convenient, simple, and effective.</p>
|
||||
|
||||
<h2 id="use-case-pictures">Use-Case: Pictures</h2>
|
||||
|
||||
<p>Another straight-forward use case: synchronizing pictures. As I continue to
|
||||
“de-Google” my life, I needed a replacement for Google Photos. I have a Flickr,
|
||||
but I’m not certain that I’ll hang onto it. For now, I just need a simple way to
|
||||
synchronize pictures between my phone and my desktop, and Syncthing provides
|
||||
that.</p>
|
||||
|
||||
<h1 id="100-days">100 Days</h1>
|
||||
<p>I’m writing this post as part of
|
||||
<a href="https://100daystooffload.com">#100DaysToOffload</a>, an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://syncthing.net/">Syncthing</a></li>
|
||||
<li><a href="https://github.com/canton7/SyncTrayzor">SyncTrayzor</a></li>
|
||||
<li><a href="https://gsantner.net/project/markor.html">Markor</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-07-19
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
425
2020/09/06/pathfinder-druid.html
Normal file
425
2020/09/06/pathfinder-druid.html
Normal file
|
@ -0,0 +1,425 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Pathfinder: Let's Make a Druid</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/09/06/pathfinder-druid.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="lets-make-a-druid">Let’s Make a Druid</h1>
|
||||
|
||||
<p>Pathfinder has been the tabletop game of choice for my longest-running group.
|
||||
One of my favorite activities is creating characters. I love theory crafting,
|
||||
pouring through source material, and setting limits. While I’ve made many,
|
||||
<em>many</em> characters, once class I haven’t touched is druid. The first character I
|
||||
ever made, back in a D&D Second Edition, was a druid. I don’t remember much from
|
||||
that character, except that I had a double-scimitar (think Darth Maul
|
||||
lightsabre, but scimitars). Since that, I haven’t done much with druids, which I
|
||||
think is a shame, because it’s a fascinating class that ticks many of the boxes
|
||||
I look for in a character. I love characters with options, that require a bit of
|
||||
mastery to play. Many characters I like the most are multi-classed, mixing
|
||||
spellcasting with melee combat. Some classes, though, provide all this
|
||||
out-of-the-box. From the core book, both cleric and druid satisfy my demands. I
|
||||
hold, still, that cleric is the most powerful class. I had this belief in D&D
|
||||
Third Edition, and I carry it forward into Pathfinder and D&D Fifth Edition.
|
||||
That’s a topic for another post, though.</p>
|
||||
|
||||
<h2 id="concept">Concept</h2>
|
||||
|
||||
<p>All of my characters come from a concept. Sometimes the concept is really
|
||||
straight forward: I want a “realistic” fighter. I want a “proper” Eldritch
|
||||
Knight. Sometimes, the concept is more story based, as is the case with this
|
||||
druid. I read a story about a moose in Alaska that ate some apples which had
|
||||
fermented, and wandered into a town drunk. I thought, “that would make a fun
|
||||
animal companion!”, and thus the idea for a druid. The full backstory for the
|
||||
character will be around here somewhere. For now, I’ll spend the rest of this
|
||||
post focusing on the build.</p>
|
||||
|
||||
<h2 id="build">Build</h2>
|
||||
|
||||
<p>Drunk moose. Drunk… spirit moose! OK, now we’re getting somewhere. As I
|
||||
fleshed out the story, and spoke with a friend about druid, I liked the idea of
|
||||
dipping one level in barbarian, then continuing with druid. That one level gets
|
||||
me quite a bit: d12 hit dice (and max at first level!); +1 BAB; +10 movement
|
||||
speed; and rage. The biggest downside is a delay in spellcasting, but I think
|
||||
it’s a fair trade-off. Considering the build is equally focused on spellcasting
|
||||
and melee combat, the rage will provide an additional resource where spells and
|
||||
standard attacks may not be sufficient. Obviously, druid will be our favored
|
||||
class.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Barbarian 1, Druid X
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="skills">Skills</h2>
|
||||
|
||||
<p>Druid’s aren’t reknown for being particularly skillful, but they get some great
|
||||
class skills. Of note, we get Handle Animal, Heal, Knowledge(Nature),
|
||||
Perception, and Survival. At 4+INT skill points, we can reliably grab most of
|
||||
these. Throw a point of two into Fly, Climb, and Swim, and between having a
|
||||
great strength, and wild shape, we can deal with whatever obstacles those skills
|
||||
require.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Handle Animal
|
||||
Heal
|
||||
Knowledge (Nature)
|
||||
Perception
|
||||
Survival
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="race">Race</h2>
|
||||
|
||||
<p>Pathfinder has no shortage of races to choose from. For most of my builds, I try
|
||||
to stick to the “basics” provided in the Core Rulebook, but I also allow myself
|
||||
the Advanced Race Guide races. For this build, though, mostly due to the
|
||||
backstory/concept, I went human. We’ll opt for a bonus HP each level in druid,
|
||||
for our favored class bonus.</p>
|
||||
|
||||
<h2 id="feats">Feats</h2>
|
||||
|
||||
<p>Human gets a bonus first level feat, then all characters get a first level feat.
|
||||
I tend to make characters for whatever level our campaign is at, and for now
|
||||
that’s 8th level. That gives me five feats total. At fifth level, I’m taking
|
||||
Natural Spell. Since I’m a melee bruiser, I’m interested in Power Attack, Vital
|
||||
Strike, Toughness, and Powerful Shape, but I can’t get the last one just yet.
|
||||
Druids are fantastic summoners, and it’s very tempting to pick up Augmented
|
||||
Summons. For this build, though, it’s a two feat investment for a strategy I
|
||||
won’t be using much. For first level, I went with Toughness and Power Attack. As
|
||||
a first level barbarian, those two feats give me a lot of staying power. As a
|
||||
druid, my BAB won’t progress as strongly, but in wild shape it can give me a lot
|
||||
of damage. Combined with vital strike, certain shapes will give me a single,
|
||||
“two-handed” attack for a significant amount of damage at a good attack bonus.</p>
|
||||
|
||||
<p>Thematically, I’ve opted for the feat Spirit’s Gift. It fits my drunken spirit
|
||||
moose concept perfectly.</p>
|
||||
|
||||
<p>That leaves level 7. The aforementioned vital strike could be a great option.
|
||||
There’s also furious focus: for a single, two-handed power attack, remove the
|
||||
power attack penalty. Since we’ll be taking advantage of our animal companion,
|
||||
there’s also the option for teamwork feats. Animal companions get feats, too,
|
||||
and there are a few in particular that would work very well: Shake It Off would
|
||||
give us both +1 on all saves; Improved Spell Sharing would let me share buffs
|
||||
better; and then there are the charges. These interested me. I need to step back
|
||||
briefly to consider the animal companion, so we’ll leave our feats in an
|
||||
undecided state for now.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Bonus: Toughness
|
||||
Lvl 1: Power Attack
|
||||
Lvl 3: Spirit's Gift
|
||||
Lvl 5: Natural Spell
|
||||
Lvl 7: ???
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="animal-companion">Animal Companion</h2>
|
||||
|
||||
<p>By now it should be clear this is not really a min-max guide. There are plenty
|
||||
of guides that exist already for that sort of build; I’ll link a few I’ve
|
||||
referenced below. In those guides, animal companion choses are pretty clear:
|
||||
take a wolf/dire wolf if you want to be a trip artist; take a big cat for
|
||||
superior damage; take one of any number of dinosaurs for superior options. No
|
||||
where is a moose mentioned, because they’re not “optimal.” That’s fine. I don’t
|
||||
want optimal, I want drunken spirit moose.</p>
|
||||
|
||||
<p>Moosen start off pretty bland. They don’t get any special attacks, they’re
|
||||
medium size, an average AC, an average attack, and relatively low damage. At
|
||||
level 7, they get significantly better: large size; better AC; better damage,
|
||||
and powerful charge. For this build, I’ll focus on charging. Both I and the
|
||||
moose will charge hard into whatever enemy we want to focus first. With some of
|
||||
the team work feats alluded to above, we can emphasize significant bonuses and
|
||||
improvements to charging.</p>
|
||||
|
||||
<p>If I wanted to change this to a more optimal build, I’d probably go for an axe
|
||||
beak. It could be the in-universe thematic equivalent of a moose. Qwark.</p>
|
||||
|
||||
<h2 id="feats-completed-this-time">Feats, Completed This Time</h2>
|
||||
|
||||
<p>In addition to my feats, I get feats for my animal companion. At character level
|
||||
8, I’m a 7th level druid, which means my animal companion gets 3 feats, with a
|
||||
4th coming next level. The charge feats I’m considering would be 3 feats
|
||||
minimum: 2 teamwork feats, and then Coordinated Charge. The requirements for
|
||||
Coordinated Charge are 2 teamwork feats, and a BAB +10. My animal companion, of
|
||||
any flavor, won’t have that until level 17! That’s a bit of a downer, but there
|
||||
are some other interesting ones that lead up to it nicely. Distracting Charge
|
||||
would give either my moose or me a +2 to hit against the target of a charge.
|
||||
Intercept Charge could provide significant defensive benefits, though neither my
|
||||
moose nor I are particularly defensive oriented. Shake It Off would give Moose
|
||||
and Me +1 on all saves while we’re adjacent. And Improved Spell Sharing helps
|
||||
with buffing. The one thing about ISS though is the requirements are a bit…
|
||||
odd. It <em>seems</em> to be intended for use by a class that can share their teamwork
|
||||
feats, but I think a discussion with a DM can resolve the issue.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Druid:
|
||||
- Bonus: Toughness
|
||||
- Lvl 1: Power Attack
|
||||
- Lvl 3: Spirit's Gift
|
||||
- Lvl 5: Natural Spell
|
||||
- Lvl 7: Improved Spell Sharing
|
||||
|
||||
Moose:
|
||||
- Lvl 1: Toughness
|
||||
- Lvl 2: Weapon Focus (Gore)
|
||||
- Lvl 5: Improved Spell Sharing
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Looking forward slightly, next level we each get another feat.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Druid:
|
||||
- Lvl 9: Powerful Shape
|
||||
|
||||
Moose:
|
||||
- Lvl 8: Improved Natural Attack (Gore)
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="gear">Gear</h2>
|
||||
|
||||
<p>Since we’re wild-shaping, we don’t need to worry <em>too</em> much about armor and
|
||||
weapon. We can get the benefits of a shield, so we’ll want a decent one of
|
||||
those. Ring of Protection (+1) is a standard, and I’ll also opt for a Cloak of
|
||||
Resistance (+2). We’re a bit MAD (multi-attribute dependent), wanting high
|
||||
strength and wisdom primarily, with good dexterity and constitution still. I’ll
|
||||
take a Headband of Inspired Wisdom (+2), and a Belt of Physical Prowess
|
||||
(Strength and Constitution +2). In exchange for a weapon, I’ll pick up an Amulet
|
||||
of Mighty Fists (+1). Finally, because wild shape is so important, we’ll pick up
|
||||
Druid Vestments, which give us an extra wild shape use per day.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Headband of Inspired Wisdom, +2
|
||||
Amulet of Mighty Fists, +1
|
||||
Cloak of Resistance, +2
|
||||
Druid Vestments
|
||||
Belt of Physical Prowess (STR/CON), +2
|
||||
Ring of Protection, +1
|
||||
Heavy Wooden Shield, +1
|
||||
Scimitar
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>I have a mundane item pack I generally pick up as well, which includes things
|
||||
like a mirror, fishing hooks, and the like. Normally it’s all in a Handy
|
||||
Haversack, but since I’m shapshifting so often, for the druid that’ll shift to a
|
||||
Polymorphic Pouch.</p>
|
||||
|
||||
<p>Also, a Ring of Eloquence is a solid buy, to allow for discussion which
|
||||
shapeshifted.</p>
|
||||
|
||||
<h2 id="spells">Spells</h2>
|
||||
|
||||
<p>Druids have a <em>lot</em> of spell options. We’re a melee fighter, so many of our
|
||||
spells will focus on buffing, debuffing, and control. We can also include some
|
||||
out-of-combat utility. There are too many options to list, and again, guides
|
||||
already exist that go through every spell and analyze them. Here are the spells
|
||||
that I’ll consider regularly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Level 1:
|
||||
- Entangle [Control]
|
||||
- Faerie Fire [Control][Debuff]
|
||||
- Frostbite [Buff][Damage][Debuff]
|
||||
- Goodberry [Utility]
|
||||
- Longstrider [Buff]
|
||||
- Magic Fang [Buff]
|
||||
- Mudball [Damage][Debuff]
|
||||
- Thorn Javelin [Damage][Debuff]
|
||||
- Thunderstomp [Control][Debuff]
|
||||
|
||||
Level 2:
|
||||
- Barkskin [Buff]
|
||||
- Lockjaw [Buff][Control]
|
||||
- Natural Rhythm [Buff][Damage]
|
||||
- Resist Energy [Buff]
|
||||
- Sickening Entanglement [Control][Debuff]
|
||||
- Stone Call [Damage][Debuff]
|
||||
- Vine Strike [Control][Damage][Debuff]
|
||||
- Whip of Spiders [Damage][Debuff]
|
||||
- Wilderness Soldiers [Control][Damage]
|
||||
|
||||
Level 3:
|
||||
- Call Lightning [Damage]
|
||||
- Earth Tremor [Damage][Control][Debuff]
|
||||
- Fey Form I [Utility]
|
||||
- Fungal Infestation [Debuff]
|
||||
- Greater Magic Fang [Buff][Damage]
|
||||
- Greater Thunderstomp [Control][Debuff]
|
||||
- Spike Growth [Control][Damage][Debuff]
|
||||
- Thorny Entanglement [Control][Damage]
|
||||
- Vermin Shape I [Utility]
|
||||
|
||||
Level 4:
|
||||
- Aspect of the Stag [Buff][Damage]
|
||||
- Cape of Wasps [Buff][Damage][Debuff]
|
||||
- Echolocation [Buff]
|
||||
- Freedom of Movement [Buff]
|
||||
- Grove of Respite [Utility]
|
||||
- Slowing Mud [Control][Debuff]
|
||||
- Spike Stones [Control][Damage][Debuff]
|
||||
- Strong Jaw [Buff][Damage]
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="gameplay">Gameplay</h2>
|
||||
|
||||
<p>I’ve never played this build! I’m sure it could use some modifications. The
|
||||
emphasis on choosing a moose over other animal companions could be a serious
|
||||
hinderance. I think the general play would go like this: buff self, sharing the
|
||||
buffs with my animal companion; enter melee combat, preferably by charging at a
|
||||
target with my animal companion; throw around control and debuff spells as
|
||||
necessary.</p>
|
||||
|
||||
<p>This is very much a first draft, but I think it could be a fun one!</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.d20pfsrd.com/">Pathfinder SRD</a></li>
|
||||
<li><a href="https://docs.google.com/document/d/1PXamF43boZgYtCUlyJAMojfrPaAdYyjPOaGOo1vfqdM/edit#heading=h.nxj7sifd7tvs">Prometheus Guide to the Druid</a></li>
|
||||
<li><a href="https://docs.google.com/Doc?docid=0AcNyxDTKvAmqZGRtZzhzdjZfNDZnNHpzcmdodA&hl=en">Treantmonk’s Guide to Druids</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-09-05
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
465
2020/09/27/pathfinder-eldritch-knight.html
Normal file
465
2020/09/27/pathfinder-eldritch-knight.html
Normal file
|
@ -0,0 +1,465 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Pathfinder: Building My Eldritch Knight</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/09/27/pathfinder-eldritch-knight.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="building-my-eldritch-knight">Building My Eldritch Knight</h1>
|
||||
|
||||
<p>Pathfinder has been the tabletop game of choice for my longest-running group.
|
||||
One of my favorite activities is creating characters. I love theory crafting,
|
||||
pouring through source material, and setting limits. My favorite archetype of
|
||||
characters are those that take the combat focus of a warrior and supplement it
|
||||
with magic. The druid, which I <a href="/2020/09/06/pathfinder-druid.html">already touched
|
||||
on</a>, is a class that
|
||||
has this built in. This blending of magic and metal is often called a
|
||||
<a href="https://en.wiktionary.org/wiki/gish">Gish</a>.</p>
|
||||
|
||||
<h2 id="concept">Concept</h2>
|
||||
|
||||
<p>All of my characters come from a concept. This concept is heavily mechanics
|
||||
focused, and heavily opinionated: I want a “proper” eldricth knight. To me, a
|
||||
proper eldritch knight doesn’t use any gimmicks or tricks to get into the
|
||||
prestige class sooner, doesn’t rely too heavily on especially unique or strange
|
||||
equipment, and sticks to a limited set of rule books.</p>
|
||||
|
||||
<h2 id="build">Build</h2>
|
||||
|
||||
<p>For this build, I’ll be limiting myself the these rule books:</p>
|
||||
|
||||
<ul>
|
||||
<li>Core Rulebook</li>
|
||||
<li>the Ultimate books (Combat, Magic, Intrigue, Wilderness, and Equipment)</li>
|
||||
<li>the Advanced books (Player’s Guide, Race, and Class)</li>
|
||||
</ul>
|
||||
|
||||
<p>Eldritch Knight needs a martial class, and an arcane class. While there are
|
||||
plenty of options, I wanted to start with the most basic options:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Fighter 1 / Wizard (Enchantment) 5 / Eldritch Knight X
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Wizards have the option of taking a school, and it makes a lot of sense for
|
||||
a melee combatant to focus on buffing itself. Thus, I went for a Transmutation
|
||||
school, and specifically for the Enchantment school. For opposed schools, I
|
||||
opted for Evocation and Necromancy. I lose out on some nice spells, certainly,
|
||||
but considering our focus, we wouldn’t be using many blasting spells. Not to
|
||||
mention, our spell penetration will be relatively weak by comparison to more
|
||||
spell-focused builds. Obviously, open to alternatives, but I would advise
|
||||
against choosing Illusion, since it has some of the better non-transmutation
|
||||
buffs in the game.</p>
|
||||
|
||||
<p>Wizards also have to choose an arcane bond, which is either a familiar or an
|
||||
item. Familiars are incredibly useful, but for this build I really liked the
|
||||
idea of having my arcane bond be my weapon. This can be <strong>very dangerous!</strong> If
|
||||
your bonded item is taken from you, or destroyed, you will have a <em>very
|
||||
difficult time</em> casting spells.</p>
|
||||
|
||||
<h2 id="traits">Traits</h2>
|
||||
|
||||
<p>In our Pathfinder group, we don’t <em>really</em> use traits, but I use traits.
|
||||
Specifically, I always use 1 trait when it is applicable, because I believe
|
||||
without this trait, any Gish build that relies on multiple classes is severely
|
||||
penalized: Magical Knack. This trait will allow me to up my caster level for
|
||||
Wizard by up to +2, up to my maximum hit dice. This doesn’t give me more spells
|
||||
per day, but it does affect spell details such as duration, or saving throw DC,
|
||||
that rely on caster level. Conveniently, for this build, we have exactly two
|
||||
levels that do not give a bonus to wizard caster level: the 1 level of fighter
|
||||
we take, and the first level of eldritch knight.</p>
|
||||
|
||||
<p>If two traits are allowed, solid choices are <code class="language-plaintext highlighter-rouge">Reactionary</code> for a bonus to
|
||||
initiative; <code class="language-plaintext highlighter-rouge">Deft Dodger</code> for an improved reflex save; <code class="language-plaintext highlighter-rouge">Eyes and Ears of the
|
||||
City</code> for a bonus on perception and to add it as a class skill; or <code class="language-plaintext highlighter-rouge">Armor
|
||||
Expert</code> to reduce all armor check penalties by 1.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Magical Knack (Wizard)
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="race">Race</h2>
|
||||
|
||||
<p>Human. Elf as a very close second. The bonus for spell penetration, the bonus to
|
||||
perception and spellcraft skills, and the ability score modifiers are all solid.
|
||||
But, this build won’t need to worry about puncturing spell resistance, and
|
||||
because we’re a melee combatant, we need all the constitution we can get. Human
|
||||
provides a bonus +1 skill point per level, a bonus feat, and a floating +2
|
||||
ability score increase, which we can use for our strength or intelligence.</p>
|
||||
|
||||
<h2 id="skills">Skills</h2>
|
||||
|
||||
<p>None of the three classes in this build provide a significant number of skills;
|
||||
all three give 2 + INT per level. However, being a wizard, we <em>do</em> have a nice
|
||||
intelligence score, and as a human we get an additional +1. At a minimum, we’ll
|
||||
probably get 5 skill points per level. There are no skill requirements to get
|
||||
into eldritch knight, so we can focus on the “important” skills:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Knowledge (Arcana)
|
||||
Knowledge (Dungeoneering)
|
||||
Knowledge (Nature)
|
||||
Knowledge (Planes)
|
||||
Knowledge (Religion)
|
||||
Perception
|
||||
Sense Motive
|
||||
Spellcraft
|
||||
Survival
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>I also like to drop a single point in <code class="language-plaintext highlighter-rouge">Climb</code>, <code class="language-plaintext highlighter-rouge">Swim</code>, <code class="language-plaintext highlighter-rouge">Ride</code>, and <code class="language-plaintext highlighter-rouge">Fly</code>, if I
|
||||
can afford to. Getting the trained bonus, combined with our generally good
|
||||
strength and dexterity, means we can accomplish the basics. As a wizard, we can
|
||||
further supplement these with spells. Unfortunately, we do not get perception as
|
||||
a class skill, and so using a trait for that would make sense.</p>
|
||||
|
||||
<h2 id="feats">Feats</h2>
|
||||
|
||||
<p>It is very easy to get lost in feats. Like most aspects of Pathfinder, there are
|
||||
an excess of options. To narrow down my focus, I tried to consider what the
|
||||
character’s options were: warrior focused on melee combat; wizard focused on
|
||||
buffing and crowd control. Being in melee means I’ll be wearing armor, and that
|
||||
brings the <code class="language-plaintext highlighter-rouge">Arcane Armor Training</code> feats into relevance. There’s also the
|
||||
<code class="language-plaintext highlighter-rouge">Arcane Strike</code> feat, which is perfect for arcane gish builds. Initiative is the
|
||||
king of combat, and as a wizard I’ll want to try going first as often as
|
||||
possible. I also don’t have the most hit points, due to those 5 levels of
|
||||
wizard. <code class="language-plaintext highlighter-rouge">Improved Initiative</code> and <code class="language-plaintext highlighter-rouge">Toughness</code> make sense. Considering the
|
||||
possibility of being in combat when buffing, <code class="language-plaintext highlighter-rouge">Combat Casting</code> makes sense. I’ll
|
||||
probably focus on a specific weapon, so <code class="language-plaintext highlighter-rouge">Weapon Focus</code> makes sense, and as a
|
||||
fighter/eldritch knight, those levels will stack for feat requirements. That
|
||||
means, <code class="language-plaintext highlighter-rouge">Weapon Specialization</code> is a possibility in the future.</p>
|
||||
|
||||
<p>While I’m sure there are some crazy feats in other books, all these feats come
|
||||
from the Core Rulebook. That excites me for some reason. Thus far, the only
|
||||
non-core rulebook thing we’ve done is traits, and for this build we can live
|
||||
without those if absolutely necessary. Again, this limit isn’t necessary, but it
|
||||
was something I wanted to adhere to for this build.</p>
|
||||
|
||||
<p>The number of feats laid out above is very quickly growing. Conveniently, I’m
|
||||
entering the game with 3: one for level 1, a bonus for human, and a bonus for
|
||||
fighter. That’s <code class="language-plaintext highlighter-rouge">Improved Initiative</code>, <code class="language-plaintext highlighter-rouge">Toughness</code>, and <code class="language-plaintext highlighter-rouge">Weapon Focus</code>. Any
|
||||
two-handed weapon will do, though I’m partial to the good ol’ greatsword. Using
|
||||
a sword-and-board will severely restrict my casting abilities, because both
|
||||
hands will be full.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Improved Initiative (Level 1)
|
||||
Toughness (Human bonus feat level 1)
|
||||
Weapon Focus (Greatsword) (Fighter level 1 bonus combat feat)
|
||||
Scribe Scroll (Wizard level 1 bonus feat)
|
||||
Combat Casting (Level 3)
|
||||
Arcane Strike (Level 5)
|
||||
Craft Wonderous Items (Wizard level 5 bonus feat; debatable)
|
||||
Arcane Armor Training (Eldritch Knight bonus combat feat)
|
||||
Power Attack (Level 7)
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The wizard gets a bonus feat at level 5, which is limited to an arcane crafting
|
||||
feat, a metamagic feat, Spell Mastery, or an arcane discovery. I opted for
|
||||
<code class="language-plaintext highlighter-rouge">Craft Wonderous Items</code> because I like the options it opens up. There are some
|
||||
good metamagic options I considered though: <code class="language-plaintext highlighter-rouge">Extend Spell</code> makes sense for
|
||||
buffing; <code class="language-plaintext highlighter-rouge">Still Spell</code> makes sense since we’re in armor; <code class="language-plaintext highlighter-rouge">Toppling Spell</code> can
|
||||
give Magic Missile and other force damage spells some crowd-control. Since
|
||||
evocation is one of my opposed schools, though, it wouldn’t work for me.</p>
|
||||
|
||||
<p>Wizards at first level also get <code class="language-plaintext highlighter-rouge">Scribe Scroll</code> as a bonus feat. Scrolls are
|
||||
great for situational spells.</p>
|
||||
|
||||
<h2 id="gear">Gear</h2>
|
||||
|
||||
<p>There’s only one piece of gear that is unusual here, and it’s the armor. Kikko
|
||||
armor is from Ultimate Equipment, and specifically is a type of eastern setting
|
||||
armor. It provides a +5 armor bonus, allows for a dexterity bonus of +4, incurs
|
||||
a -3 armor check penalty, and has 20% arcane spell failure. However, it is
|
||||
primarily made of metal, and thus can be made from mithral. A mithral suit of
|
||||
kikko armor provides +5 armor bonus, allows for a dexterity bonus of 6, incurs
|
||||
no armor check penalty, and has a 10% arcane spell failure. Those numbers are
|
||||
fantastic. No armor check penalty is great for the odd <code class="language-plaintext highlighter-rouge">Climb</code> or <code class="language-plaintext highlighter-rouge">Swim</code> check,
|
||||
and for when I can <code class="language-plaintext highlighter-rouge">Fly</code>. The 10% arcane spell failure chance is lowered to 0%
|
||||
by <code class="language-plaintext highlighter-rouge">Arcane Armor Training</code>, allowing me to safely cast in armor when I so
|
||||
choose. If limited to the core rule book, the next best bet will be either a
|
||||
breastplate, or hide armor.</p>
|
||||
|
||||
<p>As for the weapon, I went with a greatsword. You could go with a falchion, and
|
||||
“crit-fish,” but I’d rather have the raw damage. Numbered enchantment bonuses
|
||||
are good, but there is one specific enchantment I would highly suggest: called.
|
||||
A called weapon can be teleported to the wielder’s hand as a swift action.
|
||||
Considering our greatsword is our arcane focus, we’ll want that in our
|
||||
possession at all times, and this greatly increases the chances of that. Keen
|
||||
wouldn’t be too bad; increasing the critical threat range to 17-20. Spell
|
||||
storing obviously makes a lot of sense, too.</p>
|
||||
|
||||
<p>I’m a spell caster, so I picked up a few <code class="language-plaintext highlighter-rouge">Pearls of Power</code>, a few wands (<code class="language-plaintext highlighter-rouge">Cure
|
||||
Light Wounds</code>, <code class="language-plaintext highlighter-rouge">Protection from Evil</code>, and <code class="language-plaintext highlighter-rouge">Expeditious Retreat</code>), and a bunch
|
||||
of potions of <code class="language-plaintext highlighter-rouge">Lead Blades</code>. The reason for the potions and not scrolls or a
|
||||
wand is to avoid <code class="language-plaintext highlighter-rouge">Use Magic Device</code> checks.</p>
|
||||
|
||||
<p>I have a collection of mundane items, including things like a bedroll, rope,
|
||||
sewing needles, chalk, and a handful of alchemical items, that I like to carry
|
||||
in a <code class="language-plaintext highlighter-rouge">Handy Haversack</code>.</p>
|
||||
|
||||
<p>Beyond all this, I went with the remainder of the “Big 6”: a <code class="language-plaintext highlighter-rouge">Cloak of
|
||||
Resistance</code>, a <code class="language-plaintext highlighter-rouge">Ring of Protection</code>, a <code class="language-plaintext highlighter-rouge">Headband of Intellect</code>, and a <code class="language-plaintext highlighter-rouge">Belt of
|
||||
Strength</code>.</p>
|
||||
|
||||
<p>With any left over funds, investing in additional spells known, scrolls, copies
|
||||
of your spellbook, and cheaper wonderous items is always nice.</p>
|
||||
|
||||
<h2 id="spells">Spells</h2>
|
||||
|
||||
<p>I’m a wizard (Harry), with the most versatile spell list in the game, and a book
|
||||
(or books) that can get them all! Aside from the opposed school (but even then,
|
||||
there are some worth getting, such as <code class="language-plaintext highlighter-rouge">False Life</code>), I went for every spell that
|
||||
I even remotely thought I would use. On my sheet, that’s 62 spells across levels
|
||||
1 to 3. I won’t mark them all here, but there are some which I wouldn’t want to
|
||||
be without.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Level 1
|
||||
- Comprehend Languages (also a great scroll)
|
||||
- Enlarge Person
|
||||
- Magic Missile (despite being opposed, a solid fall-back)
|
||||
- Mount
|
||||
- Protection from Alignment (generally, evil and chaos make the most sense)
|
||||
- Shield
|
||||
- Vanish
|
||||
|
||||
Level 2
|
||||
- False Life
|
||||
- Glitterdust
|
||||
- Invisibility
|
||||
- Mirror Image
|
||||
- Resist Energy
|
||||
- Rope Trick
|
||||
|
||||
Level 3
|
||||
- Ablative Barrier
|
||||
- Fly
|
||||
- Haste
|
||||
- Phantom Steed
|
||||
- Sleet Storm
|
||||
- Versatile Weapon
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>At character level 9, we get access to 4th level wizard spells. Some spells on
|
||||
my wishlist include great crowd-control like <code class="language-plaintext highlighter-rouge">Acid Pit</code> and <code class="language-plaintext highlighter-rouge">Black Tentacles</code>;
|
||||
self-buffs like <code class="language-plaintext highlighter-rouge">Stoneskin</code> and <code class="language-plaintext highlighter-rouge">Greater Invisibility</code>; and utility like
|
||||
<code class="language-plaintext highlighter-rouge">Dimension Door</code>, <code class="language-plaintext highlighter-rouge">Stone Shape</code>, and even <code class="language-plaintext highlighter-rouge">Wall of Fire</code> or <code class="language-plaintext highlighter-rouge">Wall of Ice</code>,
|
||||
despite them being from an opposed school.</p>
|
||||
|
||||
<p>Also, as a wizard I got <code class="language-plaintext highlighter-rouge">Scribe Scroll</code> at first level. Many spells in my
|
||||
spellbook are almost only there so I can make scrolls of them. Examples include
|
||||
<code class="language-plaintext highlighter-rouge">Identify</code>, the various ability enhancements (<code class="language-plaintext highlighter-rouge">Cats Grace</code>, etc..), and so on.</p>
|
||||
|
||||
<h2 id="gameplay">Gameplay</h2>
|
||||
|
||||
<p>I’ve actually played this build 3 times. The first time, as the human shown
|
||||
here. The second time, as this build but with the zombie lord template added.
|
||||
And a third time, but with the skeleton champion template added. Needless to
|
||||
say, those templates make this build <em>incredibly powerful</em>. However, I made some
|
||||
poor play decisions, thinking I was a bit more resistant that I actually was,
|
||||
and so all of these characters died rather unfortunate and avoidable deaths.</p>
|
||||
|
||||
<p>What I’ve learned through all three characters is to be patient! This build is
|
||||
very capable, with many options. It can wade into combat and deal some
|
||||
significant damage, even before buffs. Out of combat, it has the flexibility
|
||||
that a well-filled spell book can provide, and a good coverage of knowledge
|
||||
skills.</p>
|
||||
|
||||
<p>When engaging in combat, I always try to make sure I have the following
|
||||
self-buffs up, or ready to be up:</p>
|
||||
|
||||
<ul>
|
||||
<li><code class="language-plaintext highlighter-rouge">Protection from Alignment</code></li>
|
||||
<li><code class="language-plaintext highlighter-rouge">Shield</code></li>
|
||||
<li><code class="language-plaintext highlighter-rouge">Resist Energy</code></li>
|
||||
<li><code class="language-plaintext highlighter-rouge">Mirror Image</code></li>
|
||||
<li><code class="language-plaintext highlighter-rouge">Ablative Barrier</code></li>
|
||||
</ul>
|
||||
|
||||
<p>For damage, there’s a ranger spell called <code class="language-plaintext highlighter-rouge">Lead Blades</code> which is so good it
|
||||
should almost be considered essential. <code class="language-plaintext highlighter-rouge">Versatile Weapon</code> can help with damage
|
||||
resistance which is overcome with special materials.</p>
|
||||
|
||||
<p>As for party buffs, few options beat <code class="language-plaintext highlighter-rouge">Haste</code>.</p>
|
||||
|
||||
<p>For crowd-control, I’ll tend towards a <code class="language-plaintext highlighter-rouge">Glitterdust</code>, <code class="language-plaintext highlighter-rouge">Pyrotechnics</code>, or <code class="language-plaintext highlighter-rouge">Sleet
|
||||
Storm</code>.</p>
|
||||
|
||||
<p>In combat, get buffed to a point you feel capable. This may take 2 or 3 rounds.
|
||||
That’s OK! You’re the second line. Use your swift action for <code class="language-plaintext highlighter-rouge">Arcane Armor
|
||||
Training</code>, buff yourself, move in. Do that again, maybe moving in for a flank.
|
||||
Third round, swift action for <code class="language-plaintext highlighter-rouge">Arcane Strike</code>, and unload with a <code class="language-plaintext highlighter-rouge">Power Attack</code>
|
||||
greatsword swing! If you’ve got <code class="language-plaintext highlighter-rouge">Lead Blades</code> up, that’s 3d6 + 6 (<code class="language-plaintext highlighter-rouge">Power
|
||||
Attack</code>) + 2 (<code class="language-plaintext highlighter-rouge">Arcane Strike</code>) + 1.5x strength bonus. Not bad! Unfortunately,
|
||||
Eldritch Knights lag behind for base-attack bonus, so at level 8 (which is the
|
||||
level for all my builds) it’s only 1 attack a round. At level 9, you get two
|
||||
attacks a round. You can also fall back on a composite longbow, which you can
|
||||
also use <code class="language-plaintext highlighter-rouge">Arcane Strike</code> with for 1d8 + strength bonus + 2 (<code class="language-plaintext highlighter-rouge">Arcane Strike</code>),
|
||||
which isn’t as impressive as that big sword, but can still contribute. And, if
|
||||
weapons won’t due, you’re a wizard! Keep your prepared spells flexible. <code class="language-plaintext highlighter-rouge">Scribe
|
||||
Scroll</code> allows you to have certain spells available at all times. <code class="language-plaintext highlighter-rouge">Craft
|
||||
Wonderous Items</code> can allow you to create plenty of gizmos and gadgets that give
|
||||
you once-per-day options. Crafting is powerful; use it!</p>
|
||||
|
||||
<p>I’ve always had fun with this build. I have, no joke, lost sleep just figuring
|
||||
out cool spells to add to the spell book, worthwhile scrolls, and just imagining
|
||||
scenarios. Despite the apparent short-comings, the Eldritch Knight can
|
||||
definitely hold it’s own, though it does require a ramp-up time.</p>
|
||||
|
||||
<h1 id="sources">Sources</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.d20pfsrd.com/">Pathfinder SRD</a></li>
|
||||
<li><a href="https://docs.google.com/document/d/10x042PGSyqX4JqHbYFf7vDsK1NCnhBT2ck8i1eG6kpc/edit">The Muscle Wizard Guide</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-09-27
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
237
2020/10/23/gnome-cleric-wizard.html
Normal file
237
2020/10/23/gnome-cleric-wizard.html
Normal file
|
@ -0,0 +1,237 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Character Write-up: Dabbledop Humblebumple</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2020/10/23/gnome-cleric-wizard.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>Gnomes are interesting. I can’t help but play them as small frantic stressballs.
|
||||
Like hobbits from <em>Lord of the Rings</em>, dialed up to 11, minus the extra
|
||||
breakfasts, and plus ceaseless banter. Gnomes are fun. This write up was for a
|
||||
character for the same campaign as <a href="/2018/01/27/halvar.html">Halvar</a>, when he had
|
||||
to step away for a bit.</p>
|
||||
|
||||
<h2 id="backstory">Backstory</h2>
|
||||
|
||||
<p>Nothing is more tiresome than midweek afternoon service. All the candles, and
|
||||
the verses, and the never-ending procession. Odin’s great and all, but I don’t
|
||||
think he cares about this. Of course, I mention that one time to the head priest
|
||||
and it’s latrine duty for the week! I guess now it doesn’t matter. All these
|
||||
acolyte duties were from many years ago. It was pure fate, the day my current
|
||||
teacher Maell’ezharon wandered into our village. He needed certain gemstones,
|
||||
which my family was renowned for, and which I was responsible for that day. I
|
||||
just happened to bring exactly the number he needed with me to the church that
|
||||
day. That’s a habit I have. The priests say I’m “blessed by foresight.”</p>
|
||||
|
||||
<p>Anyway, Maell’ezharon wanders in, and finds me, and I tell him I know he’s
|
||||
looking for these gemstones, and he’s a bit surprised, but mentions that he
|
||||
hadn’t had his serious anti-divination protections up, since he figured no one
|
||||
would care. I told him I didn’t know what that meant. The priest chimed in that
|
||||
I was blessed by foresight. Maell’ezharon said that was shit. I was blown away.
|
||||
The priest huffed and wandered off, and I just stared at this elf who seemed
|
||||
completely unphased by an ability the priests couldn’t stop fawning over me for.
|
||||
So I push him a bit on it, and he says that divination is mighty common, and
|
||||
that if I wanted to learn more he could teach me, and he’d be willing to give me
|
||||
a discount on his services if I gave him a discount on the gems!</p>
|
||||
|
||||
<p>And man temples are booooring! So yeah, I just packed up some stuff and told the
|
||||
priests I had to go because “foresight told me I had to!” and caught up with
|
||||
Maell’ezharon and off we went! I brought some extra gems, and a few extra
|
||||
sandwiches (which he seemed off-put by, which I account to his dainty elf ways,
|
||||
which meant more for me!).</p>
|
||||
|
||||
<p>For the most part, it was kind of boring - but not as boring as the temple!
|
||||
Nothing is as boring as that. Trust me. Just routine travel along “safe and
|
||||
well-known roads” (says Maell’ezharon) to “respectable and trustworthy
|
||||
merchants” (says Maell’ezharon) for “law-abiding and fair trade deals.” (says
|
||||
Maell’ezharon). I was a bit surprised to find myself still saying a prayer here
|
||||
and there but old habits die hard. The more we travelled, the more Maell’ezharon
|
||||
would teach me. First he helped me refine my portent abilities, and got me a
|
||||
spellbook, and let me copy some of his spells into it. Then, in each town we
|
||||
went to, we would combine our powers to get the best deals possible. I would
|
||||
call upon my divine powers to aid him, and he would wheel-and-deal his way
|
||||
through trade deals and contracts. He insisted, time and again, that we do
|
||||
things “legally and fair” (his words) which was fine by me.</p>
|
||||
|
||||
<p>Then, the event happened. And magic suddenly left, and Maell’ezharon… did not
|
||||
take that well. I should say, this was probably 5 or so years into his
|
||||
mentorship. He had taught me many things, and I was developing into “quite the
|
||||
capable wizard, if I do say so myself” (Maell’ezharon said that). We had
|
||||
travelled all over the place, and eventually Maell’ezharon decided he’d like to
|
||||
“invest in real estate since it’s like free money” so he bought a tower and did
|
||||
the whole typical wizard thing: magic plants, and a few animated objects as
|
||||
guards, and what not. I helped with that too, which was really fun. Anyway when
|
||||
the event happened, we were trading and suddenly I just felt this… emptiness.
|
||||
Like, a part of my body was suddenly missing. I looked at Maell’ezharon and he
|
||||
was pale as bone. He just stared at his hands, then looked at the merchant and
|
||||
told him he had to go, and he just left. He didn’t even get his things, he just
|
||||
stumbled out of the shop. I grabbed anything that was ours, and walked outside
|
||||
and saw him just standing there, waving his arms and trying to say the words,
|
||||
and his eyes were a bit crazy-like, and he was sweating. After about 20 minutes,
|
||||
he just sat down and stared. It took me almost 4 hours to finally get him up and
|
||||
to an inn. The next day we went back to the tower, and it was really quite a sad
|
||||
sight. The plants had all died (and not because I forgot to water them I always
|
||||
watered them I am responsible), the guards were piles of rubble. I helped him
|
||||
in, to his room, to his favorite chair, where he just slumped down and stared
|
||||
into the empty, cold fireplace. For a few weeks I tended to him, making sure he
|
||||
at least ate. And I kept up the place, cleaning as best I could. But after a
|
||||
while, I started worrying about my family, and so I hired a local farm boy to
|
||||
take care of Maell’ezharon while I was gone (feed him twice a day, make sure he
|
||||
uses the loo, and don’t let him hurt himself).</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2020-10-23
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
392
2021/11/20/oblivion-linux.html
Normal file
392
2021/11/20/oblivion-linux.html
Normal file
|
@ -0,0 +1,392 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Oblivion on Linux Part 1, Tools</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2021/11/20/oblivion-linux.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>Oblivion holds a special place in my heart. I remember spending a summer in the
|
||||
town I went to college in, and playing Oblivion almost every day while listening
|
||||
to Dream Theater’s <em>Systematic Chaos</em>. Back then, I wasn’t aware of modding, so
|
||||
it was literally just vanilla Oblivion for hours upon hours. I also used
|
||||
Windows, so the game would run fine. Now, things have changed. The easier issue
|
||||
to deal with is playing Oblivion on Linux. Thanks to Valve, Oblivion runs
|
||||
excellent with Proton out of the box. The more challenging issue is mods, and
|
||||
that’s what this write-up is all about!</p>
|
||||
|
||||
<h1 id="vanilla-oblivion">Vanilla Oblivion</h1>
|
||||
|
||||
<p>Starting from the beginning, Oblivion is available on many platforms, but my
|
||||
experiences here will assume the Steam installation. The primary difference will
|
||||
be with respect to how the tools used to mod Oblivion are run. I’ve got the
|
||||
Game of the Year edition, which is Steam ID <code class="language-plaintext highlighter-rouge">22330</code>.</p>
|
||||
|
||||
<h1 id="modding-tools">Modding Tools</h1>
|
||||
|
||||
<p>Much of modding Oblivion is done with the help of additional tools. A mod
|
||||
manager is used for installing and configuring the mods. There are several
|
||||
options for Oblivion, and the one I’ve been suggested and use is called <code class="language-plaintext highlighter-rouge">Wrye
|
||||
Bash</code>. Mod load order is also important, and the tool I’m using to help with
|
||||
that is <code class="language-plaintext highlighter-rouge">LOOT</code>. Finally, <code class="language-plaintext highlighter-rouge">TES4Edit</code>, <code class="language-plaintext highlighter-rouge">TES4LODGen</code> and <code class="language-plaintext highlighter-rouge">BethINI</code> each helps with
|
||||
performance and configuration.</p>
|
||||
|
||||
<p>I have the following directory structure setup for my mods:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>OblivionMods
|
||||
|- Archives
|
||||
|- Backups
|
||||
|- Tools
|
||||
|- WryeBash
|
||||
</code></pre></div></div>
|
||||
|
||||
<p><em>Archives</em> is where I store the actual archives of the mods I use. <em>Backups</em> is
|
||||
where I store any relevant backups for my Oblivion game, such as saves or
|
||||
configuration files for the mods. <em>Tools</em> is where I put the executables for all
|
||||
the tools I mentioned above. <em>WryeBash</em> is used to store the unarchived mods
|
||||
(which it calls “projects”) and mod data that <code class="language-plaintext highlighter-rouge">Wrye Bash</code> uses.</p>
|
||||
|
||||
<p>Because each of these tools is run using Proton, I also have a set of aliases
|
||||
configured. Similar aliases could be setup for using Wine instead. For each
|
||||
alias, modify the paths accordingly for your setup. I should also note that I’m
|
||||
running Oblivion using <a href="https://github.com/GloriousEggroll/proton-ge-custom">Glorious Eggroll’s
|
||||
Proton</a>, version 6.16. I
|
||||
haven’t experimented with different Proton versions to find the most performant
|
||||
version, but if I do in the future, I’ll mention it.</p>
|
||||
|
||||
<h2 id="wrye-bash">Wrye Bash</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/wrye-bash/wrye-bash">Project Link</a></li>
|
||||
<li><a href="https://wrye-bash.github.io/">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/22368">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">Wrye Bash</code> is involved. I don’t know how to use it fully. There are a few
|
||||
guides that helped me learn how to use it enough to get mods installed and
|
||||
configured though. The first, and very relevant, is at <a href="https://www.shrine-of-kynareth.de/wrye-bash-on-linux">Shrine of
|
||||
Kynareth</a>. I referenced
|
||||
this guide, and the
|
||||
<a href="https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-1-installation-and-installers-tab">other</a>
|
||||
<a href="https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-2-load-order-bashed-patch-and-savegame-profiles">written</a>
|
||||
<a href="https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-3-ini-edits-tools-and-tricks">guides</a>
|
||||
to learn how Wrye Bash works and what to setup. I also learned some tricks from
|
||||
the <a href="https://www.nexusmods.com/oblivion/mods/49898">Oblivion Comprehensive Modding Guide by
|
||||
Dispensation</a>.</p>
|
||||
|
||||
<h3 id="setup">Setup</h3>
|
||||
|
||||
<p>The easiest option is to use the stand-alone executable from the GitHub releases
|
||||
page. Extract the archive, and then use Proton to run the executable in the
|
||||
<em>Mopy</em> directory. This is the alias I use; replace paths accordingly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-wrye='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/Mopy/Wrye\ Bash.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Additionally, I copy the <em>Mopy/bash_default.ini</em> file to <em>Mopy/bash.ini</em> and set
|
||||
the <code class="language-plaintext highlighter-rouge">sOblivionMods</code> to “Z:\path\to\OblivionMods\WryeBash”, <code class="language-plaintext highlighter-rouge">sBashModData</code> to
|
||||
“Z:\path\to\OblivionMods\WryeBash\Bash Mod Data”, <code class="language-plaintext highlighter-rouge">sInstallersData</code> to
|
||||
“Z:\path\to\OblivionMods\WryeBash\Bash Installers”, and <code class="language-plaintext highlighter-rouge">sOblivionPath</code> to
|
||||
“Z:\path\to\steam\steamapps\common\Oblivion”. In Wine, <code class="language-plaintext highlighter-rouge">Z:</code> references your
|
||||
local file system. Theoretically, because Wine is awesome, you may be able to
|
||||
use Linux file system paths in the configuration, but I went with this.</p>
|
||||
|
||||
<h3 id="usage">Usage</h3>
|
||||
|
||||
<p>The guides above provide a very thorough explanation of use. Of note: <code class="language-plaintext highlighter-rouge">Wrye
|
||||
Bash</code> in Wine does not like drag-and-drop actions, so don’t do them. I don’t do
|
||||
anything special with my usage of <code class="language-plaintext highlighter-rouge">Wrye Bash</code>: run the alias, install mods from
|
||||
the Installers tab, enable or disable mods from the Mods tab. I generally don’t
|
||||
do anything else.</p>
|
||||
|
||||
<h2 id="loot">LOOT</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/loot/loot">Project Link</a></li>
|
||||
<li><a href="https://loot.github.io/">Homepage</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">LOOT</code> sets the proper load order for mods. There is a native Linux client, but
|
||||
I ran into <a href="https://github.com/loot/loot/issues/1615">this issue</a> and decided to
|
||||
just use the Windows version. The GitHub releases page includes a 7z archive
|
||||
with a stand-alone executable, and that’s what I used.</p>
|
||||
|
||||
<h3 id="setup-1">Setup</h3>
|
||||
|
||||
<p>Download the stand-alone executable, and extract it to <em>OblivionMods/Tools</em>.
|
||||
This is the alias I use; replace paths accordingly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-loot='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/LOOT/LOOT.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>On first run, it should auto-detect the Oblivion installation and configure
|
||||
everything accordingly. If it doesn’t, there are instructions on the Homepage
|
||||
for configuration.</p>
|
||||
|
||||
<h3 id="usage-1">Usage</h3>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">LOOT</code> is pretty straight forward. It references a master list of mods to
|
||||
determine the optimal load order for all installed mods. I ran into an issue
|
||||
where <code class="language-plaintext highlighter-rouge">LOOT</code> couldn’t properly download the master list, and so as a work-around
|
||||
I manually downloaded the master list, and then configured <code class="language-plaintext highlighter-rouge">LOOT</code> to use that
|
||||
local file instead of the remote Git repository. Those instructions are covered
|
||||
<a href="https://loot.github.io/docs/help/LOOT-FAQs.html#git-errors">in the FAQ</a>. If
|
||||
everything works, and the list of mods is there, then you can run a sort, and
|
||||
apply the changes. <code class="language-plaintext highlighter-rouge">LOOT</code> will inform you of any “dirty” mods, which you can use
|
||||
the next tool the clear up. I ended up keeping <code class="language-plaintext highlighter-rouge">LOOT</code> open, while stepping
|
||||
through the cleaning procedure for each mod, until everything looked happy.</p>
|
||||
|
||||
<h2 id="tes4edit">TES4Edit</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/TES5Edit/TES5Edit">Project Link</a></li>
|
||||
<li><a href="https://tes5edit.github.io/">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/11536">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">TES4Edit</code> is the Oblivion version of <code class="language-plaintext highlighter-rouge">xEdit</code>, which is an incredible tool. All
|
||||
I use it for is to clean dirty mods. <code class="language-plaintext highlighter-rouge">LOOT</code> provides a link to the <a href="https://tes5edit.github.io/docs/7-mod-cleaning-and-error-checking.html#ThreeEasyStepstocleanMods">quick cleaning
|
||||
guide</a>,
|
||||
which gives us exactly the steps required.</p>
|
||||
|
||||
<h3 id="setup-2">Setup</h3>
|
||||
|
||||
<p>Download the latest build from GitHub, and extract it to <em>OblivionMods/Tools</em>.
|
||||
This is the alias I use, which runs the “Quick Auto Clean” function; replace
|
||||
paths accordingly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-tes4edit-quick='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4EditQuickAutoClean.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>TES4Edit is also useful for other, non-quick-clean functionality, so I have this
|
||||
alias for that:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-tes4edit='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4Edit.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="usage-2">Usage</h3>
|
||||
|
||||
<p>Run the quick-clean alias, select the problematic file, and click “OK”. Only one
|
||||
file can be cleaned at a time.</p>
|
||||
|
||||
<h2 id="tes4lodgen">TES4LODGen</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/TES5Edit/xLODGen">Project Link</a></li>
|
||||
<li><a href="https://tes5edit.github.io/docs/16-xLODGen.html">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/15781?tab=description">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">TES4LODGen</code> will generate the relevant LOD files ahead of time. Apparently it
|
||||
helps with performance in-game, but may result in slower initial load times when
|
||||
starting the game.</p>
|
||||
|
||||
<h3 id="setup-3">Setup</h3>
|
||||
|
||||
<p>I downloaded the files from Nexus, and extracted the archive to
|
||||
<em>OblivionMods/Tools/TES4LODGen</em>. Here’s the alias; replace paths accordingly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-tes4lodgen='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4LODGen/TES4LODGen.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="usage-3">Usage</h3>
|
||||
|
||||
<p>Run the alias. The program should auto-find everything, do some magic, and will
|
||||
eventually report that it has finished. At that point, you can close the
|
||||
application.</p>
|
||||
|
||||
<h2 id="bethini">BethINI</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/46440">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">BethINI</code> helps manage the “oblivion.ini” file, providing sane options and a
|
||||
wizard for configuration. While not required, it does help with optimizations.</p>
|
||||
|
||||
<h3 id="setup-4">Setup</h3>
|
||||
|
||||
<p>I downloaded the files from Nexus, and extracted the archive to
|
||||
<em>OblivionMods/Tools/Bethini</em>. If you use AutoHotKey apparently you can use that
|
||||
to run it, but that doesn’t make sense to me, so I went with the stand-alone
|
||||
executable. Here’s the alias; replace paths accordingly:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>alias oblivion-bethini='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/BethINI/BethINI.exe'
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="usage-4">Usage</h3>
|
||||
|
||||
<p>Just like the rest, run the alias and answer the questions. <code class="language-plaintext highlighter-rouge">BethINI</code> will make
|
||||
backups of the modified INI files before over-writing them.</p>
|
||||
|
||||
<h1 id="next-steps">Next Steps</h1>
|
||||
|
||||
<p>Once all the tools are assembled, and usable, the next step is mods! In my next
|
||||
post, I’ll cover some of my favorite mods. The third part will then be a
|
||||
complete walk-thru of my installation of my full mod list.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2021-11-28
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
331
2021/12/09/oblivion-linux-2.html
Normal file
331
2021/12/09/oblivion-linux-2.html
Normal file
|
@ -0,0 +1,331 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Oblivion on Linux Part 2, Mods</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2021/12/09/oblivion-linux-2.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>Every player’s mod list is different. Some will focus on visuals, making the
|
||||
game as graphically impressive and pretty as possible. Others care primarily
|
||||
about additional content. I tend towards the later, with a preference for
|
||||
additional survival or realism mods. I recommend starting with the “Core Mods”
|
||||
section in the <a href="https://www.nexusmods.com/oblivion/mods/49898">Oblivion Comprehensive Modding Guide by
|
||||
Dispensation</a> which will cover
|
||||
some essential performance and enhancement mods.</p>
|
||||
|
||||
<p>Below are some specific mods I would like to highlight, and which I enjoy.</p>
|
||||
|
||||
<h2 id="survival-related">Survival Related</h2>
|
||||
|
||||
<h3 id="basic-primary-needs--personal-hygiene">Basic Primary Needs & Personal Hygiene</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/37088">Nexus Link - Basic Primary Needs</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/42038_">Nexus Link - Basic Personal Hygiene</a></li>
|
||||
</ul>
|
||||
|
||||
<p>These two mods cover most of the survival aspects of my mod pack. “Basic Primary
|
||||
Needs” adds hunger, thirst, and fatigue, while “Basic Personal Hygiene” adds
|
||||
cleanliness. Managing these will feel tedious to some, but I really like having
|
||||
to eat and drink, and visiting a bath house after a long time adventuring.</p>
|
||||
|
||||
<p>Each mod can make use of <a href="https://www.nexusmods.com/oblivion/mods/34905">additional HUD Status
|
||||
Bars</a>, which makes tracking the
|
||||
new needs much easier.</p>
|
||||
|
||||
<h3 id="travelers-tent">Traveler’s Tent</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/49654">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>This mod adds a portable player home, and is supremely comfy. Because I avoid
|
||||
fast-travel, I wanted some sort of camping mod. I originally used <a href="https://www.nexusmods.com/oblivion/mods/37197">Maskar’s
|
||||
Camping Mod</a> before learning of
|
||||
this mod. By comparison, the tent in Traveler’s Tent feels almost like cheating,
|
||||
but sometimes it’s important to treat yourself.</p>
|
||||
|
||||
<h2 id="world-enhancement">World Enhancement</h2>
|
||||
|
||||
<p>These I would consider my graphical improvements. I’m generally not too
|
||||
concerned with making the game look good, but I love making the game feel more
|
||||
realistic. These mods make Cyrodiil feel more alive.</p>
|
||||
|
||||
<h3 id="better-cities">Better Cities</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/16513/">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>This is a massive collection of city overhaul and enhancement mods. I was
|
||||
awe-struck when I walked around the Imperial City for the first time with this
|
||||
mod enabled. Bravil felt like a dangerous, crowded harbor town. Leyawin looks
|
||||
like an actual place people live. Though the improvements do come with FPS hits.
|
||||
Doubly-so if enabling the Open Cities option, which moves cities into the
|
||||
overworld space, instead of their own individual instances. It’s a balancing
|
||||
act: the immersion of walking directly into a city sometimes isn’t worth
|
||||
crashing to desktop when adventuring around cities.</p>
|
||||
|
||||
<h3 id="cobl">COBL</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/21104">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>“Common Oblivion” enriches the world of Oblivion by adding lots of little
|
||||
things, and helping different mods “talk” to each other. I like to think of it
|
||||
as filling in a lot of the details that feel missing from vanilla Oblivion.</p>
|
||||
|
||||
<h3 id="enhanced-economy">Enhanced Economy</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/25078">Nexus Link</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/47184">Lubrons Patch</a></li>
|
||||
</ul>
|
||||
|
||||
<p>This mod and the corresponding patch make the economy of the world more dynamic.
|
||||
What I really like are the merchant quests that are added. Several merchants in
|
||||
each town will ask you to find an item in one of the nearby dungeons. It adds
|
||||
flavor to the game in just the right way.</p>
|
||||
|
||||
<p>Lubron’s Patch for Enhanced Economy fixes some bugs and cleans up the code a
|
||||
bit.</p>
|
||||
|
||||
<h3 id="lights-of-oblivion---road-lanterns">Lights of Oblivion - Road Lanterns</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/46131">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>A very simple mod that I feel really enhances my travel around Cyrodiil. I avoid
|
||||
fast-traveling whenever possible, and walking lit roads at night feels comfy.
|
||||
I’m partial to the Imperial model.</p>
|
||||
|
||||
<h3 id="natural-environments">Natural Environments</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/2536">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Arguably the only graphical enhancement mod, Natural Environments provides
|
||||
options for modifying the weather, water, and vegetation around Cyrodiil. The
|
||||
weather and vegetation enhancements especially stand out. Overall the mods
|
||||
don’t cause me much performance impact, if any.</p>
|
||||
|
||||
<h3 id="cyrodiil-travel-services">Cyrodiil Travel Services</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.afkmods.com/index.php?/files/file/263-cyrodiil-travel-services/">AFK Mods Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>I really enjoyed that in Skyrim there was a dude with a wagon you could pay to
|
||||
travel to the various cities. This mod adds similar functionality, and then
|
||||
some. Useful when playing the game without fast-travel enabled.</p>
|
||||
|
||||
<h2 id="overhauls">Overhauls</h2>
|
||||
|
||||
<p>Arguably, these are the heavy hitters. These mods will alter the mechanics of
|
||||
the game, often making things more challenging but also more rewarding.</p>
|
||||
|
||||
<h3 id="maskars-oblivion-overhaul">Maskar’s Oblivion Overhaul</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/42780">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Maskar’s Overhaul is a massive endeavor. It “[improves] many aspects of the
|
||||
game, while maintaining the overall feel of the game and ensuring compatibility
|
||||
with most other mods.” I think it does so with great success! However, be
|
||||
forewarned, that this overhaul makes the game more challenging.</p>
|
||||
|
||||
<p>There is too much to cover about Maskar’s in this post, but I highly recommend
|
||||
it. It comes with a PDF instruction manual, which is 61 pages long.</p>
|
||||
|
||||
<h3 id="vanilla-combat-enhanced">Vanilla Combat Enhanced</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/45314">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>As the name implies, this overhaul adjusts but does not change the vanilla
|
||||
combat experience. Whereas other mods add new moves or fatigue systems, this mod
|
||||
updates the vanilla combat experience to be more challenging and fair. It works
|
||||
with Maskar’s after a small modification, which will be covered in the next
|
||||
part. This is one of the mods that I haven’t played with for too long, and
|
||||
there are definitely some additional or alternative combat mods I’m considering.
|
||||
Namely, <a href="https://www.nexusmods.com/oblivion/mods/49873">Dynamic Oblivion Combat</a>
|
||||
and <a href="https://www.nexusmods.com/oblivion/mods/49939">Combat Additions</a>.</p>
|
||||
|
||||
<h3 id="supreme-magicka">Supreme Magicka</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/12466">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Rounding out the trio is a magic overhaul. Supreme Magicka approaches magic in
|
||||
Oblivion in a similar way to Vanilla Combat Enhanced with combat: it seeks to
|
||||
improve and expand, without replacing. To continue similarities, this mod is one
|
||||
I haven’t sank my teeth into as much. The characters I’ve been playing most
|
||||
recently haven’t achieved very powerful magical capabilities yet. An alternative
|
||||
to this mod is <a href="https://www.nexusmods.com/oblivion/mods/49096">Av Latta
|
||||
Magicka</a>.</p>
|
||||
|
||||
<h2 id="next-steps">Next Steps</h2>
|
||||
|
||||
<p>In the last part of this series, I want to walk through a complete install of
|
||||
Oblivion from scratch.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2021-12-09
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
299
2022/07/04/steam_deck_syncthing.html
Normal file
299
2022/07/04/steam_deck_syncthing.html
Normal file
|
@ -0,0 +1,299 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Syncthing on the Steam Deck</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2022/07/04/steam_deck_syncthing.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="syncthing-on-the-steam-deck-updated">Syncthing on the Steam Deck (Updated!)</h1>
|
||||
|
||||
<h2 id="update">Update</h2>
|
||||
|
||||
<p>Turns out, when you update the SteamOS, it completely over-writes the operating
|
||||
system. All of the setup I had originally written was great, if I never update,
|
||||
which is unacceptable. Not all is lost; the quest simply gets harder. If I can’t
|
||||
rely on system-wide services, then I rely on user services.</p>
|
||||
|
||||
<h3 id="the-wrong-way-system-wide-services">The Wrong Way: System-Wide Services</h3>
|
||||
|
||||
<p>My first attempt was to setup Syncthing as a system-wide service managed by
|
||||
<code class="language-plaintext highlighter-rouge">systemd</code>, installed via <code class="language-plaintext highlighter-rouge">pacman</code>. There are several problems with this. First,
|
||||
it requires disabling the read-only file-system. Next, <code class="language-plaintext highlighter-rouge">pacman</code> is not setup nor
|
||||
reliable, since every SteamOS update will over-write any changes I make to any
|
||||
of the read-only file-system, including the directories that <code class="language-plaintext highlighter-rouge">pacman</code> relies on.
|
||||
Related, the update will also erase the Syncthing package. This means I either
|
||||
never update (inadvisable, and unacceptable), or I setup Syncthing not in the
|
||||
read-only file-system.</p>
|
||||
|
||||
<h3 id="the-right-way-user-services">The Right Way: User Services</h3>
|
||||
|
||||
<p>systemd allows for non-root-based services, called user services. The Arch Wiki
|
||||
<a href="https://wiki.archlinux.org/title/Systemd/User">systemd/User</a> article describes
|
||||
this functionality much more than I will. Here are the relevant details:</p>
|
||||
|
||||
<ul>
|
||||
<li>User services can be enabled to start when a user logs in</li>
|
||||
<li>Service files are stored in the user’s home directory (specifically
|
||||
<code class="language-plaintext highlighter-rouge">~/.config/systemd/user</code>)</li>
|
||||
<li>No root privileges are required. No modifying the read-only file-system</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="syncthing">Syncthing</h2>
|
||||
|
||||
<p>Syncthing is incredible. I’ve <a href="2020/07/19/syncthing-part-1.html">written about it
|
||||
before</a>, but the setup here is a bit more
|
||||
involved. The Steam Deck runs Arch Linux (and have I told you yet today that I
|
||||
do too?), so the Arch Wiki <a href="https://wiki.archlinux.org/title/Syncthing">article on
|
||||
Syncthing</a> gives some good insight.
|
||||
When I initially started this process, I installed the SyncthingGTK application
|
||||
from the Discover Store. This means it is a Flatpak application, and so doesn’t
|
||||
require elevated user privileges. I also tried the Syncthingy application, which
|
||||
explicitly calls out Steam Deck users. However, both require running the Flatpak
|
||||
in the background (like some users do for Discord or Spotify). I don’t like
|
||||
this, it feels off, and thus I sought a different approach.</p>
|
||||
|
||||
<h2 id="sshd-still-incredibly-useful">SSHD: Still Incredibly Useful</h2>
|
||||
|
||||
<p>I got real tired real quick of using the on-screen keyboard. After
|
||||
complaining, a friend recommended I enable <code class="language-plaintext highlighter-rouge">sshd</code> and just remote in to the
|
||||
device. Doing so was a breeze, and I recommend to others who don’t have a
|
||||
physical keyboard they can plug into their device. Drop to desktop mode
|
||||
(hold the power button for a few seconds, and select the option), and start a
|
||||
terminal (default is Konsole). Before remotely accessing the device, or using
|
||||
elevated privileges via <code class="language-plaintext highlighter-rouge">sudo</code>, I need to set a password for the default user,
|
||||
<em>deck</em>. In the terminal, type <code class="language-plaintext highlighter-rouge">passwd</code> and set it (and then put it in your
|
||||
password vault so you don’t forget. You <em>do</em> have a password vault, right?).
|
||||
Start the service, <code class="language-plaintext highlighter-rouge">sudo systemctl start sshd</code>, and optionally enable it to have
|
||||
<code class="language-plaintext highlighter-rouge">sshd</code> automatically started on each boot (<code class="language-plaintext highlighter-rouge">sudo systemctl enable sshd</code>). Get
|
||||
the device IP with <code class="language-plaintext highlighter-rouge">ip addr list</code>, from my desktop run <code class="language-plaintext highlighter-rouge">ssh deck@ip-address</code>,
|
||||
type in the password, and now I’m a grade-A Hackermans.</p>
|
||||
|
||||
<p>This setting is not reset on SteamOS updates, that I can tell. Once enabled,
|
||||
this will always start at boot, and always be on until explicitly turned off. Be
|
||||
mindful of that if you decide to wander away from your home network; maybe turn
|
||||
it off in public if you don’t need it.</p>
|
||||
|
||||
<h2 id="setup">Setup</h2>
|
||||
|
||||
<p>There are 2 things required: a systemd service file, and the <code class="language-plaintext highlighter-rouge">syncthing</code>
|
||||
binary. Syncthing is written in Go, and a compiled binary can be downloaded that
|
||||
has no dependencies or installation requirements. It can be downloaded from
|
||||
the <a href="https://github.com/syncthing/syncthing/releases/tag/v1.20.3">Syncthing
|
||||
Releases</a> page for
|
||||
many platforms and architectures. The Steam Deck is a Linux platform, using the
|
||||
AMD64 architecture (or x86_64), so I grab that one. I’ll note here, since I have
|
||||
SSH access, I do all the editing and downloading on my desktop, and then
|
||||
transfer the files using <code class="language-plaintext highlighter-rouge">scp</code> to the Deck. All of these steps can be done on
|
||||
the Deck itself, without SSH access. Once the proper tarball has been
|
||||
downloaded, extract it, and within will be the <code class="language-plaintext highlighter-rouge">syncthing</code> binary, ready to
|
||||
rock. I copy/move the binary to <code class="language-plaintext highlighter-rouge">~/.local/bin/syncthing</code> on the Deck. The exact
|
||||
location is less important than ensuring the binary is within my home directory
|
||||
on the Deck.</p>
|
||||
|
||||
<p>The systemd serivce file can also be taken from the extracted tarball, but
|
||||
requires modification. In the tarball, it is
|
||||
<code class="language-plaintext highlighter-rouge">etc/linux-systemd/user/syncthing.service</code>. Copy this file to
|
||||
<code class="language-plaintext highlighter-rouge">~/.config/systemd/user</code> on the Deck, and edit the “ExecStart” line in the
|
||||
“[Service]” section from</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>...
|
||||
[Service]
|
||||
ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
|
||||
...
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>to</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>...
|
||||
[Service]
|
||||
ExecStart=/home/deck/.local/bin/syncthing serve --no-browser --no-restart --logflags=0
|
||||
...
|
||||
</code></pre></div></div>
|
||||
<p>(or wherever you decided to put the local <code class="language-plaintext highlighter-rouge">syncthing</code> binary)</p>
|
||||
|
||||
<p>With everything in place, I can now enable and start the Syncthing user service:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>systemctl --user enable syncthing.service
|
||||
systemctl --user start syncthing.service
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Since I don’t have a physical keyboard plugged in, I modify my SSH command
|
||||
slightly to forward the Syncthing web-UI from the Deck to my local machine:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -L 31337:deck-ip-goes-here:8384 deck@deck-ip-goes-here
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Now, on my local machine I can open one tab to <code class="language-plaintext highlighter-rouge">localhost:8384</code>, to show
|
||||
Syncthing on my local machine, and another tab to <code class="language-plaintext highlighter-rouge">localhost:31337</code> to show
|
||||
Syncthing on my Deck. From here, I add my local machine as a device on my Deck,
|
||||
and begin sharing folders.</p>
|
||||
|
||||
<h2 id="closing-thoughts">Closing Thoughts</h2>
|
||||
|
||||
<p>I’ve been using this setup for about a week now. I’ve synced almost 20GB of
|
||||
files, including configurations and saves for Retroarch. It works after
|
||||
restarts, OS and client upgrades, and waking the device from sleep. It sits
|
||||
quietly in the background, without having to start up applications. The biggest
|
||||
problem is that it doesn’t automatically update to the newest version of
|
||||
Syncthing. It’s also a bit involved to setup. To that end, I’ve written a tool
|
||||
to help with setup: <a href="https://codeberg.org/VagabondAzulien/steam-deck-syncthing">Steam Deck Syncthing
|
||||
Setup</a>. I’m still
|
||||
finishing it up, but I intend to make use of it to keep my version of Syncthing
|
||||
up-to-date. If you use it, let me know!</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2022-07-12
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
289
2022/09/27/linode_funkwhale.html
Normal file
289
2022/09/27/linode_funkwhale.html
Normal file
|
@ -0,0 +1,289 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Funkwhale On Linode with Object Storage</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2022/09/27/linode_funkwhale.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="funkwhale-on-linode-with-object-storage">Funkwhale on Linode with Object Storage</h1>
|
||||
|
||||
<h2 id="funkwhale-setup">Funkwhale Setup</h2>
|
||||
|
||||
<p><a href="https://funkwhale.audio/">Funkwhale</a> is a decentralized music service,
|
||||
connecting to the <a href="https://en.wikipedia.org/wiki/Fediverse">fediverse</a> using the
|
||||
ActivityPub protocol. It is a web-based application, allowing users to upload,
|
||||
listen, and share music and podcasts. I think it’s a cool project, and I can
|
||||
self-host it, so I did. For a while, Funkwhale offered an all-in-one Docker
|
||||
container, but they shifted focus to a multi-container approach. I had delayed
|
||||
my transition from all-in-one to multi-container, but finally this past weekend
|
||||
I found myself with time and motivation to get it done. The installation of
|
||||
Funkwhale using Docker is very straight forward. The community has developed a
|
||||
series of templates that can be fetched, modified, and used to get started very
|
||||
quickly and easily. Those instructions are
|
||||
<a href="https://docs.funkwhale.audio/installation/docker.html#multi-container-installation">here</a>.
|
||||
The only significant modification I made was using <code class="language-plaintext highlighter-rouge">/opt/funkwhale</code> as my
|
||||
default data and media root. I keep all my Docker configuration in directories
|
||||
in my home directory as well. Much of these changes can be established in the
|
||||
<code class="language-plaintext highlighter-rouge">.env</code> file discussed in the installation instructions, but I also scrubbed the
|
||||
template files created and used during installation to make sure the directories
|
||||
were as I wanted them. I also proxy Funkwhale and many other services behind
|
||||
nginx, and there were a few <a href="https://docs.funkwhale.audio/installation/index.html#nginx">additional
|
||||
steps</a> I had to
|
||||
take. With all that complete, I had transitioned successfully. I already had SSL
|
||||
certificates, but if that’s also a requirement, they can easily be provisioned
|
||||
using <a href="https://certbot.eff.org/">Certbot</a>.</p>
|
||||
|
||||
<h2 id="object-storage-setup">Object Storage Setup</h2>
|
||||
|
||||
<p>In my old setup, I leveraged Funkwhale’s ability to <a href="https://docs.funkwhale.audio/admin/importing-music.html">in-place import
|
||||
music</a>. I transferred
|
||||
about 70GB worth of music to my VPS (using Syncthing <3), filling the disk
|
||||
almost entirely (<em>98%</em>). It was a temporary solution for a road trip, and I
|
||||
knew I couldn’t keep it that way for long. Funkwhale has the ability to leverage
|
||||
S3-compatible object storage, and Linode, the provider I already use for my VPS,
|
||||
offers object storage. Any of the other major cloud providers will also do the
|
||||
trick; I just went with what was easiest. On the Linode side, there’s not much
|
||||
to it. I created a new bucket, labeled it accordingly, created an access key,
|
||||
and that was it. The Funkwhale side proved to be a bit challenging, but not, it
|
||||
turns out, due to configuration. Well, <em>technically</em> it was.</p>
|
||||
|
||||
<p>The relevant configuration options on the Funkwhale side, in the <code class="language-plaintext highlighter-rouge">.env</code> file:</p>
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## External storages configuration
|
||||
# Funkwhale can store uploaded files on Amazon S3 and S3-compatible storages (such as Minio)
|
||||
# Uncomment and fill the variables below
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_STORAGE_BUCKET_NAME=
|
||||
# An optional bucket subdirectory were you want to store the files. This is especially useful
|
||||
# if you plan to use share the bucket with other services
|
||||
# AWS_LOCATION=
|
||||
|
||||
# If you use a S3-compatible storage such as minio, set the following variable
|
||||
# the full URL to the storage server. Example:
|
||||
# AWS_S3_ENDPOINT_URL=https://minio.mydomain.com
|
||||
AWS_S3_ENDPOINT_URL=
|
||||
|
||||
# If you want to serve media directly from your S3 bucket rather than through a proxy,
|
||||
# set this to false
|
||||
# PROXY_MEDIA=false
|
||||
|
||||
# If you are using Amazon S3 to serve media directly, you will need to specify your region
|
||||
# name in order to access files. Example:
|
||||
# AWS_S3_REGION_NAME=eu-west-2
|
||||
# AWS_S3_REGION_NAME=
|
||||
|
||||
# If you are using Amazon S3, use this setting to configure how long generated URLs should stay
|
||||
# valid. The default value is 3600 (60 minutes). The maximum accepted value is 604800 (7 days)
|
||||
|
||||
# AWS_QUERYSTRING_EXPIRE=
|
||||
|
||||
# If you are using an S3-compatible object storage provider, and need to provide a default
|
||||
# ACL for object uploads that is different from the default applied by boto3, you may
|
||||
# override it here. Example:
|
||||
# AWS_DEFAULT_ACL=public-read
|
||||
# Available options can be found here: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl
|
||||
|
||||
AWS_DEFAULT_ACL=
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>I’ve included the comments. The entire file is commented, and generally easy
|
||||
enough to figure out. On the Linode side, when I generated the access key, it
|
||||
provided me an <em>Access Key</em> and a <em>Secret Key</em>. I had already created a bucket,
|
||||
and so I had the <em>Bucket Name</em>. The challenge for me was what the <em>Endpoint URL</em>
|
||||
was, and if I needed to set a <em>Region Name</em> and <em>ACL</em>. Linode’s documentation on
|
||||
their object storage offering is a bit anemic, and so I made use of their setup
|
||||
instructions for <a href="https://www.linode.com/docs/products/storage/object-storage/guides/s3cmd/">using s3cmd with Linode object
|
||||
storage</a>.
|
||||
From this guide, I was able to both setup <code class="language-plaintext highlighter-rouge">s3cmd</code>, and also determine what the
|
||||
<em>Endpoint URL</em> would be. I also set the <em>Region Name</em> and <em>ACL</em> to match what
|
||||
the UI was showing, but I’m still not certain their necessary. Here’s the trick,
|
||||
and the cause of a few hours-worth of confusion: restarting the Docker
|
||||
containers wasn’t re-reading the <code class="language-plaintext highlighter-rouge">.env</code> file; I had to completely stop and
|
||||
re-create them. It wasn’t until I ran <code class="language-plaintext highlighter-rouge">docker inspect funkwhale-docker_api_1</code>
|
||||
and noticed the environment variables weren’t set that I figured this out. Could
|
||||
be this is common knowledge for Docker-gurus; now I know. With the
|
||||
configuration in place, and the containers recreated, I was able to upload files
|
||||
through Funkwhale, and watch them be stored in my Linode bucket. My final
|
||||
configuration options were as follows:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>AWS_ACCESS_KEY_ID=<stuff>
|
||||
AWS_SECRET_ACCESS_KEY=<secret stuff>
|
||||
AWS_STORAGE_BUCKET_NAME=funkwhale-music-bucket-name
|
||||
AWS_S3_ENDPOINT_URL=https://us-southeast-1.linodeobjects.com
|
||||
AWS_S3_REGION_NAME=us-southeast-1
|
||||
AWS_DEFAULT_ACL=public-read
|
||||
</code></pre></div></div>
|
||||
|
||||
<h2 id="next-steps">Next Steps</h2>
|
||||
|
||||
<p>The downside of Funkwhale’s S3-compatible object storage integration lies in how
|
||||
files are uploaded. One cannot simply <del>walk into</del> upload files to the bucket;
|
||||
music must be uploaded through Funkwhale’s API (via web or other means), and
|
||||
then Funkwhale stores it accordingly (like for local uploads). I have a lot of
|
||||
music, and I can’t be asked to manually upload it all. That’s, like, 2 hours of
|
||||
half-hearted work. No, instead, the obvious solution is to build a script that
|
||||
can automatically upload any new music from my local music directory to
|
||||
Funkwhale automatically. What I’m considering now is how I want to do that. I
|
||||
could leverage systemd to watch my local music directory, and run the upload
|
||||
script whenever new music is uploaded. Could even expand it to remove music
|
||||
whenever I delete it locally, though that seems a bit odd. I could instead setup
|
||||
a cron or systemd-timer to run at a set interval, and check for any new files
|
||||
since the last run, and upload them. Regardless of the trigger, the upload
|
||||
functionality should ideally avoid duplicates, run in a non-blocking fashion,
|
||||
maybe batch upload files, and be low impact on my desktop. So that’s next.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2022-09-27
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
332
2023/05/07/rclone-backups.html
Normal file
332
2023/05/07/rclone-backups.html
Normal file
|
@ -0,0 +1,332 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Automatic Backups with RClone</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2023/05/07/rclone-backups.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="automatic-backups-with-rclone-systemd-and-backblaze">Automatic Backups with RClone, systemd, and Backblaze</h1>
|
||||
|
||||
<h2 id="quick-note">Quick Note</h2>
|
||||
|
||||
<p>Backups are not complicated. They may seem like it, but in reality the
|
||||
complications arise from restoration. If you’re not doing anything fancy with
|
||||
your data now, then don’t do anything fancy with your backups. Follow the 3-2-1
|
||||
methodology: 3 copies of (important) data, in 2 different locations, 1 of which
|
||||
is off-site. Many others have written about this in better detail than I ever
|
||||
can; Jeff Geerling has a great article and several videos about it <a href="https://www.jeffgeerling.com/blog/2021/my-backup-plan">on his
|
||||
site</a>. The time (and
|
||||
often money) investment now can reduce worry, stress, and loss should the data
|
||||
you care about ever become unusable.</p>
|
||||
|
||||
<p>(There are no affiliate links in this post, nor was I paid to recommend any
|
||||
product or service.)</p>
|
||||
|
||||
<h1 id="my-needs">My Needs</h1>
|
||||
|
||||
<p>Backups are as important as the data you have. If all you’ve got is a directory
|
||||
full of meme GIFs that you don’t mind losing, then backups may be a waste of
|
||||
time and money. I have recently taken to buying as much of my music as possible
|
||||
(especially through Bandcamp, and especially on Bandcamp Fridays!). While much
|
||||
of the music I buy does exist on a remote server at a company somewhere, the
|
||||
cost of having to re-download and re-organize all of it well outweighs the cost
|
||||
of proper backups. Not to mention the music which I can’t get anywhere else
|
||||
anymore. Nor to further mention the other data which I have. All of this is to
|
||||
say: backups are worth it to me.</p>
|
||||
|
||||
<p>Recently I wanted to setup NFS on my home network. I was concerned about messing
|
||||
something up, and erasing the directory I had intended to share, so I wanted to
|
||||
backup the data. For a while I’ve been intending to setup backups (as everyone
|
||||
probably does), but it was never a priority. This project helped to prioritze
|
||||
it. I had read about <a href="https://rclone.org/">RClone</a>, a command-line utility for
|
||||
interacting with an incredible number of cloud services. I messed around a bit
|
||||
with it, found it to my liking, and started shopping around for a cloud storage
|
||||
solution. Enter <a href="https://www.backblaze.com/">Backblaze</a>. The folks that publish
|
||||
all those hard-drive stats? Turns out they also run a business where they
|
||||
provide cloud storage. It’s inexpensive, reliable, and straight-forward. The
|
||||
last step was to automate it with systemd timer units.</p>
|
||||
|
||||
<h2 id="backblaze-setup">Backblaze Setup</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.backblaze.com/">Backblaze Site</a></li>
|
||||
<li><a href="https://www.backblaze.com/help.html">Backblaze Docs</a></li>
|
||||
</ul>
|
||||
|
||||
<p>First step is to setup Backblaze. Create an account, verify email address, all
|
||||
that jazz. I’d recommend enabling multi-factor authentication on the
|
||||
<strong>Account</strong> -> <strong>My Settings</strong> page, under <strong>Security</strong>. Next, click on the
|
||||
<strong>Account</strong> -> <strong>Application Keys</strong> page, and generate a new key. Fill in the
|
||||
blanks (I gave my key full access to all buckets), copy the important bits, and
|
||||
store them somewhere safe (like your password vault).</p>
|
||||
|
||||
<h2 id="rclone-setup">RClone Setup</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://rclone.org/">RClone Site</a></li>
|
||||
<li><a href="https://rclone.org/b2/">RClone Backblaze B2 Page</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Download and install RClone. Next run <code class="language-plaintext highlighter-rouge">rclone config</code> and walk through the
|
||||
prompts. I’m using Backblaze, so I select “Backblaze B2” as my storage backend.
|
||||
Then I add the application key ID and application key secret (key) at the
|
||||
relevant prompts. For all of this configuration, I named the remote “backblaze”,
|
||||
though a shorter name can make commands easier. Regardless, verify the
|
||||
configuration is setup properly by running <code class="language-plaintext highlighter-rouge">rclone lsd backblaze:</code>, which will
|
||||
list buckets. Unless a bucket was already configured, nothing will show up, and
|
||||
also there won’t be any errors.</p>
|
||||
|
||||
<h2 id="backup-configuration">Backup Configuration</h2>
|
||||
|
||||
<p>Now, figure out how you want to backup your data. I have a <a href="/2020/06/14/setting-up-btrfs.html">BTRFS RAID setup
|
||||
with multiple sub-volumes</a>, each for a
|
||||
different data type: one for Books, one for Music, and so on. Since creating a
|
||||
bucket doesn’t cost anything, I decided to split my backups similarly. I created
|
||||
the buckets I wanted, and did a “manual” RClone sync of the data.</p>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">rclone sync --fast-list --transfers 20 /path/to/Books
|
||||
backblaze:bucket-for-Books-backups</code></p>
|
||||
|
||||
<p>The “–fast-list” and “–transfers” options are specified on the <a href="https://rclone.org/b2/">RClone
|
||||
Backblaze B2 page</a>, along with some others that may be
|
||||
of interest.</p>
|
||||
|
||||
<p>At this point, my data was “backed-up”, and I could muck about with it more
|
||||
confidently. Also, at this point, configuring back-ups is done. Run those RClone
|
||||
sync commands once a week, and all is set. I don’t want to remember to do
|
||||
things, though.</p>
|
||||
|
||||
<h2 id="automating-the-process">Automating the Process</h2>
|
||||
|
||||
<p>The first thing to do is create a user-agnostic location for the configuration
|
||||
file and some additional files. I chose <code class="language-plaintext highlighter-rouge">/etc/rclone</code>, and copied the RClone
|
||||
configuration file generated previously to this directory as <code class="language-plaintext highlighter-rouge">backblaze.conf</code>.</p>
|
||||
|
||||
<p>Next, I created a filter file. RClone has extensive <a href="https://rclone.org/filtering/">filtering
|
||||
options</a>. For my current needs, a single file
|
||||
will suffice.</p>
|
||||
|
||||
<h3 id="defaultfilter">default.filter</h3>
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Exclude BTRFS snapshot directories
|
||||
- .snapshots/**
|
||||
# Exclude Syncthing configuration directories
|
||||
- .stfolder/**
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>systemd timer units ( [<a href="https://wiki.archlinux.org/title/Systemd/Timers">Arch
|
||||
Wiki</a>]
|
||||
[<a href="https://man.archlinux.org/man/systemd.timer.5">Manual</a>] ) are triggers that
|
||||
activate on a schedule. That schedule can be dynamic (relative to a
|
||||
previous/other trigger), or static (at 6:15 every day). A timer unit triggers a
|
||||
service unit, which does the work. For my backups, I decided to run a sync every
|
||||
hour, at sometime between the 15 and 45 minute mark of that hour. To simplify
|
||||
having multiple timer units that all do the same thing, I setup a template unit
|
||||
(see the <strong>Note</strong> here: <a href="https://wiki.archlinux.org/title/Systemd#Using_units">Arch
|
||||
Wiki</a>).</p>
|
||||
|
||||
<h3 id="rclone-backuptimer">rclone-backup@.timer</h3>
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[Unit]
|
||||
Description=RClone Backup Timer Template
|
||||
|
||||
[Timer]
|
||||
# Run every hour, sometime between the 15 minute and 45 minute mark
|
||||
OnCalendar=*-*-* *:15:00
|
||||
AccuracySec=30min
|
||||
RandomizedDelaySec=5min
|
||||
|
||||
# The %i is whatever value is after the "@" for the configured unit. For
|
||||
# example, rclone-backup@Books.timer will run the rclone-backup@Books.service
|
||||
Unit=rclone-backup@%i.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Then I can <code class="language-plaintext highlighter-rouge">enable</code> and <code class="language-plaintext highlighter-rouge">start</code> a timer for each directory to backup. To
|
||||
minimize configuration, I also setup the service file to be a template. This
|
||||
requires a bit of inflexible coordination: the directory name must match to a
|
||||
part of the bucket name.</p>
|
||||
|
||||
<h3 id="rclone-backupservice">rclone-backup@.service</h3>
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[Unit]
|
||||
Description=RClone Backup of %I
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone sync -v --config "/etc/rclone/backblaze.conf" --fast-list --transfers 20 --filter-from "/etc/rclone/default.filter" /path/to/%i/ backblaze:bucket-for-%i-backups
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The <code class="language-plaintext highlighter-rouge">--config</code> option allows us to specify the configuration in the <code class="language-plaintext highlighter-rouge">/etc</code>
|
||||
directory. I include <code class="language-plaintext highlighter-rouge">-v</code> to have some additional output in the journal.
|
||||
Again, <code class="language-plaintext highlighter-rouge">--fast-list</code> and <code class="language-plaintext highlighter-rouge">--transfers</code> are used to speed up the process and keep
|
||||
costs lower. Then I <code class="language-plaintext highlighter-rouge">--filter-from</code> the “default.filter” file.</p>
|
||||
|
||||
<p>Place each of these files (<code class="language-plaintext highlighter-rouge">rclone-backup@.timer</code> and <code class="language-plaintext highlighter-rouge">rclone-backup@.service</code>)
|
||||
into <code class="language-plaintext highlighter-rouge">/etc/systemd/system</code>. For each directory, enable and start the timer
|
||||
unit; <code class="language-plaintext highlighter-rouge">systemctl enable rclone-backup@Example.timer</code> and <code class="language-plaintext highlighter-rouge">systemctl start
|
||||
rclone-backup@Example.timer</code> will backup <code class="language-plaintext highlighter-rouge">/path/to/Example/</code> to the
|
||||
<code class="language-plaintext highlighter-rouge">bucket-for-Example-backups</code> bucket.</p>
|
||||
|
||||
<h1 id="next-steps">Next Steps</h1>
|
||||
|
||||
<p>I would like to get some sort of metrics and dashboards setup to track backup
|
||||
status and statistics. It could be very useful to be notified if a backup ever
|
||||
fails.</p>
|
||||
|
||||
<p>Eventually, I’ll upload this to a repository somewhere for ease of access and
|
||||
backup. When I do, I’ll update this post.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2023-05-07
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
238
2024/08/19/life-in-progress-august.html
Normal file
238
2024/08/19/life-in-progress-august.html
Normal file
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Life in Progress: August, 2024</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2024/08/19/life-in-progress-august.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="life-in-progress-as-of-2024-08-19">Life In Progress, as of 2024-08-19</h1>
|
||||
|
||||
<ul>
|
||||
<li>Learning <a href="https://www.youtube.com/watch?v=LZVpvJsqTMM">Stan Rogers’
|
||||
<em>Bluenose</em></a> on mandolin and voice</li>
|
||||
<li>Building a few games in the <a href="https://tic80.com">TIC-80 fantasy console</a></li>
|
||||
<li>Deploying my own <a href="https://codeberg.org/Codeberg/pages-server/">“Pages” server</a></li>
|
||||
<li>Building a Forgejo Action for deploying game builds to Itch.io using
|
||||
<a href="https://itch.io/docs/butler/">butler</a></li>
|
||||
<li>Building a custom WordPress Docker container that uses SQLite</li>
|
||||
<li>Starting my own business</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="music">Music</h2>
|
||||
|
||||
<p>Adam and I continue our semi-weekly jam sessions! We’ve settled on <a href="https://www.youtube.com/watch?v=LZVpvJsqTMM">Stan Rogers’
|
||||
<em>Bluenose</em></a> for our first piece. I
|
||||
normally pick up lyrics pretty quick, but this song eludes me. We worked on the
|
||||
chord progression last week, and I’ve been actually practicing!</p>
|
||||
|
||||
<h2 id="game-dev">Game Dev</h2>
|
||||
|
||||
<p>Still having a blast with <a href="https://tic80.com/">TIC-80</a>. I made a small farming
|
||||
experiment game, to learn <a href="https://fennel-lang.org">Fennel</a> some more and also
|
||||
nail-down some basic design principles. Some of the ideas in that experiment,
|
||||
namely generating the map with a loop and <code class="language-plaintext highlighter-rouge">mset</code> instead of using the built-in
|
||||
map designer, gave me some insight for solving my darkness troubles in
|
||||
Nightgolf. I’m still wrapping my head around it, but I think this will be a
|
||||
solution.</p>
|
||||
|
||||
<p>The farming experiment game lives on
|
||||
<a href="https://vagabondazulien.itch.io/farm-experiment-1">Itch.io</a> and the <a href="https://tic80.com/play?cart=3965">TIC-80
|
||||
Webzone</a>.</p>
|
||||
|
||||
<h2 id="tech-dev">Tech Dev</h2>
|
||||
|
||||
<p><a href="https://forgejo.org/">Forgejo</a> continues to be rewarding, and I’m looking
|
||||
forward to expanding my deployment of it by deploying my own <a href="https://codeberg.org/Codeberg/pages-server/">“Pages”
|
||||
server</a>. This will allow me to
|
||||
deploy my static sites on my own infrastructure. I’m also working on an “Action”
|
||||
for leveraging <a href="https://itch.io/docs/butler/">butler</a> to publish games I publish
|
||||
the source code for from my Forge to Itch.io.</p>
|
||||
|
||||
<p>In preparation for both my own use, and my business use, I need to learn more
|
||||
about Nextcloud. I’m also working on building a custom WordPress Docker
|
||||
container that relies on SQLite instead of MySQL.</p>
|
||||
|
||||
<p>Hovering about all this is backups and monitoring, both of which I sprinkle into
|
||||
my learning voyage. I’m looking forward to writing up some documentation about
|
||||
my implementation.</p>
|
||||
|
||||
<h2 id="entrepreneurship">Entrepreneurship</h2>
|
||||
|
||||
<p>I’m happy to report I was accepted into New York’s Self-Employment Assistance
|
||||
Program, <a href="https://dol.ny.gov/SEAP">SEAP</a>. I will be starting a business offering
|
||||
managed online services, such as website design and deployment, personal cloud,
|
||||
and email. I would like to offer these services to local small businesses and
|
||||
not-for-profits. I think of it as “Silicon Valley experience” at reasonable,
|
||||
local prices. I’m excited to dive into the parts I’m not very familiar with,
|
||||
namely the business side of things. I have extensive technical experience and
|
||||
mastery, but I lack any significant business experience.</p>
|
||||
|
||||
<h2 id="gaming">Gaming</h2>
|
||||
|
||||
<p>I’ve started a new playthrough of <a href="https://en.wikipedia.org/wiki/Darkest_Dungeon">Darkest
|
||||
Dungeon</a>. It’s mildly
|
||||
frustrating, but mostly fun. I have fun yelling at the game; it’s like stress
|
||||
relief. I’ve been generally successful, but the Crimson Court has been very
|
||||
rough to me. It is a game about challenges and loss, though, so nothing
|
||||
unexpected.</p>
|
||||
|
||||
<p>I’ve continued my play-through of
|
||||
<a href="https://en.wikipedia.org/wiki/Sundered">Sundered</a>, though have put it down for
|
||||
a bit. I’m playing it on my Steam Deck using <a href="https://lutris.net/">Lutris</a>, and
|
||||
it works very well. Lutris continues to impress me, and I want to try writing an
|
||||
installer for a game.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2024-08-19
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
263
2024/09/24/life-in-progress-september.html
Normal file
263
2024/09/24/life-in-progress-september.html
Normal file
|
@ -0,0 +1,263 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Life in Progress: September, 2024</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2024/09/24/life-in-progress-september.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="life-in-progress-as-of-2024-09-24">Life In Progress, as of 2024-09-24</h1>
|
||||
|
||||
<ul>
|
||||
<li>New hardware: laptop, phone, and NAS</li>
|
||||
<li><strong>TWO</strong> game jams!</li>
|
||||
<li>Finishing up Morrowind</li>
|
||||
<li>SEAP/Self-Employment Progress</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="new-hardware">New Hardware</h2>
|
||||
|
||||
<h3 id="framework-laptop">Framework Laptop</h3>
|
||||
|
||||
<p>This new <a href="https://frame.work">Framework</a> is great! I’ve only had it for a few
|
||||
weeks, but it is wonderful. I’ve been slowly sync’ing and migrating workflows
|
||||
from my various existing options to it. Being able to work for multiple hours
|
||||
without worrying about battery life is nice.</p>
|
||||
|
||||
<p>Previously, the Chromebook I have was my go-to remote personal macine.
|
||||
Considering its age, and the inherent limitations of a Chromebook, it served me
|
||||
better than I ever could have hoped. However, I knew it’s time was drawing
|
||||
near, and the Dell I got as part of my work severance was not going to cut it.
|
||||
Considering I’m starting a business doing technology, I needed a reliable,
|
||||
“all-day” machine with Linux. The ARM-based Macs are incredibly tempting, but
|
||||
I am not a fan of Mac. I’ve been eyeing Framework for a bit now, and their
|
||||
newest 13-inch model with AMD components checked enough of the boxen for me to
|
||||
dive in.</p>
|
||||
|
||||
<h3 id="phone">Phone</h3>
|
||||
|
||||
<p>For a while I’ve been eyeing Mint Mobile. In the US, they have a plan offering
|
||||
unlimited text and talk, plus 5 GB of data, for $15 per month. I generally use
|
||||
less than 1 GB of streaming data, so this seemed like a clearly better option
|
||||
than the $30+ I was paying for Google Fi. When I decided to switch, they had an
|
||||
incredible deal offering a Google Pixel 9 plus a year’s service for a great
|
||||
price, so I not only switched carrier, I also snagged a new phone! I had a
|
||||
Samsung S21, which was more than sufficient for my needs, so switching isn’t
|
||||
quite as significant as with the laptop, but it’s still a nice new experience.
|
||||
The OS and environment on the Pixel is much nicer than Samsung phones, so
|
||||
that’s quite the plus!</p>
|
||||
|
||||
<h3 id="nas">NAS</h3>
|
||||
|
||||
<p>I bought a 2-bay Synology NAS from a friend a few months ago, and with the
|
||||
myriad other changes, decided to set it up proper. I setup
|
||||
<a href="https://www.navidrome.org/">Navidrome</a> for audio, and <a href="https://jellyfin.org/">Jellyfin</a> for video. I had previously used Navidrome, then
|
||||
switched to Jellyfin for both audio and video, but with the new phone comes a
|
||||
return to form. I like <a href="https://gitlab.com/ultrasonic/ultrasonic">Ultrasonic</a>,
|
||||
and Navidrome plays nicely with it.</p>
|
||||
|
||||
<p>The other big additions with the NAS is more backup scripts, and also pulling
|
||||
down some YouTube series I like for local copies. More details in a full post.</p>
|
||||
|
||||
<h2 id="game-making">Game Making</h2>
|
||||
|
||||
<p>Two game jams! One for the entire month of September, <a href="https://itch.io/jam/clone-jam-game-a-month">Clone
|
||||
Jam</a>, and a
|
||||
<a href="https://itch.io/jam/mini-jam-167-cyber">Mini-Jam</a>. For the Clone Jam, I was
|
||||
working on building a ray-casting-based dungeon scavenger, similar to “Legend
|
||||
of Grimrock”, but with less combat. However, while I have made great progress
|
||||
understanding how ray-casting works, and how to implement it, I won’t have time
|
||||
to finish such a game. That knowledge won’t go to waste, though! There’s a
|
||||
game-jam at the end of October where I intend to make use of it. Instead, I’ll
|
||||
be touching-up and submitting a clone of Minesweeper I made:
|
||||
<a href="https://vagabondazulien.itch.io/ticsweeper">TICsweeper</a>.</p>
|
||||
|
||||
<p>For the Mini-Jam, I decided to make a “runner” type game: you maneuver your
|
||||
sprite to collect and/or avoid certain projectiles. I also made this game in
|
||||
the <a href="https://tic80.com">TIC-80</a>. While I didn’t pull any all-nighters, focusing
|
||||
on a single project for 72-hours with as little down-time as possible is still
|
||||
quite exhausting! My submission was called
|
||||
<a href="https://vagabondazulien.itch.io/runr">RUNR</a>. It ranked 48th out of 66
|
||||
submissions, which is honestly disappointing, but not enough to demotivate me
|
||||
from continuing my game-making journey!</p>
|
||||
|
||||
<h2 id="game-playing">Game Playing</h2>
|
||||
|
||||
<p>I finally finished my play-through of Morrowind, and one of its two expansions,
|
||||
Tribunal. (Note: before “DLC”, new game content for existing games was
|
||||
distributed like the game itself, on a piece of data-storing media, such as a
|
||||
CD. These were called “expansion packs.”) I have thoroughly enjoyed my time in
|
||||
The Elder Scrolls III, and I definitely understand why many claim it as their
|
||||
favorite. I will talk more about my experience in a full post, just like I did
|
||||
for my recent Fallout 3 replay (I mean, just like I <em>will</em>. I <em>WILL!</em>)</p>
|
||||
|
||||
<h2 id="business-time">Business Time</h2>
|
||||
|
||||
<p>Alas, while game making and playing are great uses of my time, they do not get
|
||||
me the resources I need to pay my bills. I continue to work on starting my own
|
||||
business. I’ve met with two mentors, one business and one technology, to help
|
||||
get me started and provide guidance. In fact, this week marks what I would
|
||||
consider the proper beginning of my business. With some dedication, I’ll have
|
||||
more exciting news to share about this next time!</p>
|
||||
|
||||
<h2 id="thats-all-for-now">That’s All For Now!</h2>
|
||||
|
||||
<p>I think the original intention of a “Now” page is to be less verbose, but I
|
||||
find the monthly cadence of a somewhat comprehensive update to be more
|
||||
appealing! Until next month!</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2024-09-24
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
264
2025/01/03/life-update.html
Normal file
264
2025/01/03/life-update.html
Normal file
|
@ -0,0 +1,264 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Life in Progress: January, 2025</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2025/01/03/life-update.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="life-in-progress-january-2025">Life in Progress: January, 2025</h1>
|
||||
|
||||
<p>My <a href="/now">now page</a> is growing too verbose. Instead, I’ll leave that page as a
|
||||
summary of what this/these page(s) will explore. I’ll start with a retrospective
|
||||
of 2024, up to now, the beginning of 2025. Maybe a bit of ambitions too.</p>
|
||||
|
||||
<h2 id="2024-retrospective">2024 Retrospective</h2>
|
||||
|
||||
<p>2024 was a significant year. The most notable change being that I was laid off
|
||||
in April. The remaining 8 months were quite nice. Before April, the year doesn’t
|
||||
feel much different or significant. From what I remember, I was stressed,
|
||||
unhappy, and overall dissatisfied with my situation. I was in the process of
|
||||
saving money to leave, when I was laid off and paid a generous (enough)
|
||||
severance. It’s nice when the universe solves problems.</p>
|
||||
|
||||
<p>Much of April and May was time spent decompressing. A bit too much drinking,
|
||||
from what I recall. I began receiving unemployment payments, and looking for
|
||||
jobs, though only half-heartedly. I was already decided I would start my own
|
||||
business. I also started my playthrough of <strong>Fallout 3</strong>.</p>
|
||||
|
||||
<p>At the end of May, I entered into a game jam, and made my first video game,
|
||||
<a href="https://vagabondazulien.itch.io/lander">L4-N-DER Training Simulator</a>. One thing
|
||||
I do remember from the beginning of the year was speaking with some friends
|
||||
about trying to publish a video game on Itch. I made the game using
|
||||
<a href="https://fennel-lang.org/">Fennel</a> and the <a href="https://www.love2d.org/">LÖVE 2D game
|
||||
engine</a>. It was incredibly rewarding, and a great
|
||||
learning experience. This game would be the first of 5 that I published on my
|
||||
Itch page this year.</p>
|
||||
|
||||
<p>Much of the summer was spent procrastinating starting my own business, and
|
||||
golfing. At the beginning of summer, in June, my grandmother passed away. She
|
||||
was about 2 weeks from her birthday, and so we round up and say she lived to 98.
|
||||
I spent some time helping to clean and clear up her house too. In the beginning
|
||||
of July I traveled to New York City to see Rezz. I also started properly
|
||||
exploring WordPress, and working to understand better the business I was still
|
||||
going to start. Around August, I began playing <strong>Morrowind</strong> for the first time.</p>
|
||||
|
||||
<p>In the fall is when I “got serious” about my business. I signed up for the New
|
||||
York State Self-Employment Assistance Program (SEAP), and through them signed up
|
||||
with SCORE to speak with a mentor and begin some small business training. I made
|
||||
my first WordPress site, for a relative (and for free). I also entered into 3
|
||||
more game jams during this period, publishing
|
||||
<a href="https://vagabondazulien.itch.io/ticsweeper">TICSweeper</a> (a Minesweeper clone
|
||||
mde with the TIC-80); <a href="https://vagabondazulien.itch.io/runr">RUNR</a> (another
|
||||
TIC-80 game); and <a href="https://vagabondazulien.itch.io/escape-the-crash">Escape The
|
||||
Crash</a>. <em>Escape</em> was based on
|
||||
some work of mine over the summer to better understand and implement ray-casting
|
||||
in the TIC-80, which I then translated for use in Fennel and LÖVE. At the end of
|
||||
fall, my remaining grandmother severely injured herself, placing her in town
|
||||
through the end of the year. For the second year in a row, much of the holidays
|
||||
would be spent visiting a rehabilitation center (the same one as my first
|
||||
grandmother’s). Since the pandemic, I don’t think I’ve had a “normal” holiday
|
||||
season.</p>
|
||||
|
||||
<p>At the end of the year, I formally started my business, <a href="https://www.niblock.tech">Niblock Technology
|
||||
Solutions</a>, and began working on websites for two
|
||||
additional clients. Exploring this new world has been exciting, and there are a
|
||||
lot of new challenges. I love working with others to solve problems, and I’m
|
||||
looking forward to it. I’m also beginning work on a second business idea for a
|
||||
game shop. I want to build a community space for people to play games, enjoy
|
||||
company, and relax. Rounding the year out was my first playthrough of <strong>Deus
|
||||
Ex</strong>.</p>
|
||||
|
||||
<h2 id="now-january-2025">Now: January, 2025</h2>
|
||||
|
||||
<p>Now. Plenty of plans and ambitions.</p>
|
||||
|
||||
<p>Easiest: I started a playthrough of <strong>Oblivion</strong>. Similar to <strong>Fallout 3</strong> and
|
||||
<strong>Morrowind</strong>, my goal is to complete the main story and all DLC’s. This time
|
||||
around, I explored a new modding setup, using <a href="https://lutris.net/">Lutris</a> to
|
||||
install and manage the game (from GOG), and all the modding tools. For all three
|
||||
of these games I want to write up a brief retrospective about my experiences and
|
||||
any of the setup required for playing them on Linux. I already have two articles
|
||||
for Oblivion (<a href="/2021/11/20/oblivion-linux.html">Part 1</a>, <a href="/2021/12/09/oblivion-linux-2.html">Part
|
||||
2</a>) detailing using Steam and Proton. I think
|
||||
the Lutris approach is a bit nicer.</p>
|
||||
|
||||
<p><em>Escape The Crash</em> was fun to make, but it’s not done yet. I want to add in a
|
||||
floor, sound effects, a skybox, and objectives. And an actual ending condition.</p>
|
||||
|
||||
<p>Game-making in general I want to continue. I’ve started looking into the
|
||||
<a href="https://dragonruby.org/">DragonRuby game engine</a>. I also want to learn (more)
|
||||
Godot. I have no shortage of ideas, only my regular struggles with motivation
|
||||
and focus.</p>
|
||||
|
||||
<p>I’ve fallen into a few bad habits, and my health is worse for them. Its absurdly
|
||||
easy for me to put on weight, and equally as difficult to lose it again. At my
|
||||
heaviest I was over 320 pounds, and I’m now at a much better 240. I want to
|
||||
bring that number down to 200, but I also want to remove as much significance
|
||||
from that number as I can. It should be a metric, not a grade.</p>
|
||||
|
||||
<p>I’ve also set for myself several music goals. I want to get better at
|
||||
sight-reading, and so I have a goal to read a new piece of music each week. I
|
||||
also want to explore music production, and try making my own 45-60 minute mix.</p>
|
||||
|
||||
<p>There are the business goals. I need to have an income that supports my
|
||||
lifestyle, which means more clients and (hopefully) more businesses!</p>
|
||||
|
||||
<p>Finally, I want to write more. I think about writing, but rarely follow-through.
|
||||
As all my other ambitions develop, sharing them with the world will help me
|
||||
formally catalog my successes. Plus, if I have something useful and helpful to
|
||||
share, then I want to!</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2025-01-03
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
470
2025/01/09/oblivion-lutris.html
Normal file
470
2025/01/09/oblivion-lutris.html
Normal file
|
@ -0,0 +1,470 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Oblivion on Linux: Lutris Edition</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/2025/01/09/oblivion-lutris.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1 id="oblivion-on-linux-lutris-edition">Oblivion on Linux: Lutris Edition</h1>
|
||||
|
||||
<p>I love Oblivion. I’ve written before about setting up Oblivion on Linux using
|
||||
the Steam version, Proton and a handful of aliases: <a href="/2021/11/20/oblivion-linux.html">Part
|
||||
1</a> covers most of the tooling setup, and <a href="/2021/12/09/oblivion-linux-2.html">Part
|
||||
2</a> covers some mods I liked. This setup
|
||||
works, though it is a bit of a hassle to manage. It requires running the tools
|
||||
individually through aliases from a terminal, which can be intimidating and
|
||||
unfriendly. It also requires the Steam version of Oblivion.</p>
|
||||
|
||||
<p>When I recently decided to return to Cyrodiil and close some gates, I wanted to
|
||||
review my setup, and also my mod list. I discovered that Wrye Bash now does have
|
||||
a native Linux application (as does LOOT!). However, I opted to stick with using
|
||||
Wine and Windows versions of these applications due to a complication of modding
|
||||
Oblivion in general: the case-sensitive nature of the filesystem. On Linux, the
|
||||
filesystem is case-sensitive; on Windows, the filesystem is <strong>not</strong>
|
||||
case-sensitive. For modding, this means if you extract an archive with a
|
||||
<code class="language-plaintext highlighter-rouge">Data/meshes</code> folder, but your current setup has a <code class="language-plaintext highlighter-rouge">Data/Meshes</code> directory, on
|
||||
Linux you’ll end up with two directories: <code class="language-plaintext highlighter-rouge">Data/Meshes</code> <em>and</em> <code class="language-plaintext highlighter-rouge">Data/meshes</code>.
|
||||
There are solutions to this problem on Linux, namely using an EXT-4 filesystem.
|
||||
I don’t feel like reformatting my disks, and so I’ll let Wine handle it. It may
|
||||
mean a slight performance hit, but it’s Oblivion - there are <strong>always</strong>
|
||||
performance hits. If there aren’t performance hits, then you haven’t modded the
|
||||
game enough yet.</p>
|
||||
|
||||
<h2 id="setup-game">Setup: Game</h2>
|
||||
|
||||
<p>I’ll be using <a href="https://lutris.net">Lutris</a> to handle installing and launching
|
||||
the game. No more terminal aliases! I’m also using the <a href="https://www.gog.com/en/game/elder_scrolls_iv_oblivion_game_of_the_year_edition_deluxe_the">GOG version of
|
||||
Oblivion</a>.
|
||||
Lutris allows you to link your GOG account, and easily install games using Wine
|
||||
(or native versions, if available!). In Lutris, I install the game to my
|
||||
preferred destination, using the default GOG Wine install script. After
|
||||
installation, I launch the game once to generate some initial configuration
|
||||
files, and verify things work as expected. Before the next steps, there is a
|
||||
significant change: the Wine version. In order to use the latest version of Wrye
|
||||
Bash through Lutris, I had to change the Wine version from my Lutris default,
|
||||
<em>wine-ge-8-26</em>, to my latest system version, 9.22. There seems to be a Windows
|
||||
API which Wrye Bash relies upon which isn’t handled well in Wine versions
|
||||
previous to 9.</p>
|
||||
|
||||
<p>Lutris can also install from downloaded GOG installers, without having to link
|
||||
accounts. Make sure to download all the parts (for Oblivion, there are 3: a
|
||||
small EXE, and two BIN files). When installing, make sure all the downloaded
|
||||
files are in the same directory. In Lutris, click the <code class="language-plaintext highlighter-rouge">+</code> button to add a new
|
||||
game, and select “Install a Windows game from an executable.” Name the game as
|
||||
you wish, and add identifier
|
||||
<code class="language-plaintext highlighter-rouge">the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe</code> for the GOG
|
||||
version. It’ll pull down nice looking images. On the next screen, click the
|
||||
<code class="language-plaintext highlighter-rouge">Install</code> button next to “Setup file”, choose your desired directory, and then
|
||||
select the EXE downloaded from the three files above. Lutris will create the
|
||||
Wine prefix, and load the GOG Installer. Make note of the directory you chose
|
||||
above for installation (default will be in the Lutris game library directory,
|
||||
<code class="language-plaintext highlighter-rouge">Lutris Hamburger Menu</code> -> <code class="language-plaintext highlighter-rouge">Preferences</code> -> <code class="language-plaintext highlighter-rouge">Storage</code> -> <em>Game Library</em>), and
|
||||
substitute it accordingly below.</p>
|
||||
|
||||
<p>Assuming everything is setup and running, the last step here is to note where
|
||||
Lutris installed the game. The path to the directory will differ, but the
|
||||
directory structure should be similar to the below. The Lutris “Directory”
|
||||
(Right-Click -> Configure) value will bring you to the Wine directory (with
|
||||
<code class="language-plaintext highlighter-rouge">drive_c</code>), and from there will be the <code class="language-plaintext highlighter-rouge">GOG Games</code> directory (or possibly
|
||||
renamed; this can be changed during the GOG install process), and then the
|
||||
<code class="language-plaintext highlighter-rouge">Oblivion</code> directory.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Lutris
|
||||
|-> gog
|
||||
|-> the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe
|
||||
|-> drive_c
|
||||
|-> GOG Games
|
||||
|-> Oblivion
|
||||
|- Data
|
||||
|- Oblivion.exe
|
||||
|- ...
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="xobse">xOBSE</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/llde/xOBSE">Project Link</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/37952">Nexus Links</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The Oblivion Script Extender is required for many mods, and should be considered
|
||||
essential for anything beyond a strict vanilla playthrough. Download the latest
|
||||
version, and extract it to the <code class="language-plaintext highlighter-rouge">Oblivion</code> directory. When you launch Wrye Bash
|
||||
(covered next), in the lower-left corner, on the icon bar, should be a green
|
||||
checkbox. Hovering over it will notify you that OBSE is enabled. Clicking that
|
||||
box will toggle OBSE. Generally, make sure it is enabled (checked).</p>
|
||||
|
||||
<p>At this point, before any other tools, when you double-click/Play Oblivion, it
|
||||
will launch the purely vanilla Oblivion that was installed above. To use OBSE,
|
||||
right-click Oblivion in Lutris, choose <em>Configure</em>, and on the “Game Options”
|
||||
tab, change the <em>Executable</em> by clicking the button with three dots (labeled
|
||||
“Select a file”) to <code class="language-plaintext highlighter-rouge">obse_loader.exe</code>. Save the changes, and re-launch.</p>
|
||||
|
||||
<h2 id="pre-setup-tools">Pre-Setup: Tools</h2>
|
||||
|
||||
<p>Before setting up the modding tools, it is required to run Oblivion once. This
|
||||
will generate the INI file.</p>
|
||||
|
||||
<p>I also recommend adding the Wrye Bash <code class="language-plaintext highlighter-rouge">bash.ini</code> file detailed below before
|
||||
running Wrye Bash for the first time. By declaring where the executable for
|
||||
Oblivion is, Wrye Bash won’t try to automatically find it, which can cause some
|
||||
troubles or confusion.</p>
|
||||
|
||||
<h2 id="setup-tools">Setup: Tools</h2>
|
||||
|
||||
<p>I’ll be using the following tools. When possible, download the stand-alone
|
||||
version of the tool. To make things easy, I use the <code class="language-plaintext highlighter-rouge">GOG Games</code> directory for
|
||||
all the tools.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>drive_c
|
||||
|-> GOG Games
|
||||
|- BethINI
|
||||
|- LOOT
|
||||
|- Mods
|
||||
|- Mopy
|
||||
|- Oblivion
|
||||
|- TES4Edit
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="wrye-bash">Wrye Bash</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/wrye-bash/wrye-bash">Project Link</a></li>
|
||||
<li><a href="https://wrye-bash.github.io/">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/22368">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Mod manager, and <strong>everything else</strong> launcher in this setup. One of the most
|
||||
exciting results of this setup is handling almost all modding management through
|
||||
the Wrye Bash UI. From the Project Link, download the stand-alone executable
|
||||
from the releases. I extract it to the <code class="language-plaintext highlighter-rouge">GOG Games</code> directory, which will create
|
||||
a <code class="language-plaintext highlighter-rouge">Mopy</code> directory. Within that will be the executable, <code class="language-plaintext highlighter-rouge">Wrye Bash.exe</code>. Next,
|
||||
in the <code class="language-plaintext highlighter-rouge">Mopy</code> directory, copy the <code class="language-plaintext highlighter-rouge">bash_default.ini</code> file to <code class="language-plaintext highlighter-rouge">bash.ini</code>. Make
|
||||
the following changes (or replace <code class="language-plaintext highlighter-rouge">bash.ini</code> with this information):</p>
|
||||
|
||||
<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[General]</span>
|
||||
<span class="c">; -- Path to mod directory.
|
||||
; These are relative to the Oblivion directory.
|
||||
</span><span class="py">sOblivionMods</span><span class="p">=</span><span class="s">..</span><span class="se">\M</span><span class="s">ods</span>
|
||||
<span class="py">sBashModData</span><span class="p">=</span><span class="s">..</span><span class="se">\M</span><span class="s">ods</span><span class="se">\B</span><span class="s">ash Mod Data</span>
|
||||
<span class="py">sInstallersData</span><span class="p">=</span><span class="s">..</span><span class="se">\M</span><span class="s">ods</span><span class="se">\B</span><span class="s">ash Installers</span><span class="se">\B</span><span class="s">ash</span>
|
||||
|
||||
<span class="c">; -- Path to the Oblivion directory.
|
||||
; "C:" here is drive_c on our filesystem.
|
||||
</span><span class="py">sOblivionPath</span><span class="p">=</span><span class="s">C:</span><span class="se">\G</span><span class="s">OG Games</span><span class="se">\O</span><span class="s">blivion</span>
|
||||
|
||||
<span class="c">; -- User directory stuff.
|
||||
; "C:" here is drive_c on our filesystem.
|
||||
; Make sure to replace YOUR-USERNAME with your username
|
||||
</span><span class="py">sUserPath</span><span class="p">=</span><span class="s">C:</span><span class="se">\u</span><span class="s">sers</span><span class="se">\Y</span><span class="s">OUR-USERNAME</span>
|
||||
<span class="py">sPersonalPath</span><span class="p">=</span><span class="s">C:</span><span class="se">\u</span><span class="s">sers</span><span class="se">\Y</span><span class="s">OUR-USERNAME</span><span class="se">\D</span><span class="s">ocuments</span>
|
||||
<span class="py">sLocalAppDataPath</span><span class="p">=</span><span class="s">C:</span><span class="se">\u</span><span class="s">sers</span><span class="se">\Y</span><span class="s">OUR-USERNAME</span><span class="se">\A</span><span class="s">ppData</span><span class="se">\L</span><span class="s">ocal</span>
|
||||
|
||||
<span class="nn">[Tool Options]</span>
|
||||
<span class="c">; -- TES4Edit
|
||||
; Path is relative to the Oblivion directory.
|
||||
</span><span class="py">sTes4EditPath</span><span class="p">=</span><span class="s">..</span><span class="se">\T</span><span class="s">ES4Edit</span><span class="se">\T</span><span class="s">ES4Edit.exe</span>
|
||||
|
||||
<span class="c">; -- TES4LODGen
|
||||
; Path is relative to the Oblivion directory.
|
||||
</span><span class="py">sTes4LodGenPath</span><span class="p">=</span><span class="s">..</span><span class="se">\T</span><span class="s">ES4LodGen</span><span class="se">\T</span><span class="s">es4LODGen.exe</span>
|
||||
|
||||
<span class="c">; -- LOOT
|
||||
; Path is relative to the Oblivion directory.
|
||||
</span><span class="py">sLOOT</span><span class="p">=</span><span class="s">..</span><span class="se">\L</span><span class="s">OOT</span><span class="se">\L</span><span class="s">OOT.exe</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>In this configuration, the relative paths are relative to the <code class="language-plaintext highlighter-rouge">Oblivion</code>
|
||||
directory (where the game executable is). For all remaining tool setup, modify
|
||||
the paths in this configuration to match the paths for the tool executable (or,
|
||||
rename the tool directories, which is what I prefer).</p>
|
||||
|
||||
<p>This is where the magic happens: within Lutris, right-click Oblivion and choose
|
||||
<em>Configure</em>. On the “Game Options” tab, change the <em>Executable</em> by clicking the
|
||||
button with three dots (labeled “Select a file”), and choose the <code class="language-plaintext highlighter-rouge">Wrye Bash.exe</code>
|
||||
executable in the <code class="language-plaintext highlighter-rouge">Mopy</code> directory. Save the configuration, and
|
||||
double-click/Play Oblivion. This time, Wrye Bash will start up (<strong>Remember:</strong>
|
||||
This will not work on versions of Wine older than 9!).</p>
|
||||
|
||||
<p>At this point, when you want to play Oblivion, you will open Lutris, and launch
|
||||
“Oblivion.” This will launch Wrye Bash. You can then click the Oblivion icon in
|
||||
the lower-left icon bar to launch the game. As additional tools are configured,
|
||||
they will appear in the lower-left icon bar (everything except BethINI). To use
|
||||
the tool, you’ll run it from Wrye Bash.</p>
|
||||
|
||||
<h3 id="loot">LOOT</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/loot/loot">Project Link</a></li>
|
||||
<li><a href="https://loot.github.io/">Homepage</a></li>
|
||||
</ul>
|
||||
|
||||
<p>LOOT handles mod load order. Another application with a native Linux version. I
|
||||
had previous run into some bugs, but everything looks to work as expected now.
|
||||
Despite that, I still download and use the stand-alone Windows version (the
|
||||
archive from the releases, not the EXE). I extract it to my <code class="language-plaintext highlighter-rouge">GOG Games</code>
|
||||
directory, and rename the directory (or edit the <code class="language-plaintext highlighter-rouge">bash.ini</code> file) so the
|
||||
executable is where my Wrye Bash configuration expects it.</p>
|
||||
|
||||
<p>If setup properly, when you run Wrye Bash, in the lower-left corner will be a
|
||||
bar full of icons, one of which will be a little treasure chest. Clicking it
|
||||
will launch LOOT. From there, sort the order, and then close LOOT. Wrye Bash
|
||||
will refresh, and you can continue on. LOOT will also notify you of any “dirty”
|
||||
mods, which can be cleaned using TES4Edit (see below).</p>
|
||||
|
||||
<h3 id="tes4edit">TES4Edit</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/TES5Edit/TES5Edit">Project Link</a></li>
|
||||
<li><a href="https://tes5edit.github.io/">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/11536">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>I’m still not a mod creator, so my uses of TES4Edit are limited to “quick
|
||||
cleaning.” From the project page or Nexus, download the latest version, and
|
||||
extract the archive to the <code class="language-plaintext highlighter-rouge">GOG Games</code> directory. Rename the directory or edit
|
||||
the <code class="language-plaintext highlighter-rouge">bash.ini</code> file so Wrye Bash can find it; restart Wrye Bash to verify. Wrye
|
||||
Bash doesn’t include a dedicated short-cut for the “Quick Auto Clean” option,
|
||||
instead you have to right-click on the TES4Edit short-cut (or the TES4LodGen
|
||||
short-cut), and choose “Quick Auto Clean”. Choose the mod to clean from the
|
||||
list, click OK, and let the program do its work.</p>
|
||||
|
||||
<h3 id="tes4lodgen">TES4LODGen</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/TES5Edit/xLODGen">Project Link</a></li>
|
||||
<li><a href="https://tes5edit.github.io/docs/16-xLODGen.html">Homepage</a></li>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/15781?tab=description">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>This will generate LOD files ahead of time, allowing for more distant objects to
|
||||
be shown as you adventure around Cyrodiil. Download the archive, and extract it
|
||||
to where Wrye Bash expects it, either changing the directory name or updating
|
||||
the <code class="language-plaintext highlighter-rouge">bash.ini</code> file accordingly. After mod installation is complete, click the
|
||||
icon from the icon bar to generate the LOD files.</p>
|
||||
|
||||
<h3 id="bethini">BethINI</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.nexusmods.com/oblivion/mods/46440">Nexus Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">BethINI</code> helps manage the “oblivion.ini” file, providing sane options and a
|
||||
wizard for configuration. This is the only tool that is not run from Wrye Bash.
|
||||
However, it’s still pretty easy to work with. Download the stand-alone archive,
|
||||
extract it to the <code class="language-plaintext highlighter-rouge">GOG Games</code> directory.</p>
|
||||
|
||||
<p>To run the tool, in Lutris single-click on Oblivion. A bar should appear with
|
||||
some additional details about Oblivion, including some buttons: one will say
|
||||
“Play”, and one will look like a wine glass; each will have a small button with
|
||||
an up-facing arrow. Click the arrow button next to the wine glass button, and
|
||||
select “Run EXE inside Wine prefix.” Navigate into <code class="language-plaintext highlighter-rouge">drive_c</code>, then <code class="language-plaintext highlighter-rouge">GOG Games</code>,
|
||||
and into the directory you just set up for BethINI, and select <code class="language-plaintext highlighter-rouge">BethINI.exe</code>.</p>
|
||||
|
||||
<p>Wrye Bash does allow for custom application short-cuts, but it requires creating
|
||||
a Windows shortcut <code class="language-plaintext highlighter-rouge">.lnk</code> file, and I cannot figure out an easier way to do
|
||||
that than to just run it from Lutris.</p>
|
||||
|
||||
<h2 id="post-setup-tools">Post-Setup: Tools</h2>
|
||||
|
||||
<p>Verify each tool runs as expected. Conveniently, all the Bethesda DLCs are
|
||||
“dirty,” so LOOT will notify you, and then you can clean them. Run BethINI,
|
||||
generate LOD files, and run the game from Wrye Bash. Praise Todd.</p>
|
||||
|
||||
<h2 id="mods">Mods</h2>
|
||||
|
||||
<p>Wrye Bash on Windows can install mods from an archive, but with this setup that
|
||||
functionality is unreliable. Instead, I extract the mod archives manually before
|
||||
installing them with Wrye Bash. For each mod that I want to use, I’ll create a
|
||||
directory in the <code class="language-plaintext highlighter-rouge">Mods -> Bash Installers</code> directory, and extract the mod
|
||||
archive into that directory. Then, within Wrye Bash, on the “Installers” tab, I
|
||||
can install mods as expected.</p>
|
||||
|
||||
<p>For actually using Wrye Bash, I recommend <a href="https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-1-installation-and-installers-tab">laulajatar’s
|
||||
guide</a>.
|
||||
Obviously, you can skip the installation steps for both Wrye Bash and OBSE.
|
||||
There is also the <a href="https://wrye-bash.github.io/docs/Wrye%20Bash%20General%20Readme.html">Wrye Bash
|
||||
Manual</a>.</p>
|
||||
|
||||
<h2 id="lutris-setup-problems">Lutris Setup: Problems</h2>
|
||||
|
||||
<p>The significant problem with this setup is no way to alt-tab away from the game.
|
||||
To make things even more inconvenient, playing in a windowed mode also doesn’t
|
||||
work, and shows only a black screen with audio. I haven’t done an exhaustive
|
||||
trial of options and mods yet to try and fix this, because it isn’t a major
|
||||
problem to me.</p>
|
||||
|
||||
<p>The second inconvenience is as I mentioned above, with Wrye Bash not installing
|
||||
mods directly from archives. Again, not a major problem to me.</p>
|
||||
|
||||
<p>I suspect that both of the problems can be resolved with some Wine tweaks.</p>
|
||||
|
||||
<h2 id="lutris-setup-benefits">Lutris Setup: Benefits</h2>
|
||||
|
||||
<p>What this setup gets right is ease of use, and ease of replication. All tools
|
||||
(except BethINI, for now) and the game are run from Wrye Bash. No juggling
|
||||
multiple application entries, aliases, or special setups. Plus, all tools, mods,
|
||||
and the game itself are all within the Lutris directory, making multiple setups
|
||||
a breeze: just copy the directory. In Lutris, you can then duplicate the entry
|
||||
(Right-Click -> Duplicate), and edit the executable (Right-Click -> Configure ->
|
||||
“Game options” tab -> <em>Executable</em>) to point to the new directory.</p>
|
||||
|
||||
<h2 id="lutris-setup-next-steps">Lutris Setup: Next-Steps</h2>
|
||||
|
||||
<p>The most useful next step would be automating this process, by building a Lutris
|
||||
install script. Also, resolving the alt-tab and windowed problems above.</p>
|
||||
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
2025-01-09
|
||||
<br />
|
||||
[
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,14 +1,68 @@
|
|||
<footer>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Page Not Found</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/404.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<h1 id="page-not-found">Page Not Found</h1>
|
||||
|
||||
<p>The content you requested could not be found. Click <a href="https://www.theinternetvagabond.com">here</a> to
|
||||
return to the homepage.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
{% for topic in site.topics %}
|
||||
<div><a href="/topics/{{ topic.title }}">{{ topic.title }}</a></div>
|
||||
{% endfor %}
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="{{ site.url }}/now">Life In Progress</a></div>
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
|
@ -16,7 +70,7 @@
|
|||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="{{ site.url }}/feed.xml"
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
|
@ -87,3 +141,7 @@
|
|||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
10
404.md
10
404.md
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
permalink: /404.html
|
||||
layout: corrupt_index
|
||||
tabtitle: Page Not Found
|
||||
---
|
||||
|
||||
# Page Not Found
|
||||
|
||||
The content you requested could not be found. Click [here]({{ site.url }}) to
|
||||
return to the homepage.
|
32
Gemfile
32
Gemfile
|
@ -1,32 +0,0 @@
|
|||
source "https://rubygems.org"
|
||||
# Hello! This is where you manage which Jekyll version is used to run.
|
||||
# When you want to use a different version, change it below, save the
|
||||
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
|
||||
#
|
||||
# bundle exec jekyll serve
|
||||
#
|
||||
# This will help ensure the proper Jekyll version is running.
|
||||
# Happy Jekylling!
|
||||
gem "jekyll", "~> 4.3.3"
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
gem "minima", "~> 2.5"
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
# If you have any plugins, put them here!
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-feed", "~> 0.12"
|
||||
end
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library.
|
||||
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||
gem "tzinfo", "~> 1.2"
|
||||
gem "tzinfo-data"
|
||||
end
|
||||
|
||||
# Performance-booster for watching directories on Windows
|
||||
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
|
||||
|
||||
|
||||
gem "webrick", "~> 1.8"
|
84
Gemfile.lock
84
Gemfile.lock
|
@ -1,84 +0,0 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.2.3)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.16.3)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (3.25.2)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-feed (0.17.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-seo-tag (2.8.0)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.4)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.6)
|
||||
rouge (4.2.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.70.0-x86_64-linux-musl)
|
||||
google-protobuf (~> 3.25)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux-musl
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (~> 4.3.3)
|
||||
jekyll-feed (~> 0.12)
|
||||
minima (~> 2.5)
|
||||
tzinfo (~> 1.2)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1.1)
|
||||
webrick (~> 1.8)
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.5
|
|
@ -1 +0,0 @@
|
|||
url: http://localhost:4000
|
26
_config.yml
26
_config.yml
|
@ -1,26 +0,0 @@
|
|||
url: https://www.theinternetvagabond.com
|
||||
title: "The Internet Vagabond"
|
||||
author: "Bill Niblock"
|
||||
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
|
||||
collections:
|
||||
topics:
|
||||
output: true
|
||||
|
||||
defaults:
|
||||
-
|
||||
scope:
|
||||
path: ''
|
||||
type: "posts"
|
||||
values:
|
||||
layout: "corrupt_post"
|
||||
author: "Bill Niblock"
|
||||
-
|
||||
scope:
|
||||
path: ''
|
||||
type: "topics"
|
||||
values:
|
||||
layout: "corrupt_index"
|
||||
permalink: "/topics/:name"
|
|
@ -1,92 +0,0 @@
|
|||
We Own the Sky
|
||||
|
||||
Idris is a gas giant, about twice the size of Jupiter from the Sol system,
|
||||
sporting 12 moons, 8 of which are inhabited. The giant itself is home to several
|
||||
significant and successful corporate air colonies; masses of metal platforms and
|
||||
tubes seemingly floating on the seas of gas. One of these colonies in particular
|
||||
was the cause for my visit to Idris, and was owned by Twin Suns Trading and
|
||||
Fabricators. Twin Suns was primarily an interstellar trading company, before it
|
||||
cornered the moon and colony specific trading around Idris, and had made a good
|
||||
fortune doing so. Recently, they've reinvested much of that fortune into
|
||||
fabrication, providing the smaller corp colonies with accessible parts,
|
||||
prototypes, and cheaper transportation through bundled deals. Long story short,
|
||||
Twin Suns has made many enemies, and many profits around Idris. I was about to
|
||||
add to the list of the former.
|
||||
|
||||
This job was called in specifically for the third Suns colony, gravity-locked to
|
||||
the lower-left quadrant of the giant. It was their newest establishment, built
|
||||
primarily with the highest spec'd parts they could fab, and outsourcing a few
|
||||
parts to ensure the best tech. Suns was promoting it as their next-generation
|
||||
R&D lab, focused on low-energy propellants for their trading ships. My client
|
||||
isn't convinced. According to them, an unusually high number of shipments were
|
||||
being received, unscheduled and unmarked, at the lab. Reports from inside
|
||||
sources say the shipments contain some kind of living thing, making almost human
|
||||
noises. One source swears he heard someone crying for help. That was enough to
|
||||
pique my interest, but the client was also offering a good sum to investigate
|
||||
these shipments, and find not only their contents, but the source. Considering
|
||||
Termus, Idris' 4th moon, was reknown for their fab parts for my ship model, a
|
||||
Tesserell CR22 Templar, I accepted the job and made for the system.
|
||||
|
||||
After dropping off Warden, my ship, for parts, I made my way to Vermus, Idris'
|
||||
third moon. Covered in bars and clubs, Vermus had my best chance of finding some
|
||||
information about the Suns' new colony. I tried a few places before finding
|
||||
Gemini, a not-so-clever allusion to Twin Suns, and packed with Suns employees,
|
||||
old and new. After a bit of watching, and a bit of questions, and too many
|
||||
drinks, I was able to get some information out of two recently retired Suns
|
||||
workers. They had finished their careers on the new colony, and were let go with
|
||||
generous pensions, so long as they kept what they saw to themselves. Once they
|
||||
said that, they realized they were breaking that promise, but not before I got a
|
||||
few other details. The colony is for R&D, they said, but not only for
|
||||
propellant. One said they saw some animals being shipped onto the colony, and
|
||||
the other swore he heard human crying coming from one of the wings. After they
|
||||
finished talking, I made for the door, feeling my welcome was very much over. I
|
||||
had gotten a few blocks away by the time the three goons from the bar made their
|
||||
move. Hired muscle from the Suns is much like hired muscle from anywhere else:
|
||||
big, intimidating, maybe an implant here or there. The trick with muscle, of any
|
||||
variety, is to avoid letting them use it.
|
||||
|
||||
"Something I can help you fine gentlemen with?", I said, trying to dress up my
|
||||
voice as a bit less sober than I was.
|
||||
|
||||
"We saw you talking with our boys. What you want, off-worlder? Why you snoopin'
|
||||
around our bar?", the smallest of the three said. The other two, equally as
|
||||
meaty, postured intimidatingly. Or tried to, at least.
|
||||
|
||||
"Hey, man, I'm just drinking and seeing sights! They felt like talking, so I
|
||||
listened! Nothing more to it. Now, I've got a date with this hottie I met at
|
||||
Pisces, and I don't wanna miss out on that!", I replied, slurring and stumbling
|
||||
a bit backward. Part bluff, part feint, I used the opportunity to activate my
|
||||
stun-gun, and start charging it. To take out any of them would take a full
|
||||
charge, about 15 seconds worth. Luckily, my ruse seems to have made a point.
|
||||
|
||||
"We don't want to see you around our parts no more, got it?", he said, "Or me
|
||||
and the boys'll have to make sure you don't come around our parts no more. Got
|
||||
it?"
|
||||
|
||||
I stumbled a bit more and dropped to ground, pretending to slip. My right hand
|
||||
finding the grip of my stun-gun, still hidden. The two meat sacks laughed.
|
||||
Three, feeling his job was complete, turned and led the trio back towards
|
||||
Gemini. I stood up, and made towards the shuttle.
|
||||
|
||||
===
|
||||
|
||||
Back to Termus
|
||||
- reclaim ship, fly to Formus, second moon
|
||||
- meeting with client for first time in person
|
||||
- client is attractive woman, focus on eyes
|
||||
- second run-in with Twin Suns merc force, first fight
|
||||
- escape from Formus, chase through city and atmosphere, into space
|
||||
|
||||
Idris Colony, Twin Suns 3
|
||||
- break into colony, find unmarked shipment, full of people
|
||||
- small fight with Twins Suns security force
|
||||
- third run-in with Twin Suns merc force, client gets captured
|
||||
- attempted escape from colony, shot down into planet
|
||||
|
||||
Captured client gets interrogated, tortured, thrown in with rest of shipment
|
||||
|
||||
Client escapes colony structure, gets stuck on external loading dock
|
||||
Client is forced from the dock, but it caught by Warden and Soldier
|
||||
Soldier and Warden rise to dock, and lock-down the colony
|
||||
|
||||
|
|
@ -1,161 +0,0 @@
|
|||
---
|
||||
tabtitle: "Fallout 3 on Linux"
|
||||
title: "Fallout 3 on Linux: Setup, Summary, and Suggestions"
|
||||
topics: [gaming]
|
||||
pub: ""
|
||||
short_desc: A relatively comprehensive review of my recent playthrough of Fallout 3.
|
||||
---
|
||||
|
||||
# Fallout 3 on Linux: Setup, Summary, and Suggestions
|
||||
- Objective: Play Fallout 3 with a "Vanilla+" setup of mods. Play through all
|
||||
the DLC, play through the main story.
|
||||
|
||||
To-Do:
|
||||
- Installation
|
||||
- Game files (Steam, GOG, other?)
|
||||
- Mod Organizer 2
|
||||
- Modding
|
||||
- Mods I used, and why
|
||||
- How-to Install and/or Configure
|
||||
- Game Review
|
||||
- Main Story
|
||||
- DLC (in order played)
|
||||
- The Pitt
|
||||
- Operation Anchorage
|
||||
- Point Lookout
|
||||
- Mothership Zeta
|
||||
- Broken Steel
|
||||
|
||||
# Notes
|
||||
|
||||
## Installation
|
||||
|
||||
### Base Game
|
||||
|
||||
### Mods
|
||||
|
||||
#### Mod Organizer 2
|
||||
|
||||
#### Mod List
|
||||
|
||||
#### Mods of Note
|
||||
|
||||
## Review
|
||||
|
||||
### Main Story
|
||||
|
||||
Overall, I think the main story of Fallout 3 is strong until the very last beat.
|
||||
The beginning tutorial, which is the first 10 to 40 minutes of play, takes place
|
||||
entirely within the starting Vault. It does a good job of the standard tutorial
|
||||
phase: teach the player how to interact with the game; walk the player through
|
||||
character creation; setup a few characters to care about. Then, the beginning
|
||||
ends, and there's the second phase of play: open world. Arguably, this is the
|
||||
remaining phase of all game-play. The player is free to explore, pursuing quests
|
||||
or ambitions as they whim. There are game mechanics to aid with decisions,
|
||||
generally quest markers and points-of-interest. The entire play time of a player
|
||||
could be spent on everything _except_ the main story, and it would still be a
|
||||
rewarding and enjoyable experience. However, my objective was to play the story
|
||||
of Fallout 3, and so I keep that as my main guiding star. This is not to say I
|
||||
didn't do any side-quests. I wandered far and wide; I actually discovered every
|
||||
location on the map! I enjoyed exploring the abandoned and ruined metro lines,
|
||||
finding small settlements or outposts, and coming across other wanderers and
|
||||
survivors who had setup their own little slices of the wasteland.
|
||||
|
||||
I want to specifically talk about the setting. The Capitol Wasteland, a
|
||||
fictionalized, augmented, scaled-down region around modern-day Washington DC,
|
||||
northern Virginia, and Maryland. The "sights" are there: all the monuments and
|
||||
museums (well, some _aren't_ there, like the White House!). There are two
|
||||
"layers" to the map. The first is the surface. There's the big, open-world
|
||||
Wasteland, which spans almost the entire map, excluding some smaller,
|
||||
independent cells. Then, there's the underground collection of metro tunnels.
|
||||
All of these connect, mostly, and it is fascinating that, once underground, it's
|
||||
almost possible to stay underground, at least when around the Mall and within
|
||||
DC proper.
|
||||
|
||||
I want to touch on one of the strengths of Fallout 3, and the open-world 3D
|
||||
environment: environmental storytelling.
|
||||
|
||||
### DLC: The Pitt
|
||||
|
||||
The Pitt was the first of the DLCs that I played. It was advised as a good
|
||||
early-game DLC, if only because it gives some great guns. I hadn't made the
|
||||
connection between "Pitt" and "Pittsburgh" until I saw the name of the DLC
|
||||
spelled out (as opposed to hearing it simply as "the pit"). I love the hook into
|
||||
the DLC: a man, looking like Snake Plissken from "Escape from New York", sends
|
||||
out an SOS signal that your Pipboy can pick up. Traveling to the
|
||||
northern-reaches of the map, there's a hand-powered rail car that you use to
|
||||
travel to "The Pitt." There, according to Wernher, the people are oppressed and
|
||||
sick, and their tyrannical leaders hold the cure for their disease but refuse to
|
||||
hand it over. Wernher escaped from the slave pits, seeking help in their
|
||||
revolution. Granted, it's not all that straight-forward. There are a few hours
|
||||
worth of story, during which you learn a bit more about the setting, the
|
||||
disease, and the characters. You fight through the slave pits to earn your
|
||||
freedom and a meeting with the tyrant, a former Brotherhood of Steel member
|
||||
named Lord Ashur. The cure is actually a child that was born with immunity to
|
||||
the disease. Conveniently, it's Ashur's kid. His wife, (conveniently) a
|
||||
scientist, is working on bio-engineering a cure from the kid. Wernher wants to
|
||||
take the kid, harvest it, and distribute the cure himself. Thus the main moral
|
||||
conflict of the DLC: do you side with Ashur, saving the kid, but continuing the
|
||||
status-quo, and having only Ashur's word that he'll do the right thing when the
|
||||
cure is ready? Or do you side with Wernher, kidnapping and probably dooming the
|
||||
child, to let him play his power-trip and essentially take over The Pitt for
|
||||
himself? I sided with Ashur, killed Wernher, saved the kid, and got some sweet
|
||||
guns.
|
||||
|
||||
Overall, I enjoyed The Pitt. The setting is phenomenal, the story is engaging
|
||||
enough. The characters are good. It has that 80s action-film vibe. The moral
|
||||
choice at the end is a good twist, though by no means unforeseen. I do like that
|
||||
the game has no karma tied to the final decision; neither one is obviously good.
|
||||
I tend to enjoy that in moral decisions, as rarely are any decisions obviously
|
||||
"right" or "wrong."
|
||||
|
||||
### DLC: Operation Anchorage
|
||||
|
||||
Apparently this one is polarizing. (Oh snap, no pun intended). I really liked
|
||||
it. It hooked me in, it didn't overstay it's welcome, and it gave me some cool
|
||||
loot.
|
||||
|
||||
The gist: your Pipboy lets you operate a virtual reality training simulation of
|
||||
the invasion of Anchorage, Alaska by the Chinese forces. You start off on a
|
||||
cliff, having been one of a few surviving special forces members, to infiltrate
|
||||
and destroy the artillery shelling the United States forces. Right away, it set
|
||||
a really fun tone with me. I loved the little infiltration angle. After you save
|
||||
the day, you return to base camp, where you are given several more missions to
|
||||
destroy key resources, before repelling the Chinese forces and retaking
|
||||
Anchorage proper.
|
||||
|
||||
The stealth mission at the beginning really swings this content in a favorable
|
||||
direction, as does the cool rewards. The Gauss Rifle is just fun to use, and the
|
||||
player gets the Power Armor Training trait and access to a suit of Power Armor.
|
||||
One of the mods I had included several additional sets of armor in the reward
|
||||
vault, and I enjoyed them as well.
|
||||
|
||||
### DLC: Point Lookout
|
||||
|
||||
This one grew on me. When it started, due to the nature of the DLC being more
|
||||
open-world and less driven, I felt thrown into another region that I had to make
|
||||
my own fun in. However, I was able to relatively quickly find some engaging
|
||||
storylines, intriguing storytelling, and the main quest was fun.
|
||||
|
||||
Arriving in the Land of the Punga, you have two objectives: one, you were asked
|
||||
to find a girl by her mother; two, you are advised to investigate why a manor on
|
||||
a hill is smoking. The swamp wasteland is inhabited by inbred swamp-people,
|
||||
mirelurks, and the expected cretins. There's plenty of history scattered both
|
||||
told and unsaid throughout abandoned tents, terminals, hotel rooms, and ruins.
|
||||
This location does a lot to invoke an eldritch horror vibe, and it does so quite
|
||||
well at several points. There's a specific side-quest dealing with a tome, The
|
||||
Krivbeknih, which is obviously a reference to tomes like The Necronomicon. The
|
||||
characters throughout the location are well-written and fun to interact with.
|
||||
The main quest covers a lot of ground, sends you on a psychedelic dream-vision,
|
||||
and gets you lobotomized! Plus _an entire building explodes_, and that's pretty
|
||||
rad. Oh, and the secret Chinese spy submarine!
|
||||
|
||||
By the end of this DLC, I was happily impressed, and it took the new top spot on
|
||||
my list. There's some cool loot, plenty of neat lore, and more Punga than you
|
||||
can shake a shotgun at. And you can make moonshine.
|
||||
|
||||
### DLC: Mothership Zeta
|
||||
|
||||
Another DLC generally looked at unfavorably.
|
||||
|
||||
### DLC: Broken Steel
|
|
@ -1,118 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 12"
|
||||
title: "Seneca's Letter to Lucilius, Letter 12: On Old Age"
|
||||
topics: [philosophy]
|
||||
pub: ""
|
||||
short_desc: ""
|
||||
---
|
||||
|
||||
# Letter 12: On Old Age
|
||||
|
||||
## Original Text
|
||||
|
||||
Wherever I turn, I see evidences of my advancing years. I visited lately my
|
||||
country-place, and protested against the money which was spent on the
|
||||
tumble-down building. My bailiff maintained that the flaws were not due to
|
||||
his own carelessness; "he was doing everything possible, but the house was
|
||||
old." And this was the house which grew under my own hands! What has the
|
||||
future in store for me, if stones of my own age are already crumbling? I
|
||||
was angry, and I embraced the first opportunity to vent my spleen in the
|
||||
bailiff's presence. "It is clear," I cried, "that these plane-trees are
|
||||
neglected; they have no leaves. Their branches are so gnarled and shrivelled;
|
||||
the boles are so rough and unkempt! This would not happen, if someone
|
||||
loosened the earth at their feet, and watered them." The bailiff swore by my
|
||||
protecting deity that "he was doing everything possible, and never relaxed
|
||||
his efforts, but those trees were old." Between you and me, I had planted
|
||||
those trees myself, I had seen them in their first leaf. Then I turned to
|
||||
the door and asked: "Who is that broken-down dotard? You have done well to
|
||||
place him at the entrance; for he is outward bound. Where did you get him?
|
||||
What pleasure did it give you to take up for burial some other man's
|
||||
dead?" But the slave said: "Don't you know me, sir? I am Felicio; you used
|
||||
to bring me little images. My father was Philositus the steward, and I am
|
||||
your pet slave." "The man is clean crazy," I remarked. "Has my pet slave
|
||||
become a little boy again? But it is quite possible; his teeth are just
|
||||
dropping out."
|
||||
|
||||
I owe it to my country-place that my old age became apparent whithersoever
|
||||
I turned. Let us cherish and love old age; for it is full of pleasure if
|
||||
one knows how to use it. Fruits are most welcome when almost over; youth
|
||||
is most charming at its close; the last drink delights the toper, the
|
||||
glass which souses him and puts the finishing touch on his drunkenness.
|
||||
Each pleasure reserves to the end the greatest delights which it contains.
|
||||
Life is most delightful when it is on the downward slope, but has not yet
|
||||
reached the abrupt decline. And I myself believe that the period which
|
||||
stands, so to speak, on the edge of the roof, possesses pleasures of its
|
||||
own. Or else the very fact of our not wanting pleasures has taken the
|
||||
place of the pleasures themselves. How comforting it is to have tired out
|
||||
one's appetites, and to have done with them! "But," you say, "it is a
|
||||
nuisance to be looking death in the face!" Death, however, should be
|
||||
looked in the face by young and old alike. We are not summoned according
|
||||
to our rating on the censor's list. Moreover, no one is so old that it
|
||||
would be improper for him to hope for another day of existence. And one
|
||||
day, mind you, is a stage on life's journey.
|
||||
|
||||
Our span of life is divided into parts; it consists of large circles
|
||||
enclosing smaller. One circle embraces and bounds the rest; it reaches
|
||||
from birth to the last day of existence. The next circle limits the period
|
||||
of our young manhood. The third confines all of childhood in its
|
||||
circumference. Again, there is, in a class by itself, the year; it
|
||||
contains within itself all the divisions of time by the multiplication of
|
||||
which we get the total of life. The month is bounded by a narrower ring.
|
||||
The smallest circle of all is the day; but even a day has its beginning
|
||||
and its ending, its sunrise and its sunset. Hence Heraclitus, whose
|
||||
obscure style gave him his surname, remarked: "One day is equal to
|
||||
every day." Different persons have interpreted the saying in different
|
||||
ways. Some hold that days are equal in number of hours, and this is true;
|
||||
for if by "day" we mean twenty-four hours' time, all days must be equal,
|
||||
inasmuch as the night acquires what the day loses. But others maintain
|
||||
that one day is equal to all days through resemblance, because the very
|
||||
longest space of time possesses no element which cannot be found in a
|
||||
single day, – namely, light and darkness, – and even to eternity day makes
|
||||
these alternations more numerous, not different when it is shorter and
|
||||
different again when it is longer. Hence, every day ought to be
|
||||
regulated as if it closed the series, as if it rounded out and completed
|
||||
our existence.
|
||||
|
||||
Pacuvius, who by long occupancy made Syria his own, used to hold a
|
||||
regular burial sacrifice in his own honour, with wine and the usual
|
||||
funeral feasting, and then would have himself carried from the dining-room
|
||||
to his chamber, while eunuchs applauded and sang in Greek to a musical
|
||||
accompaniment: "He has lived his life, he has lived his life!" Thus
|
||||
Pacuvius had himself carried out to burial every day. Let us, however, do
|
||||
from a good motive what he used to do from a debased motive; let us go to
|
||||
our sleep with joy and gladness; let us say:
|
||||
|
||||
I have lived; the course which Fortune set for me
|
||||
Is finished.
|
||||
|
||||
And if God is pleased to add another day, we should welcome it with glad
|
||||
hearts. That man is happiest, and is secure in his own possession of
|
||||
himself, who can await the morrow without apprehension. When a man has
|
||||
said: "I have lived!", every morning he arises he receives a bonus.
|
||||
|
||||
But now I ought to close my letter. "What?" you say; "shall it come to
|
||||
me without any little offering? "Be not afraid; it brings something, –
|
||||
nay, more than something, a great deal. For what is more noble than
|
||||
the following saying of which I make this letter the bearer: "It
|
||||
is wrong to live under constraint; but no man is constrained to live
|
||||
under constraint." Of course not. On all sides lie many short and
|
||||
simple paths to freedom; and let us thank God that no man can be kept
|
||||
in life. We may spurn the very constraints that hold us.
|
||||
"Epicurus," you reply, "uttered these words; what are you doing with
|
||||
another's property?" Any truth, I maintain, is my own property. And I
|
||||
shall continue to heap quotations from Epicurus upon you, so that all
|
||||
persons who swear by the words of another, and put a value upon the
|
||||
speaker and not upon the thing spoken, may understand that the best
|
||||
ideas are common property. Farewell.
|
||||
|
||||
## Response
|
||||
|
||||
### Source
|
||||
|
||||
[Moral Letters to Lucilius, Letter 12 on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_12)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
||||
|
||||
- Update pub to publication date
|
||||
- Set short_desc
|
|
@ -1,149 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 7"
|
||||
title: "Seneca's Letter to Lucilius, Letter 7: On Crowds"
|
||||
topics: [philosophy]
|
||||
pub: "2018-03-10"
|
||||
short_desc: "Humans are like tofu: we very easily take on the flavors in
|
||||
which we are cooked. Choose your flavoring carefully."
|
||||
---
|
||||
|
||||
# Letter 7: On Crowds
|
||||
|
||||
## Original Text
|
||||
|
||||
Do you ask me what you should regard as especially to be avoided? I say, crowds;
|
||||
for as yet you cannot trust yourself to them with safety. I shall admit my own
|
||||
weakness, at any rate; for I never bring back home the same character that I
|
||||
took abroad with me. Something of that which I have forced to be calm within me
|
||||
is disturbed; some of the foes that I have routed return again. Just as the sick
|
||||
man, who has been weak for a long time, is in such a condition that he cannot be
|
||||
taken out of the house without suffering a relapse, so we ourselves are affected
|
||||
when our souls are recovering from a lingering disease. To consort with the
|
||||
crowd is harmful; there is no person who does not make some vice attractive to
|
||||
us, or stamp it upon us, or taint us unconsciously therewith. Certainly, the
|
||||
greater the mob with which we mingle, the greater the danger.
|
||||
|
||||
But nothing is so damaging to good character as the habit of lounging at the
|
||||
games; for then it is that vice steals subtly upon one through the avenue of
|
||||
pleasure. What do you think I mean? I mean that I come home more greedy, more
|
||||
ambitious, more voluptuous, and even more cruel and inhuman, because I have been
|
||||
among human beings. By chance I attended a mid-day exhibition, expecting some
|
||||
fun, wit, and relaxation, – an exhibition at which men's eyes have respite from
|
||||
the slaughter of their fellow-men. But it was quite the reverse. The previous
|
||||
combats were the essence of compassion; but now all the trifling is put aside
|
||||
and it is pure murder. The men have no defensive armour. They are exposed to
|
||||
blows at all points, and no one ever strikes in vain. Many persons prefer this
|
||||
programme to the usual pairs and to the bouts "by request." Of course they do;
|
||||
there is no helmet or shield to deflect the weapon. What is the need of
|
||||
defensive armour, or of skill? All these mean delaying death. In the morning
|
||||
they throw men to the lions and the bears; at noon, they throw them to the
|
||||
spectators. The spectators demand that the slayer shall face the man who is to
|
||||
slay him in his turn; and they always reserve the latest conqueror for another
|
||||
butchering. The outcome of every fight is death, and the means are fire and
|
||||
sword. This sort of thing goes on while the arena is empty. You may retort:
|
||||
"But he was a highway robber; he killed a man!" And what of it? Granted that, as
|
||||
a murderer, he deserved this punishment, what crime have you committed, poor
|
||||
fellow, that you should deserve to sit and see this show? In the morning they
|
||||
cried "Kill him! Lash him! Burn him! Why does he meet the sword in so cowardly a
|
||||
way? Why does he strike so feebly? Why doesn't he die game? Whip him to meet his
|
||||
wounds! Let them receive blow for blow, with chests bare and exposed to the
|
||||
stroke!" And when the games stop for the intermission, they announce: "A little
|
||||
throatcutting in the meantime, so that there may still be something going on!"
|
||||
|
||||
Come now; do you not understand even this truth, that a bad example reacts on
|
||||
the agent? Thank the immortal gods that you are teaching cruelty to a person who
|
||||
cannot learn to be cruel. The young character, which cannot hold fast to
|
||||
righteousness, must be rescued from the mob; it is too easy to side with the
|
||||
majority. Even Socrates, Cato, and Laelius might have been shaken in their moral
|
||||
strength by a crowd that was unlike them; so true it is that none of us, no
|
||||
matter how much he cultivates his abilities, can withstand the shock of faults
|
||||
that approach, as it were, with so great a retinue. Much harm is done by a
|
||||
single case of indulgence or greed; the familiar friend, if he be luxurious,
|
||||
weakens and softens us imperceptibly; the neighbour, if he be rich, rouses our
|
||||
covetousness; the companion, if he be slanderous, rubs off some of his rust upon
|
||||
us, even though we be spotless and sincere. What then do you think the effect
|
||||
will be on character, when the world at large assaults it! You must either
|
||||
imitate or loathe the world.
|
||||
|
||||
But both courses are to be avoided; you should not copy the bad simply because
|
||||
they are many, nor should you hate the many because they are unlike you.
|
||||
Withdraw into yourself, as far as you can. Associate with those who will make a
|
||||
better man of you. Welcome those whom you yourself can improve. The process is
|
||||
mutual; for men learn while they teach. There is no reason why pride in
|
||||
advertising your abilities should lure you into publicity, so that you should
|
||||
desire to recite or harangue before the general public. Of course I should be
|
||||
willing for you to do so if you had a stock-in-trade that suited such a mob; as
|
||||
it is, there is not a man of them who can understand you. One or two
|
||||
individuals will perhaps come in your way, but even these will have to be
|
||||
moulded and trained by you so that they will understand you. You may say: "For
|
||||
what purpose did I learn all these things?" But you need not fear that you have
|
||||
wasted your efforts; it was for yourself that you learned them.
|
||||
|
||||
In order, however, that I may not to-day have learned exclusively for myself, I
|
||||
shall share with you three excellent sayings, of the same general purport,
|
||||
which have come to my attention. This letter will give you one of them as
|
||||
payment of my debt; the other two you may accept as a contribution in advance.
|
||||
Democritus says: "One man means as much to me as a multitude, and a multitude
|
||||
only as much as one man." The following also was nobly spoken by someone or
|
||||
other, for it is doubtful who the author was; they asked him what was the
|
||||
object of all this study applied to an art that would reach but very few. He
|
||||
replied: "I am content with few, content with one, content with none at all."
|
||||
The third saying – and a noteworthy one, too – is by Epicurus, written to one
|
||||
of the partners of his studies: "I write this not for the many, but for you;
|
||||
each of us is enough of an audience for the other." Lay these words to heart,
|
||||
Lucilius, that you may scorn the pleasure which comes from the applause of the
|
||||
majority. Many men praise you; but have you any reason for being pleased with
|
||||
yourself, if you are a person whom the many can understand? Your good qualities
|
||||
should face inwards. Farewell.
|
||||
|
||||
## Response
|
||||
|
||||
In the first paragraph, Seneca makes a very interesting observation: when you
|
||||
leave for the day, you return a different character than you set out. He seems
|
||||
to imply this is due to "consorting with the crowd", but I think this is a
|
||||
reality of life: we are constantly changed by our environment. Seneca, I think,
|
||||
would have us realize that consorting with the crowd explicitly is harmful, and
|
||||
to be avoided if at all possible. Again, I don't think this means avoid groups,
|
||||
but rather avoid provocative or aggressive groups. To Seneca, this would be
|
||||
groups such as spectators at "the games" (the Coliseum). To us, this could be
|
||||
either meatspace or digital groups, and the later especially I find very
|
||||
interesting. Often we don't consider the impact of our Twitter followers, or our
|
||||
Facebook feed, upon our character. How often, though, do we feel compelled to
|
||||
agree simply due to the sheer number of others who already do? "It is too easy
|
||||
to side with the majority." This effect applies equally to all of us, from the
|
||||
most impressionable youth to the most stalwart Stoic.
|
||||
|
||||
The discussion of needless violence "at the games" is very interesting. Dan
|
||||
Carlin did a podcast recently discussing the history of violence, and he
|
||||
mentioned this exact letter due to Seneca's account. "In the morning they throw
|
||||
men to the lions and the bears; at noon, they throw them to the spectators."
|
||||
Humanity's interest in violence, at times apparently insatiable, is nothing new
|
||||
to modern day violent media. In fact, by comparison, today's violence is tame:
|
||||
we witness the emulation of violence; in Rome, they witnessed the reality of
|
||||
slaughter. Seneca's advice: avoid it. Building upon what he discussed earlier,
|
||||
you only harm yourself by watching such events. Now, replace violence with a
|
||||
vice of your choice, and the lesson still applies. Humans are like tofu: we very
|
||||
easily take on the flavors in which we are cooked. Choose your flavoring
|
||||
carefully.
|
||||
|
||||
Seneca concludes, "you should not copy the bad simply because they are many, nor
|
||||
should you hate the many because they are unlike you." Here, we see the strategy
|
||||
emerge: improve yourself, surround yourself by those who will help you do so,
|
||||
and seek out those whom you can help improve. He discusses also the folly of
|
||||
pride, and of publicity, with respect to these pursuits. In the end, he reminds
|
||||
us: we improve for our own benefits. He really emphasizes this, and captures so
|
||||
well the significance of improving yourself for your own benefit, at the very
|
||||
end of the letter: "Many men praise you; but have you any reason for being
|
||||
pleased with yourself, if you are a person whom the many can understand?" To me,
|
||||
this is the _coup de grace_. If you withhold your improvement, simply for the
|
||||
appeasement of the crowd, or the desire for praise, then you only improve to the
|
||||
least of their members.
|
||||
|
||||
### Source
|
||||
|
||||
[Moral Letters to Lucilius, Letter 7 on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_7)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
||||
|
||||
- Set short_desc
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter num"
|
||||
title: "Seneca's Letter to Lucilius, Letter num: Title"
|
||||
topics: [philosophy]
|
||||
pub: ""
|
||||
short_desc: ""
|
||||
---
|
||||
|
||||
# Letter num: Title
|
||||
|
||||
## Original Text
|
||||
|
||||
## Response
|
||||
|
||||
### Source
|
||||
|
||||
[Moral Letters to Lucilius, Letter num on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_num)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
||||
|
||||
- Change num to the number
|
||||
- Change Title to the letter title
|
||||
- Update pub to publication date
|
||||
- Copy letter into Original Text
|
||||
- Remove any references: %s/\[\d\+]//g
|
||||
- Remove all in-text numbers: %s/\d\+\.//g
|
||||
- Set short_desc
|
|
@ -1,41 +0,0 @@
|
|||
### My Mod List
|
||||
|
||||
My most recent mod list had a few objectives. First, I love [Better
|
||||
Cities](https://www.nexusmods.com/oblivion/mods/16513) and [Maskar's Oblivion
|
||||
Overhaul (MOO)](https://www.nexusmods.com/oblivion/mods/42780), and so I'll use
|
||||
them. Second, I'm not generally concerned with graphics improvements/overhauls.
|
||||
Lastly, despite the first point, I wanted to play with a "Vanilla Plus"
|
||||
emphasis.
|
||||
|
||||
As before, I recommend reading through the [Oblivion Comprehensive Modding Guide
|
||||
by Dispensation](https://www.nexusmods.com/oblivion/mods/49898). It covers how
|
||||
to use all the above installed tools, and walks through mod recommendations for
|
||||
every aspect of the game. The Unofficial Official Patches are essential and
|
||||
always recommended. The various bug and engine fixes may or may not help out;
|
||||
try them out and use the ones which do!
|
||||
|
||||
My "vanilla plus" mod list weighs in rather light. _Better Cities_ and _MOO_ are
|
||||
the big ones. The remaining mods with significant changes are [Ultimate
|
||||
Leveling](https://www.nexusmods.com/oblivion/mods/49134), to fix some of
|
||||
Oblivions leveling problems; [Combat
|
||||
Additions](https://www.nexusmods.com/oblivion/mods/49939), to improve the combat
|
||||
aspects of the game; and [Supreme
|
||||
Magicka](https://www.nexusmods.com/oblivion/mods/12466), for some added magic.
|
||||
|
||||
I use [Better Dungeons](https://www.nexusmods.com/oblivion/mods/40392), [Better
|
||||
Forts](https://www.nexusmods.com/oblivion/mods/51897), the various ["Add Some
|
||||
Flavor"](https://next.nexusmods.com/profile/gweow/mods) mods from gweow, [Lights
|
||||
of Cyrodiil](https://www.nexusmods.com/oblivion/mods/46131), and [Legion
|
||||
Forester Outposts Revistited](https://www.nexusmods.com/oblivion/mods/51512) to
|
||||
spice up the world spaces a bit. A few of the _"Add Some Flavor"_ mods conflict
|
||||
in small ways with _Better Cities_.
|
||||
|
||||
I add [Thieves Arsenal](https://www.nexusmods.com/oblivion/mods/9655), and
|
||||
[Bounty Quests Fixed and
|
||||
Polished](https://www.nexusmods.com/oblivion/mods/48330) to add some additional
|
||||
quests and flavor.
|
||||
|
||||
To avoid fast travelling, I use [Cyrodiil Travel
|
||||
Services](https://www.afkmods.com/index.php?/files/file/263-cyrodiil-travel-services/)
|
||||
to get around easier; and [Traveler's
|
||||
Tent](https://www.nexusmods.com/oblivion/mods/49654) for a mobile base of sorts.
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
tabtitle: "Oblivion on Linux Part 3, A Full Install"
|
||||
title: "Oblivion on Linux, with Mods! Part 3 - Full Install"
|
||||
topics: [gaming]
|
||||
pub: "2021-12-20"
|
||||
short_desc: "The Elder Scrolls IV: Oblivion is one of my favorite games of
|
||||
all time. The vanilla game holds up, but mods take the game to an entirely
|
||||
new level. Getting it working on Linux requires a bit of configuration, bit
|
||||
is surprisingly accessible! This is the final part of my journey."
|
||||
---
|
||||
|
||||
# Install Walk-Thru
|
||||
|
||||
- Install from source. Run for first time.
|
||||
- Symlink `obse_loader.exe` to `OblivionLauncher.exe`, make back-up of original
|
||||
`OblivionLauncher.exe`
|
||||
- "Install" all relevant tools
|
||||
- Source `Aliases` file
|
||||
- LOOT masterlist not working. Change to reference local
|
||||
- Disable LOOT update on start
|
||||
- TES4Edit click the box to not show stuff on startup, ignore the error
|
||||
- Make updates in BethINI
|
||||
- Install Unofficial patches. Run to verify things are working.
|
||||
- Begin installing mods!
|
||||
|
||||
## Universal Silent Voice
|
||||
Had to install manually. Move relevant files to `Data/OBSE/Plugins`.
|
|
@ -1,13 +0,0 @@
|
|||
{% for post in site.posts %}
|
||||
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">{{ post.pub }}</div>
|
||||
<div class="" id="tags">
|
||||
{% for topic in post.topics %}
|
||||
<a href="/topics/{{topic}}.html">{{topic}}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">{{ post.short_desc }}</div>
|
||||
{% endfor %}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<h6>{{ page.tabtitle }}</h6>
|
||||
{% for post in site.posts %}
|
||||
{% if post.topics contains page.title %}
|
||||
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">{{ post.pub }}</div>
|
||||
<div class="" id="tags">
|
||||
{% for topic in post.topics %}
|
||||
<a href="/topics/{{topic}}">{{topic}}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">{{ post.short_desc }}</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
|
@ -1,44 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: {{ page.tabtitle }}</title>
|
||||
{% feed_meta %}
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="{{ site.author }}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="{{ site.url}}{{ page.url }}" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="{{ site.url }}/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="{{ site.url}}/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
{{ content }}
|
||||
</main>
|
||||
|
||||
{% include cor_menu.html %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,61 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: {{ page.tabtitle }}</title>
|
||||
{% feed_meta %}
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="{{ page.author}}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="{{ site.url}}{{ page.url }}" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="{{ site.url }}/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="{{ site.url }}/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Life In Progress, as of {{ page.pub }}</h1>
|
||||
<div class="author_info">
|
||||
{{ page.author }}
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
Last Updated: {{ page.pub }}
|
||||
<br />
|
||||
This is a <a href="https://nownownow.com/about" id="now">Now Page</a>
|
||||
inspired by <a href="https://sive.rs/" id="now">Derek Sivers</a>.
|
||||
</div>
|
||||
{{ content }}
|
||||
</article>
|
||||
</main>
|
||||
{% include cor_menu.html %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,63 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: {{ page.tabtitle }}</title>
|
||||
{% feed_meta %}
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="{{ page.author}}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="{{ site.url}}{{ page.url }}" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ site.url }}/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="{{ site.url }}/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="{{ site.url }}/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
{{ content }}
|
||||
<div class="author_info">
|
||||
{{ page.author }}
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
{{ page.pub }}
|
||||
<br />
|
||||
[
|
||||
{% for topic in page.topics %}
|
||||
<a href="/topics/{{topic}}">{{topic}}</a>
|
||||
{% endfor %}
|
||||
]
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
{% include cor_menu.html %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,608 +0,0 @@
|
|||
---
|
||||
tabtitle: Ireland Log
|
||||
title: A Log of My Travels in Ireland
|
||||
topics: [life]
|
||||
pub: "2015-01-01"
|
||||
short_desc: "Once upon a time, I traveled to Ireland. It was quite the
|
||||
experience. Me, my 3 friends Suf, Chris and Cary, Scion, shenanigans,
|
||||
Guiness, whiskey, and Thunderstruck."
|
||||
---
|
||||
# Day 1: 07/27/10
|
||||
|
||||
```
|
||||
Melon... *scatter*
|
||||
```
|
||||
|
||||
Today is travel day! Heading out right now towards JFK, then a 5 hour lay-over
|
||||
there, then finally taking off towards the Emerald Isle! I'm both excited and
|
||||
anxious, but surprisingly calm. I think it's to the point where I'm ready to get
|
||||
things moving.
|
||||
|
||||
This flight will be rather uneventful: short 55 minute hop to JFK. I'm looking
|
||||
forward to the longer flight. The time will give me opportunity to read, relax
|
||||
and think... something I haven't done enough of in the past week.
|
||||
|
||||
# Day 2: 07/28/10
|
||||
|
||||
```
|
||||
Left is safe!
|
||||
```
|
||||
|
||||
Today we finally arrived in Ireland, first in Dublin and then Shannon. The trip
|
||||
over was a bit of a challenge: a lack of sleep combined with an atmosphere
|
||||
trying to promote one, all wrapped in the situation of no comfortable way to
|
||||
actually get sleep helped to contribute to me not sleeping more than 30 minutes
|
||||
tops. On the plus side, I did get to watch Dorian Grey and Percy Jackson on the
|
||||
way over. Also, they served a very delicious beef stew for dinner; I was
|
||||
pleasantly surprised.
|
||||
|
||||
Upon arrival, we immediately set out to retrieve our luggage, which arrived
|
||||
mostly unmolested. Then, as we proceeded out of the terminal, we finally found
|
||||
our 4th member, Suf, waiting eagerly for our arrival; he had arrived a day
|
||||
earlier, and had many a story to share about his adventures in Limerick (our
|
||||
eventual destination for the day). We got our car, forgot our GPS, recovered our
|
||||
GPS, and began driving toward Limerick from Shannon Airport. We quickly
|
||||
discovered that, given our American driving-habits, we thought every car driving
|
||||
on the "wrong side of the road" was going to kill us. I think twice we all
|
||||
panicked for fear of our lives. But, once we adjusted (or at least, once Suf
|
||||
did... Cary is still a bit iffy) the drive was relatively quick and painless. We
|
||||
arrived not more than 30 minutes later in Limerick, and made for the City Center
|
||||
to explore on foot the many shops and eateries that the city had to offer, as
|
||||
well as pay a visit to "The Bitter End" Pub, where Suf had visited on the
|
||||
previous night. We explored for a bit, had lunch at The Bitter End, visited a
|
||||
shop so Cary could purchase a couple shilelagh (spelling), wander to a tourist
|
||||
booth for information and, with said acquired directions, made for our first B&B
|
||||
of the trip: Coonagh Lodge. We relaxed and napped a bit at the Lodge, enough to
|
||||
recouperate for a voyage back to Limerick, and made for some dinner and
|
||||
adventure. We explored around, eventually stopping in at a place called
|
||||
"Wokking" for some authentic Irish Chinese food, which turned out to be very
|
||||
tasty and filling. We then explored for a pub, stopping at "Charlie St.
|
||||
George's" pub for a quick pint and some people-watching. Then, we explored a bit
|
||||
more, and wound up back at The Bitter End to enjoy an evening cup of tea and
|
||||
some relaxing time. After this, we made back to the B&B, where I discovered that
|
||||
my power brick likes to make a weird noise as it charges my laptop. I account it
|
||||
to the different voltage, and pray that it doesn't explode and kill us all.
|
||||
|
||||
Of most important note, Suf decided to enlighten us with some of his arab cab
|
||||
driving slang, most notable of which is "Why for you fuck my road?" An important
|
||||
question, to be sure, and one to be answered in the days to come. A very steady
|
||||
lean into this adventure, which I prefer to the alternative "kick-in-the-door"
|
||||
style. Hopefully I can figure out some way to get my computer to connect to WPA2
|
||||
connections so I can have internet more readily. At least for tonight, I
|
||||
probably won't get back on (unfortunate news for my KoL desires. Too many
|
||||
adventures will be wasted after I waste the NS... Oh well...)
|
||||
|
||||
# Day 3: 07/29/10
|
||||
|
||||
```
|
||||
"Ya know, you keep that shirt on much longer, you gonna get jungle rot" - Biff McBodyspray
|
||||
```
|
||||
|
||||
Today was our first big travel day. We left Limerick around 11:00 am and made
|
||||
for Galway. Along the way we stopped in at the Cliffs of Moher, and then
|
||||
continued on to our destination in Kinvara.
|
||||
|
||||
The Cliffs of Moher are quite the site to see. Set along the Atlantic Ocean is a
|
||||
couple-mile stretch of sheer cliffs, topped with walkways and occasional watch
|
||||
towers, or at least ruins of them. We walked the Cliffs for about an hour, just
|
||||
exploring the different angles and particulars of the cliffs themselves: the
|
||||
numerous outcroppings, the way the waves would collide with the rock, the caves
|
||||
and small inlets that the water had born away. All these details helped to
|
||||
complete one heck of a view! I also enjoyed the visitor center, which was built
|
||||
into the hillsides near the cliffs.
|
||||
|
||||
After the cliffs, we make our way to Kinvara. We stop briefly at the Burren, a
|
||||
barren area of rocks and not much else. Once we arrive, we check into our B&B
|
||||
and decide to hold off on Galway until tomorrow night. This leaves us with
|
||||
plenty of time to explore Kinvara proper. We relax for a bit and make to town
|
||||
for some dinner and adventures. We decided to stop in at an Italian place called
|
||||
'The Full Tide Inn', and while waiting for our food, had quite the heated
|
||||
philosophical discussion. It really put into perspective for me just how
|
||||
unprepared I am to defend my own view/the Stoic view of topics. After dinner, we
|
||||
walked out to Dunguaire Castle, which was unfortunately closed, but we still
|
||||
were able to explore the surrounding grounds. We learned a bit of background
|
||||
from a fellow tourist, and then made our way back into town to buy a few snacks
|
||||
before heading back to our B&B. That night, despite our best laid plans, we
|
||||
weren't able to get to Scion. However, luckily for me, the internet access at
|
||||
the B&B was unprotected and therefore I could hop onto KoL and finish up my
|
||||
ascension! I bought the trophie available to me (the one regarding food
|
||||
recipies) and clammered through the astral gash to return once more to my life
|
||||
of adventuring. I ascended as a Sauceror, holding onto Pastamancy so I can
|
||||
really start to rack up the bonus adventures from my cooking. A few adventures
|
||||
gone, I manage to get to level 2 the first day, and am very excited to really
|
||||
get this sauce boiling.
|
||||
|
||||
# Day 4: 07/30/10
|
||||
|
||||
```
|
||||
Be-buh-buh-day, be-buh-buh-day, E-DAY-OH, E-DAY-OH, THAT'S OK!
|
||||
```
|
||||
|
||||
Holy crap, today seemed like an entire month's worth of exploration and
|
||||
adventure. After a delicious traditional Irish breakfast, we made for Galway.
|
||||
|
||||
In Galway we parked and set out for our busiest and most fun day yet. I can tell
|
||||
you now that my feet are none to happy about the amount of walking we achieved,
|
||||
but if nothing else this is a good reminder to properly prepare next time: make
|
||||
sure my shoes are comfortable enough to walk around in almost constantly. So, we
|
||||
park and make towards the city center. Galway is situated along the coast of
|
||||
Galway Bay (go figure...) and has a river running through the center of town. We
|
||||
head down the busy pedestrian walkway and hit up a few shops. Chris, Suf and
|
||||
Cary all check out a couple tattoo parlours, and me being less interested make
|
||||
for some good people watching and relax a bit. We continue our walk through the
|
||||
busy crowds, and eventually make our way to the river. Exploring it for a bit,
|
||||
Cary and I decide to stop off at a river-side restaurant called 'Mustard', where
|
||||
I get one of the most delicious pulled-pork sandwiches I've ever enjoyed.
|
||||
Afterwards, we met back up with Chris and Suf, and walked out towards the bay a
|
||||
bit. As we voyaged further away from the city, we met with a couple of fellow
|
||||
travelers, and discovered a great bar to stop at in town, known as 'E Brun' or
|
||||
'The Bridge.' At the bar we met Bill, a local of Galway, who told us of many
|
||||
great sites and happenings around town. An important detail of our stay in
|
||||
Galway is that the Galway Races were going on. Evidently, they're a big deal.
|
||||
|
||||
So, after our stop in the pub and a delicious Guiness, we make to explore and
|
||||
find 'The Crane,' where Shela's son will be playing live music later in the
|
||||
evening. We find it, and gather from another local (and rather attractive) girl
|
||||
the location of a couple of good niteclube. After finding the Crane we decide to
|
||||
hunt our a place to eat, and eventually wander back to 'Kelly's', which helps to
|
||||
bring back nostalgic memories of Geneseo and our own Kelly's. We enjoy a
|
||||
deliciously filling meal there, compliments of Chris, and find out that later in
|
||||
the evening we can enjoy Crane for some authentic (and rather good) Irish jazz
|
||||
(which sounds not much different from any other type of jazz...). Thus far,
|
||||
although I've been able to explain our day in only a few short paragraphs, we've
|
||||
experienced to us what has felt like a lifetime worth of exploration. But, the
|
||||
fun is only just about to start.
|
||||
|
||||
10:20pm, and we just left The Crane Bar to head back to the B&B for some
|
||||
kick-ass Scion action. Along the way, we overhear a few clubs, but nothing
|
||||
really catches our ear until we get to Kelly's. We can hear the beats from
|
||||
outside, we can feel our feet aching but wanting to join in, so we head upstairs
|
||||
and find (!!!)... a bunch of people standing around as a DJ mixes. What a let
|
||||
down! Well, Suf wouldn't have any of this, and neither would the rest of us, so
|
||||
after settling into our comfortable corner, Suf finally finds a song that he'll
|
||||
groove to. And groove he does. Following quickly in suite, we join him on the
|
||||
floor and find ourselves almost alone dancing. The 4 American tourists are the
|
||||
only ones dancing in the Irish Niteclub. Almost poetic, mostly pathetic. Well,
|
||||
this quickly changes, as more people flock to the dance floor after seeing our
|
||||
amazing example. And by no means am I exaggerating! We literally started the
|
||||
dance party at a niteclub. We groove it and move it for a good couple of hours
|
||||
before we take off for new adventures. After a bit of exploring, and a lot of
|
||||
drunk people, we decide to split up: Chris and Suf head back to Kelly's for some
|
||||
more dancing, Cary wanders the street talking to people, and I, the lamest of
|
||||
the group, head back to the car to call it a night. Before long, we all
|
||||
reconvene, load up the GPS and make our way back to the B&B. This night has been
|
||||
legendary, and no degree of detailed description can truly capture just how epic
|
||||
the night was.
|
||||
|
||||
Simply put: Galway was unforgetable.
|
||||
|
||||
# Day 5: 07/31/10
|
||||
|
||||
```
|
||||
"Where are we heading again? Ballerina?" "BALLINA!"
|
||||
```
|
||||
|
||||
After the unbelievable adventure of Galway, we head out for our next stop in
|
||||
Northwest Ireland: Ballina.
|
||||
|
||||
We set off after saying goodbye to our thus-far favorite B&B and host Shiela,
|
||||
and head north. As we're driving, we spot a few turn offs and decide to stop at
|
||||
one of them to explore a bit of the countryside. We find our way onto a
|
||||
mountain, scale the smaller hills leading up to it, and eventually make our way
|
||||
back to the car to continue walking. As we're driving, we happen across one of
|
||||
the more epic scenes of our voyage: the carved out "seat" of a mountain, which
|
||||
we refer to afterwards as 'The God Seat.' Surely, the scene of epic Scion games
|
||||
to come.
|
||||
|
||||
As we continue along our voyage, we stop off at Kylemore Abbey, the most
|
||||
stunning scene I've seen in my life thus far. Imagine a white and grey castle,
|
||||
then make it less war-oriented and more beautiful, then set it on a gorgeous
|
||||
lake, at the base of a very impressive mountain. That's Kylemore Abbey. We park
|
||||
and explore a bit, and I get several good pictures. Further, I manage to spot a
|
||||
statue of something half way up the mountain, made of white stone. Whoever made
|
||||
this statue certainly had a lot of determination!
|
||||
|
||||
We leave the Abbey and finish our journey to our B&B for the evening. We relax,
|
||||
settle in, and finally get to playing some Scion. Cary volunteered to run
|
||||
first, so we play through the first half of his one shot: saving a 'shie' from
|
||||
an Irish scion and his giant lackies. My character, a defensive tank named
|
||||
Derrick Nasher, does quite well. We finish up the session, spend our exp (making
|
||||
us even more boss), and crash for a relatively early night.
|
||||
|
||||
This B&B also has an encrypted internet, so at first I'm out of luck. However,
|
||||
on a whim I try out the Chromium build I brought along (thanks Hexxeh!!), and
|
||||
manage to easily set up a connection through that! I can't upload any files or
|
||||
pictures very well, but I can still play some KoL and post a few updates to my
|
||||
social sites. Also, Google Voice has proven to be a godsend! Being able to text
|
||||
from a website has been my primary means of keeping in contact with the family
|
||||
back at home.
|
||||
|
||||
# Day 6: 08/01/10
|
||||
|
||||
```
|
||||
"...just chillax..."
|
||||
|
||||
"Woah... I never expected to hear 'chillax' outside of the states!"
|
||||
|
||||
- A conversation between Kim and Chris
|
||||
```
|
||||
|
||||
Day 2 of our stay in Ballina. We eat an early breakfast and make for Killary
|
||||
Adventure for some archery!
|
||||
|
||||
We arrive in Killary around noon, and enjoy an hour of arching with our
|
||||
instructor Kim and another instructor named Dugal. I managed to shoot 2
|
||||
bullseyes! It's amazing that if you actually hold the weapon properly and keep
|
||||
proper form, you can actually aim with it. Never would have thought otherwise...
|
||||
(/sarcasm). We joked, tried out some trick shooting, played a HORSE-style game,
|
||||
and all-in-all came out of the adventure feeling really great. Plus, we all got
|
||||
some wicked "battle wounds" from the bow on our forearms.
|
||||
|
||||
After the archery, we decide to head to Westport, on advice from Kim, for some
|
||||
shopping and to get lunch. We immediately (perhaps fatefully) stumble upon a
|
||||
place called 'The Asgard' and decide that there's no better place to eat in town
|
||||
than here. I enjoy some Bangers and Mash - Asgard Style - and feel the wonderful
|
||||
feeling of fulness once more. This trip has been a wonderful venture in
|
||||
delicious foods. The traditional Irish breakfast (Egg, real bacon, sausages,
|
||||
black and white pudding, half a tomatoe, toast, tea and juice) is so filling
|
||||
that most of the time we feel no need to eat before dinner. Today, though, was a
|
||||
glaring exception; that, and we had a different breakfast of pancakes and
|
||||
poached eggs. After the Bangers and Mash, we split up: I head off to explore the
|
||||
riverway and the port, while the others go shopping. I manage to snap quite a
|
||||
few nice pictures, and figure out some more features on the camera, before we
|
||||
meet back up and head back to Ballina, and then onwards to Enniscrone, the
|
||||
birthplace of Cary's ancestors, the Grimes.
|
||||
|
||||
We arrive in Enniscrone around 4:00 in the afternoon, to a beautiful sunny day
|
||||
and warm weather. Enniscrone in a beach town, so we split up once again, with me
|
||||
heading out towards the beach and the others once more hitting up the shops. I
|
||||
walk along the Atlantic Ocean, soaking in the waves and the rays, and eventually
|
||||
make my way back to the car to relax for a bit. We head back to the B&B, rest
|
||||
for a bit, and decide that heading back to Enniscrone for some delicious,
|
||||
authentic Irish-Chinese food would be best. And best it was: we discovered the
|
||||
awesomness and addictivness that is puffed-rice prawn crisps. Dinner was good,
|
||||
too.
|
||||
|
||||
We head back to the B&B and finish up Cary's session of Scion. Chris set his
|
||||
crab-tank relic for self-destruct and took care of all the giants for us, while
|
||||
I managed to manipulate our crazy Irish scion friend Brian that he forgot how to
|
||||
fight, which led to his untimely demise (or at least him falling
|
||||
unconscious...). We saved the 'shie', secured the relic protected inside it, and
|
||||
got Brian's birthrights for ourselves. A success, and a good start to our Scion
|
||||
adventures yet to come. Cary hands the GM torch over to Chris, and we begin his
|
||||
session tonight: we get tasked by Brigid (one of the Tuatha) to help out one of
|
||||
her daughters. We manage to find her just in time for the night to expire, and
|
||||
so we call it there. In KoL, I've managed to get to level 4, half-way towards 5,
|
||||
before I call it a night. I haven't yet played all my available turns, but I'm
|
||||
making decent progress. With a bit more practice I can probably get getting to
|
||||
level 6 a 2-day process, which will help to speed through the slower part of the
|
||||
game.
|
||||
|
||||
# Day 7: 08/02/10
|
||||
|
||||
```
|
||||
Worst. Bank. Holiday. Ever.
|
||||
```
|
||||
|
||||
After a restful evening, and another delicious breakfast of pancakes and poached
|
||||
eggs, we enjoy a quick chat with John, our host, before heading off on our
|
||||
"driving day from hell." Our course will take us through the middle of Ireland,
|
||||
stopping off at Athlone to see the oldest bar in Ireland (and perhaps the world)
|
||||
and eventually into Tipperary for the evening
|
||||
|
||||
Our first stop of the day is in Athlone, a city smack-dab in the middle of
|
||||
Ireland. The drive to Athlone was a bit long, but still strikingly beautiful. It
|
||||
seems like Ireland, despite it's rather small size, is still host to some of the
|
||||
most grandiouse and beautiful scenes I've ever seen. We arrive in Athlone around
|
||||
noon, and wander around a bit. Suf, Cary and I all stop in at 'The Snug' for a
|
||||
quick pint, before we take off across the bridge in the middle of town to hit up
|
||||
some shopping. We stop off in Athlone Castle along the way for some great
|
||||
pictures, and run into Chris, who had wandered off to find some shops, after we
|
||||
cross the bridge. Chris and I decide to backtrack to the Castle, then wander
|
||||
around before we head back to Sean's. Sean's is the oldest bar in Ireland,
|
||||
dating back towards 900AD, and quite possible the oldest bar in the world.
|
||||
Obviously, I enjoy a pint of Guiness before we head back to the car and continue
|
||||
along our day's journey.
|
||||
|
||||
We decide to stop off at Clanmocnoise Abbey, a ruined abbey just south of
|
||||
Athlone, before heading out to Tipperary. The sites there are truely amazing,
|
||||
and the ruined Abbey is quite cool as well. The conservation attempts have, thus
|
||||
far, done a good job of maintaining what was salvageable, but the Abbey itself
|
||||
is beyond repair. After some cool pictures, we continue on our way to Tipperary.
|
||||
|
||||
We finally arrive at our destination for the evening. Tipperary is a small town,
|
||||
with a good amount of shops and a very comfortable atmosphere. Unfortunately,
|
||||
and unknown to us, due to the Bank Holiday most of the food shops are closed. We
|
||||
settle for a fast-food place called "American Stars" and apologize to our
|
||||
digestive tracks before heading back to our B&B for some Scion action.
|
||||
|
||||
Scion has us defending Nikki from a couple of Fenrir, which we succeed in doing,
|
||||
and then finding out our target was, in fact, a doppleganger. We discover this a
|
||||
bit too late, though, and end our session assaulting 'The God Seat' and a Norse
|
||||
Scion, who claims that "the ginger bitch has got to go." Well, Derrick'll be
|
||||
damned if he let's a potential future employer die that easily. The stage is set
|
||||
as both Derrick and the Norse Scion enter their Collosus Armor, Cary's Scion
|
||||
enters his Warpspasm, and Suf's Scion prepares to make pincushins out of the
|
||||
Frost Giants. After Scion comes KoL, which sees my progression to level 5 and
|
||||
acquisition of Advanced Sausecrafting. I adventure for a bit more, before
|
||||
fatigue wins and I succumb to sleep.
|
||||
|
||||
# Day 8: 08/03/10
|
||||
|
||||
```
|
||||
"There any bars... excuse me... pubs around here?"
|
||||
|
||||
"Welcome to Ireland, lad!"
|
||||
|
||||
- A conversation between me and a bouncer
|
||||
```
|
||||
|
||||
Today we headed back to the Rock of Cashel to get a great tour around the castle
|
||||
grounds. I took lots of pictures, bought a few things for myself and a great
|
||||
sweater for my mom, fall down a few steps while wandering the castle grounds
|
||||
(resulting in a beautiful leg-bruise to match my archery-provided battle wound
|
||||
on my forearm), and we wrap up Tipperary and head to Cork.
|
||||
|
||||
We arrive in Cork and are immediately thrust into the realization that Cork is
|
||||
quite the large, industrial city. After a bit of confusion finding our way to
|
||||
our B&B for the night, we decide to take some naps to recover some energy and
|
||||
mana, and head out to find dinner and some nighttime entertainment. On the
|
||||
generocity of our very funny and cheery innkeep, we head to a place called
|
||||
Zak's, and are pleasantly surprised in the meal; I had a delicious Irish-beef
|
||||
burger, some awesome garlic bread, and a Murphy's to wash it all down (Murphy's
|
||||
is brewed in Cork; Guiness is not very welcomed here). We finish dinner, and
|
||||
head out to find some clubs for the night.
|
||||
|
||||
We start our evening off wandering the neighborhood around Zak's. We find a
|
||||
place, rather populated and playing somewhat good music, but quickly discover
|
||||
it's overpopulated with Binfo for the night. We pass this pub, and ask the
|
||||
bouncer for any suggestions, and get pointed towards a place called "Sober
|
||||
Lane." Ignoring the odd name, we head off in the appropriate direction and run
|
||||
into a metal pub along the way, so I insist we stop in and enjoy a drink. We get
|
||||
a pint, enjoy the music, and move on. 'Sober Lane' turns out to be a much
|
||||
younger-oriented pub, which doesn't dissappoint us, but it really pulls through
|
||||
when Chris discovers the dart board in the back corner. We quickly take it over,
|
||||
playing darts until the pub closes (oddly early, for our expectations), and
|
||||
Chris and I head out to relax outside. Cary and Suf, being the charmers that
|
||||
they are, end up chatting it with two girls local to the area, who invite all of
|
||||
us back to a place called 'Cruscien Lar' (which we all continually misunderstand
|
||||
as crusifixion). We follow them through the streets of Cork, and eventually wind
|
||||
up at the closed pub. They hit the secret side enterence, and convince the owner
|
||||
and co. to let us in.
|
||||
|
||||
Cruscien Lar (which I'm sure I'm spelling wrong), ended up being the undeniable
|
||||
high point of Cork. Once we got a bit more comfortable and began chatting with
|
||||
everyone, we really ended up enjoying ourselves! And then, we met Alan. Alan is
|
||||
a veritable world travelling musician. He has been pretty much everywhere,
|
||||
including state side, with his band 'The Jordans' and he had many tales to share
|
||||
with us. He mentioned that the prices for alcohol (and women (...and drugs))
|
||||
were best in Slovakia, that you'll never see anything more beautiful than the
|
||||
Southeastern Asian countries, and that Russia really isn't that bad a place.
|
||||
Really a lot of what we talked about fell into those topics, and it was a
|
||||
conversation which I enjoyed thoroughly. Alan taught me that being a world
|
||||
traveller doesn't take gobs of money and resources. All it takes is a desire to
|
||||
explore, and a willingness to step outside your comfortable little box.
|
||||
|
||||
Throughout the night we talked with Alan, and his friends Marie and Ger (the
|
||||
girls which Cary and Suf connected with), about not only their travels, but also
|
||||
their taste in music (which was gloriously metal-oriented), their careers, their
|
||||
adventures and their aspirations. As the night wound down, we all said our
|
||||
farewells, and left through the side door. Our night was almost at an end! As we
|
||||
wandered back to the B&B, we stumbled across a rather rowdy bunch, and Suf,
|
||||
being the social butterfly that he is, decided to hop on board. We eventually
|
||||
were introduced to Nollagh and her friends, who were travelling in our direction
|
||||
to a supposed party. Considering we're still young, as was the night, we tagged
|
||||
along and were eager to arrive at another Irish party. Sadly, the party was a
|
||||
bit of a bust, and seeing as we were so close to home, we decided to just call
|
||||
it a night. An awesome night, almost so much to as to rival our crazy adventures
|
||||
in Galway.
|
||||
|
||||
# Day 9: 08/04/10
|
||||
|
||||
```
|
||||
My father's name is Merry Merry Mack!
|
||||
```
|
||||
|
||||
After a rather enjoyable rest, we departed from Cork on our way to our final
|
||||
"big city" stop: Killarney. Killarney has a very homey feel about it. There are
|
||||
plenty of tourist shops, plenty of sites and sounds to experience, and the night
|
||||
life is absolutely amazing, but more on that in a bit.
|
||||
|
||||
We arrived at our B&B to find that the owner had stepped out for a bit, so we
|
||||
decided to just park and wander into town. We quickly found some great shops,
|
||||
restaurants, pubs, and other such attractions. Chris and I wandered around a few
|
||||
places, and I ended up finding a few good gifts for the family: a corkscrew and
|
||||
wine stopper for dad, both made of pewter; and a hat for Eric, which I think
|
||||
will suit him quite nicely. After a bit more wandering, we headed back to the
|
||||
B&B to relax and recover before we hit the town.
|
||||
|
||||
I think the most memorable part of Killarney for me was all the festivities
|
||||
going on at night in the city. Almost every pub had live music, there were
|
||||
people out walking and having a great time. There were lights, and food, and
|
||||
music, and drinks... it just felt like a fun place to be! We started our night
|
||||
wandering around a bit, and found ourselves at an outside banquet of sorts, with
|
||||
life music. Suf and I, exemplifying our boistrious nature, led the singing of
|
||||
the chorus (see the quote), and made our mark early in the Killarney
|
||||
perspective. After our job was done there, we found our way to a pub called
|
||||
'Scruffy's', near an amazing hotel. The band playing there had some great
|
||||
traditional music as well, which we joined in on. Had a pint, made some friends,
|
||||
moved on down the road to our final destination for the evening: McSorley's.
|
||||
McSorley's is appropriately named because my feet at the end of the night were
|
||||
very McSore. To say the least, McSorely's is about 50% enough to keep me in
|
||||
Ireland. The drinks were great, the atmosphere was amazing, and, the best part
|
||||
of all, the music was fantastic. This particular evening we were treated to a
|
||||
performance by a ground called "Zoot Allures", a cover band. They played an
|
||||
AMAZING set, with so many great songs, and such great energy, that it made me
|
||||
really wish American clubs would pull their heads out of their asses and
|
||||
actually play good music. Anyways, amazing music was played, several videos
|
||||
were filmed, more-than-several beverages were consumed, and at the end of the
|
||||
night, the lead singer from the group gave me a great, big bear hug. Naturally,
|
||||
I returned the favor.
|
||||
|
||||
Well, Zoot Allures wasn't the end of the night for us, as McSorely's has a
|
||||
secret back room dance club, so we obviously had to make use of that. We danced
|
||||
for a good while, then Chris, Cary and I decided to take off and get back to the
|
||||
B&B to sleep. We left a window open for Suf. Once again, to say the least,
|
||||
Killarney is absolutely amazing!
|
||||
|
||||
# Day 10: 08/05/10
|
||||
|
||||
```
|
||||
The room fell silent, as the man lowered his microphone to the crowd. A single
|
||||
bewildered bystander asked, "Yeah?" The man only nodded, a knowning nod. The
|
||||
bystander tipped his head back, and breathed deep the pub air, and finally, as
|
||||
the tension grew to an unberable level, cried out: "THUNDERSTRUCK!!!"
|
||||
```
|
||||
|
||||
I thought the first night was amazing. Holy crap this town just keeps getting
|
||||
better and better!
|
||||
|
||||
So, day 2. After some great, great sleep (which, of the 4 of us, I'm the only
|
||||
one to wake up in time for breakfast), I clean myself up and head to town.
|
||||
Yesterday I had seen an "internet cafe," and figured it would be similar to what
|
||||
we call internet cafes in America (I was wrong), so I made my way there to get
|
||||
my KoL fix, and check up on the tubes. Well, the internet cafe was a
|
||||
pay-per-use computer room, so I threw my cash at the front desk and got a couple
|
||||
hours of hardcore internet access. KoL Update: beat the boss bat, the Goblin
|
||||
King, and the first part of my Nemesis quest. Not bad, I guess, but I think it's
|
||||
safe to say that juggling an acension with travelling abroad is a bit difficult,
|
||||
unless you know what you're doing. I don't, for the most part.
|
||||
|
||||
After lunch at a (surprise!) Chinese food place, we decided to take the
|
||||
afternoon off and head back to the B&B to play some more Scion, before
|
||||
McSorley's opened up again. We did some great stuff, saved the freckled Scion,
|
||||
then I made the decision to let her die (which ended up coinciding with some
|
||||
major character development, so that's nice), and then Cary's character died
|
||||
defending her. So, all in all, we failed our mission, but succeeded at Scion.
|
||||
Huh.
|
||||
|
||||
Anyways, McSorley's opened up shortly after the game, so we hit up dinner (more
|
||||
Chinese), and I spent some time wandering around getting pictures of the pubs we
|
||||
had visited. It's funny: my dad complimented me on all the pictures of the
|
||||
beautiful scenary and what not, but he asked a very important questions: where
|
||||
are all the pubs?? So I tried to rectify that our last night in Killarney,
|
||||
snapping a picture of a few placed before winding my way back to McSorley's for
|
||||
the evening. Round 2... FIGHT!
|
||||
|
||||
The cover band at McSorley's tonight was not as good as the other band, which is
|
||||
the equivalent as saying that the 200000 Candle-Power flashlight isn't as bright
|
||||
as the 300000 Candle-power one: they're both way brighter (or, awesomer in this
|
||||
case) than the required flashlight (or, typical American cover band, in this
|
||||
case). Tonight's show was by Revenge, who paid tribute to some of the older
|
||||
songs, including quite a bit of ACDC. We rocked out hard core, really supporting
|
||||
the band out front by dancing and singing along. Then the moment happened, the
|
||||
moment that Chris has claimed is the most epic moment of the trip. The quote
|
||||
says it all, but in short: the band was playing Thunderstruck by ACDC, and the
|
||||
lead singer lowered the mic to me to scream "THUNDERSTRUCK!!" into, and it was
|
||||
amazing timing. I do have to say, sometimes my timing is spectacular. Anyways,
|
||||
that memory will stick with me forever, and I think with Chris, Suf and Cary as
|
||||
well, so I consider this night an unbelievable success.
|
||||
|
||||
Once more, we invaded the back room, only this time we stayed until close. We
|
||||
danced our way into another dance party, because evidently we're all Lords of
|
||||
the Dance, and met some new friends: May, a French girl there with friends. We
|
||||
danced with them, we danced with total strangers, and we danced until we
|
||||
couldn't dance any more! I literally understood what it meant to be out of mana
|
||||
that night. I had barely the energy to return home, before I just passed out on
|
||||
my bed.
|
||||
|
||||
Killarney is the city I would most enjoy in Ireland. Of all the places we've
|
||||
gone, it's the city which feels the most alive. It has the loudest pulse, the
|
||||
brightest flash, the sweetest music; it's the type of environment I want to live
|
||||
in. While I don't think Ireland is quite the island for me, if I did decide to
|
||||
live here, Killarney would be my final destination.
|
||||
|
||||
# Day 11: 08/06/10
|
||||
|
||||
```
|
||||
Wow, this place is nice. I don't think we belong here.
|
||||
```
|
||||
|
||||
Today we all are taking a bit of a down day. After the past 2 nights, I'm
|
||||
exhausted, and ready to just sit around a do nothing for a bit. Well,
|
||||
conveniently Cary is getting his tattoo today, so I got my wish. We check out of
|
||||
our B&B, pack up the car, park in town and go exploring a bit more. After I
|
||||
stop at the Tourist Information, I learn of a free Wi-Fi pub nearby, and relax
|
||||
there for a couple of hours, enjoying some tea and playing some KoL. I don't
|
||||
really achieve anything of any worth in game, and Suf, Cary and Chris show up
|
||||
just in time for us to work on our Scion characters a bit and head to dinner. We
|
||||
go to the Chinese food place we hit up last night for lunch, and then Cary must
|
||||
depart for his tattoo. Chris, Suf and I all decide to wander back into the pub
|
||||
for a bit, where I finish up my KoL for the day, enjoy some more Scion, check
|
||||
the email, and generally just chillax.
|
||||
|
||||
We leave Killarney around 5:30 and arrive at our second-to-last destination,
|
||||
Ballyseede Castle Hotel. Since we have nothing to do until later, we settle in,
|
||||
relax for a bit and get to playing some more Scion. That's right: WE ROLEPLAYED
|
||||
IN A CASTLE.
|
||||
|
||||
After the session, we split up: Cary, Suf and Chris all head back to Killarney
|
||||
(a whopping 15 minute drive) to hit up McSorley's again, and I lame out and take
|
||||
the night off. Whilst waiting for sleep to drift in, I enjoy some good ol'
|
||||
American past-time and watch a bit o' telly: 'Analyze That' was on. I watched
|
||||
'Analyze That' in a castle. Today is just full of achievements!
|
||||
|
||||
# Day 12: 08/07/10
|
||||
|
||||
```
|
||||
"Ma'am? A quick question. We named the dogs: this one is named Roger the Mighty,
|
||||
and this one is named George the Stout. How close were we?"
|
||||
```
|
||||
|
||||
After a wonderful night's rest in the castle, we pack up our things, enjoy a
|
||||
delicious breakfast, explore the castle grounds a bit more, and head off to our
|
||||
final B&B, just outside of Shannon.
|
||||
|
||||
As we approached our destination, we decided to stop by Limerick for
|
||||
lunch/dinner and just explore our initial landing grounds one last time. We
|
||||
wander to 'The Bitter End', take some pictures, and find our way to a Chinese
|
||||
food place (big surprise) and an outdoor pub. Since we couldn't decide on which
|
||||
one to go to, I suggested we go to both. This decision was met with much
|
||||
happiness. After we finished our Chinese food (quite delicious), we headed next
|
||||
door, and was met with delicious desserts and beautiful women. Our waitress let
|
||||
slip it was her birthday, so in true, boistrious American style, we sang her
|
||||
'Happy Birthday!' (Hope it was a good one, Sam!). Apparently she got in trouble
|
||||
for that... Oops...
|
||||
|
||||
Anyways, we hit up our B&B to drop stuff off, and repack our bags for tomorrow's
|
||||
trip, and finish up our Scion campaign. We hopped out to 'Durty Nelly's' for a
|
||||
quick dinner (and sadly, our waitress Una already had her birthday a month ago)
|
||||
of traditional Fish and Chips, then back to the B&B to finish up our night
|
||||
rolling the dice. With the campaign finished, we hit the hay in preparation for
|
||||
tomorrow's voyage. Hopefully none of my loot get's wrecked!
|
||||
|
||||
# Day 13: 08/08/10
|
||||
|
||||
```
|
||||
"Do I really have to be the asshole to say that we travelled back in time in
|
||||
that hot tub?" - Hot Tub Time Machine
|
||||
```
|
||||
|
||||
And just as quickly as it began, our whirlwind tour comes to an end. We left the
|
||||
B&B early this morning to get to the airport, returned the car without a fuss,
|
||||
checked in our baggage, shuffled through customs and passport checks, and
|
||||
eventually found our way to the gate. The airport in Shannon has free Wi-Fi,
|
||||
which is epic, so I whiddle away at my turn-count in KoL, achieving little but
|
||||
still enjoying the game. Shoot off a text to mom letting her know things are on
|
||||
time, and eventually board my first of three flights for the day.
|
||||
|
||||
The flight is rather uneventful. We're seated next to a kid flying back from a
|
||||
wedding, so it was fun to chat with him for a bit. Then, onto the free movies:
|
||||
Iron Man 2 (pretty boss), Hot Tub Time Machine (really, quite the unknown
|
||||
comedy. Hilarious!) and Repo Men (meh, not really my bowl of soup...) round out
|
||||
the trip. We land soundly in JFK, disembark, and find our next flight delayed,
|
||||
so Chris, Suf and I, after bidding farewell to Cary at the Terminal, head to
|
||||
'NYC Sports Grill', right outside our arrival gate from the beginning of the
|
||||
voyage, and enjoy some good ol' fashion American burgers before our flight to
|
||||
Boston.
|
||||
|
||||
The flight to Boston is painless, despite the Logan Airport's best attempt at
|
||||
being the worst air port ever (I just really don't like it). We land safe and
|
||||
sound back home, and I eagerly make my way to baggage claim to make sure
|
||||
everything is safe there. I get my bags (w00t), find everything in one piece and
|
||||
accounted for (w00t x2), and bid Chris and Lindsay farewell as my parents drive
|
||||
up in the van.
|
||||
|
||||
Thus, our voyage ends. A successful first trip overseas, and a more-or-less
|
||||
successful first attempt at travel blogging too. Methinks I'll have to try this
|
||||
again sometime. Farewell, and as they say on the Emerald Isle: CHEERS!
|
|
@ -1,82 +0,0 @@
|
|||
---
|
||||
tabtitle: Bye Bye Windows
|
||||
title: Farewell to Windows Tour 2015
|
||||
topics: gaming
|
||||
pub: "2015-04-28"
|
||||
short_desc: "It has come time to bid Windows farewell. Once upon a time Windows was
|
||||
the only digital world I knew. It began when I was young, during the
|
||||
venerable 3.1 era. I remember booting up our family computer into DOS, and
|
||||
before starting Windows I could start Doom 2 or Keen's Dream, or any
|
||||
number of other games. That was my first interaction with a command line.
|
||||
My, my, how times have changed."
|
||||
---
|
||||
|
||||
<h1>Farewell to Windows Tour 2015</h1>
|
||||
<p>It has come time to bid Windows farewell. Once upon a time Windows was
|
||||
the only digital world I knew. It began when I was young, during the
|
||||
venerable 3.1 era. I remember booting up our family computer into DOS, and
|
||||
before starting Windows I could start Doom 2 or Keen's Dream, or any
|
||||
number of other games. That was my first interaction with a command line.
|
||||
My, my, how times have changed.</p>
|
||||
|
||||
<p>From Doom 2 and Keen I went on to Baldur's Gate and Battlezone. I
|
||||
dabbled here and there in NES/Sega/SNES/Genesis stuff, but PC gaming
|
||||
always held my attention. The only exception to this was my Gameboy with
|
||||
Pokemon, because that game is literal crack to a 12 year old. Baldur's
|
||||
Gate held my attention like only a classic RPG can, and I remember
|
||||
pouring over the manual and this guidebook I had to learn as much as I
|
||||
could about the world the game created. Around this time I was also
|
||||
getting into Dungeons and Dragons (Satan's game!), so there was a
|
||||
definite mixture of digital and tabletop gaming. Battlezone, on the
|
||||
other hand, was introduced to me by my good friend Rob, and became a
|
||||
classic among my group of friends. Then, of course, Smash Bros became
|
||||
a thing and that was our game of choice. That and Soul Calibur; ah
|
||||
memories.</p>
|
||||
|
||||
<p>It wasn't until relatively recently that I ever even tried gaming on
|
||||
Linux. My senior year of high school I was introduced to Linux by my
|
||||
friend Ben. That spawned the interest, but it was always secondary to
|
||||
my true love of computers, gaming. Throughout college I had an Asus
|
||||
netbook, which was always my Linux machine, but I still had my Windows
|
||||
desktop, which was my gaming machine. Windows was essential for gaming:
|
||||
Steam; Final Fantasy 11 (yes, I know.); triple-A titles. These
|
||||
were "Windows Exclusives," unless I wanted to venture into console
|
||||
territory. Thus it remained, throughout college and my early-mid 20's.
|
||||
Then something magical happened: Steam came to Linux. That was the
|
||||
deathblow to Windows in my book, at least for my needs. I had long ago
|
||||
dropped my interest in many games, leaving a small but well-loved list of
|
||||
games that I do still care about. The majority of these are now supported
|
||||
on Linux, but there are a few which remain Windows only. That is what this
|
||||
"tour" is for; the last few games I want to play on Windows, before I go
|
||||
Linux only.</p>
|
||||
|
||||
<h3>Featuring</h3>
|
||||
<p>The list isn't huge, but there are some definite strong players:</p>
|
||||
<ul>
|
||||
<li>Dark Souls and Dark Souls 2</li>
|
||||
<li>Dishonored</li>
|
||||
<li>Duke Nuken Forever</li>
|
||||
<li>Far Cry 3: Blood Dragon</li>
|
||||
<li>Spec Ops: The Line</li>
|
||||
</ul>
|
||||
<p>Mostly "newer" games, mostly graphics-intensive games. I know these
|
||||
run fine on Windows, and they may work in Wine but I don't feel like
|
||||
either figuring out if they do, or trying to make them play nice.</p>
|
||||
|
||||
<h3>Special Guest Appearances By</h3>
|
||||
<p>There are a few games that I will fiddle with to get working in Wine
|
||||
though, and these are games I don't quite want to let go, but still are
|
||||
Windows only: Skyrim and Guild Wars 2. I love Guild Wars 2, I think it's
|
||||
the best MMO on the market, with the most supportive and friendly
|
||||
community and one of the best developers. Skyrim is, well, Skyrim; I like
|
||||
hitting things. Chivalry would be a close third on this list, but Chivalry
|
||||
is on Linux now, so I can scream my lungs out and stab people whenever I
|
||||
want. Regardless, I imagine I'll be playing plenty of each of these while
|
||||
finishing up the main list.</p>
|
||||
|
||||
<h3>Tickets on Sale Now!</h3>
|
||||
<p>Well, not exactly. But this would be a fantastic way to get into
|
||||
streaming, and maybe I'll transition from Windows to Linux with that as
|
||||
well. Streaming has always been something I've wanted to do, but never had
|
||||
the time nor effort to pursue. So, either tradition will hold strong, or a
|
||||
new challenger will appear. Until then.</p>
|
|
@ -1,105 +0,0 @@
|
|||
---
|
||||
tabtitle: Philosophy of Bill
|
||||
title: The Philosophy of Bill, Abbreviated
|
||||
topics: philosophy
|
||||
pub: "2015-05-04"
|
||||
short_desc: "I consider myself a very philosophical person. That doesn't
|
||||
mean I'm any good at philosophy, I just tend to think a lot about ethics,
|
||||
morality, and happiness. Recently I've been thinking more about my
|
||||
worldview, what I value as important, and how I achieve happiness in my
|
||||
daily life. I wanted to jot down what I feel is a brief examination of my
|
||||
basic tenants; the basic Philosophy of Bill."
|
||||
---
|
||||
|
||||
# Perception And Thought
|
||||
|
||||
I consider myself a very philosophical person. That doesn't mean I'm any
|
||||
good at philosophy, I just tend to think a lot about ethics, morality, and
|
||||
happiness. Recently I've been thinking more about my worldview, what I
|
||||
value as important, and how I achieve happiness in my daily life. I wanted
|
||||
to jot down what I feel is a brief examination of my basic tenants; the
|
||||
basic Philosophy of Bill.
|
||||
|
||||
I derive a lot of my philosophy from my Christian up-bringing and
|
||||
Stoicism. I'm not a very religious person, though. I never really was. My
|
||||
belief of what God is falls strongly under the agnostic category: I'm not
|
||||
sure what God is, or if I believe in a God, but I do believe in a higher
|
||||
power of some sort. I feel it's logical to always assume there is something
|
||||
more powerful than yourself, but I also feel it's impossible to prove this.
|
||||
I like to define faith as simply irrational belief. I have faith in many
|
||||
things, both permanent and temporary. I like faith, actually, quite a bit.
|
||||
I admire those who have strong faith, so long as they maintain reason and
|
||||
are not fanatical. I also try to maintain a very open approach to religion.
|
||||
I believe everyone has the right to worship however they choose, so long as
|
||||
it does not involve anything overly immoral, such as killing. I have a hard
|
||||
time tolerating people who are overly zealous about their faith, or about
|
||||
denouncing someone else's faith. Nothing is more disgusting than attacking
|
||||
someone for their beliefs. They are called beliefs for a reason; they are
|
||||
not fact, they are opinion. It's ineffective to attack opinions, because
|
||||
they are ephemeral to begin with. Like trying to hit a ghost with a
|
||||
lamp-post: it just won't do what you think it will.
|
||||
|
||||
I love debate and discussion, but there is a clear difference between
|
||||
debate for truth and argument for winning. I try to keep in the first camp,
|
||||
but I'm not super-human and I have an ego so I often visit the later.
|
||||
However, I always learn when I make mistakes, and I cherish when I fail,
|
||||
because it only serves to better myself. I think that's the most
|
||||
fundamental under-lying theme of my philosophy: always better myself;
|
||||
always learn something. That ego thing, though, that's a tough monster to
|
||||
handle. I've found myself adopting views similar to Zen Buddism (I think)
|
||||
often when trying to quell my ego:
|
||||
|
||||
- All will return to nothingness.
|
||||
- Ergo, what I do will be inconsequential.
|
||||
- Ergo, I am inconsequential.
|
||||
|
||||
I think most people hear this and grow disheartened or depressed, but I
|
||||
view it as very uplifting. There's a certain freedom in knowning that, no
|
||||
matter how much I fail, in the end it won't matter much. It's sobering to
|
||||
remember that no matter how much I've achieved or won, in the end it won't
|
||||
matter much. It's important to remember that I am nothing but an improbable
|
||||
spec of matter floating on a rock in an unimaginably vast and empty space.
|
||||
Too many people get caught up on that "in the end" part, though, and they
|
||||
begin to question why they should act at all. Well, there's a bit of time
|
||||
between now and "the end" and you need to fill the void with something. For
|
||||
me, that's learning, and understanding, and appreciating.
|
||||
|
||||
In my studies, I've discovered and adopted Stoicism as a philosophy. I
|
||||
won't explain too much what Stoicism is about, since there are many sources
|
||||
online which do that. I apply Stoicism mostly in the mental aspects of the
|
||||
philosophy, and less in the faith/religious aspects. From Stoicism, I have
|
||||
reinforced my beliefs in the importance of understanding our environment. I
|
||||
remind myself every day of things I cannot control, and that I can only
|
||||
control my perception of things. I try to act according to logic and
|
||||
wisdom, and not according to feelings, which can hamper reason. For
|
||||
example, I try not to let anger control my actions if I get trolled by my
|
||||
friend Nick. I understand that anger, love, stress, and all other feelings
|
||||
are very much out of my control, but allowing them to control me is well
|
||||
within my control. In other words, I very much get angry, or grow lustful,
|
||||
or prideful, but I try not to let those feelings dictate my actions. I
|
||||
believe it was Seneca the Younger who said, "Men are not angered by things,
|
||||
but by their perceptions of them." One of many mantra I keep in
|
||||
reserve.
|
||||
|
||||
The most important thing in my life, though, is not control but
|
||||
happiness. I can seek to control my perceptions and emotions all I want,
|
||||
but if it does not lead to happiness, it is a fruitless endeavor. I find
|
||||
happiness most when I learn; when I understand a system. I'm an engineer at
|
||||
heart, so I view the world as a system of systems (of systems, of
|
||||
systems...) each of which is bare to understanding. I free myself from ego
|
||||
and oppression so that I can learn without fear of failure or the
|
||||
disapproval of my peers. I like to always remind myself that the only
|
||||
person who truly cares about me, is me. That's not to say others don't care
|
||||
about me, but they care about themselves first, and me afterwards. That's
|
||||
how things are; it's not wrong or depressing or hurtful it's just the way
|
||||
the system works. I care for many people, but I'm always number one on the
|
||||
list.
|
||||
|
||||
While all this is well and good, philosophy is an ever changing system;
|
||||
a CICD environment. I am constantly integrating new ideas and concepts into
|
||||
my understanding of the world, and sometimes purging old or unnecessary
|
||||
ones. I have my fair-share of quandries, perhaps more so than others;
|
||||
perhaps it's an unfair-share. That's what makes it worth it, though, to me.
|
||||
I seek to learn, and in doing so, find happiness and confusion. It's a
|
||||
recursive system: the confusion leads to learning, which leads to happiness
|
||||
and confusion. And I love recursion.
|
|
@ -1,151 +0,0 @@
|
|||
---
|
||||
tabtitle: "An Examination of TLS, Part 1"
|
||||
title: "An Examination of TLS, Part 1"
|
||||
topics: technology
|
||||
pub: "2015-05-06"
|
||||
short_desc: "TLS, more often referred to as SSL, is a means by which a
|
||||
secure connection is established over a computer network. In this
|
||||
introductionary post, I layout the steps to establishing a secure
|
||||
connection."
|
||||
---
|
||||
|
||||
<h1>TLS: An Examination Into the Security of the Internet, Part 1</h1>
|
||||
|
||||
<p>TLS, more often referred to as SSL, is the means by which a secure
|
||||
connection is established over a computer network. Most often these
|
||||
connections are established over the Internet, between a client (ex., web
|
||||
browser) and a server (ex., a web site). In the specific case of web sites,
|
||||
HTTP is layered on TLS/SSL to ensure a secure and private connection; HTTPS
|
||||
is not a separate protocol, rather a combination or protocols. Establishing
|
||||
a secure connection thus requires a few steps:</p>
|
||||
|
||||
<h2>Step 1: Establish an TCP connection</h2>
|
||||
|
||||
<p>TCP is a transport-layer protocol that establishes a connection which is
|
||||
reliable and fault-tolerant. As opposed to UDP, TCP will seek to verify
|
||||
that information is transferred successfully and as intended. This is
|
||||
important for the next step. The connection is established as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>A client will contact a server and announce it wishes to
|
||||
establish a connection. (Called a SYN, short for synchronize). This
|
||||
SYN is a number, stored as part of the TCP header; we'll call it
|
||||
A.</li>
|
||||
<li>The server will respond to the client announcing it has
|
||||
received the client's wish, and also state that it wishes to establish
|
||||
a connection. (Called a SYN-ACK, short for synchronize-acknowledge).
|
||||
Ths SYN-ACK is actually two values: One is the ACK value, A+1. The
|
||||
second is the server's SYN value, which we'll call B.</li>
|
||||
<li>The client then acknowledged the server's wish, thus
|
||||
establishing a connection (Called simply an ACK). Because it was
|
||||
expecting an ACK value in step 2, and expecting that value to be A+1,
|
||||
it can verify that this connection is the same as the one it started.
|
||||
Additionally and similarly, the ACK which gets returned to the server
|
||||
as B+1.</li>
|
||||
<li>At this point, the connection is established. Both client and
|
||||
server have assured themselves of a proper connection thanks to the
|
||||
three-way handshake described above. From this point forward, the
|
||||
server has bound a specific port to listen for any further
|
||||
communications with the client. </li>
|
||||
</ol>
|
||||
|
||||
<h2>Step 2: Establish an SSL/TLS Connection</h2>
|
||||
|
||||
<p>TLS, Transport Layer Security, is appropriately on the same layer as
|
||||
TCP, the transport layer. TLS relies on public key authentication to
|
||||
establish a secure connection between the aforementioned client and server.
|
||||
The connection is established as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>A client will announce to the server it wishes to establish a
|
||||
TLS/SSL connection. It will include information such as it's TLS/SSL
|
||||
version, the ciphersuites it wishes to use, and which compression
|
||||
methods it wishes to use.</li>
|
||||
<li>The server then uses the highest possible TLS/SSL version, chooses
|
||||
one of the ciphersuites available to the client, chooses one of the
|
||||
compression methods available to the client, and sends it's
|
||||
certificate. A certificate is basically a container for a server's
|
||||
public key, but with many additional details, and often signed by a
|
||||
certificate authority, to further verify the certificate contains the
|
||||
proper key. More on certificates in part 2.</li>
|
||||
<li>The client then uses the server's public key to encrypt a secret.
|
||||
This secret is then sent back to the server.</li>
|
||||
<li>The server decrypts the secret with it's private key. This secret
|
||||
is now shared by only the client and the server, and from this point
|
||||
on is used for symmetric encryption.</li>
|
||||
</ol>
|
||||
|
||||
<p>From this point forward, the connection is encrypted and secure from
|
||||
external threats. Of course, this all depends on a trusted certificate and
|
||||
proper encryption algorithms.</p>
|
||||
|
||||
<h2>Step 3: Establish an HTTP connection</h2>
|
||||
|
||||
<p>HTTP is an application-layer protocol, and is responsible for translating
|
||||
the information from the transport layer into information used by an
|
||||
application. Your web browser, for example, will utilize HTTP to translate
|
||||
a bunch of hexidecimal information into alpha-numeric information, which is
|
||||
then formatted and presented to you as a web page. Security is previously
|
||||
established thanks to TLS/SSL, and reliability is previously established
|
||||
thanks to TCP.</p>
|
||||
|
||||
<p>Part 2 focuses more on the specifics of TLS: certificates, cipher
|
||||
suites, and public key authentication.</p>
|
||||
|
||||
<h1>Sources</h1>
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Public-key_cryptography">
|
||||
Wikipedia: Public-key Cryptography</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/6290/how-is-it-possible-that-people-observing-an-https-connection-being-established-w">Stack
|
||||
Exchange: How is it possible that people observing an HTTPS
|
||||
connection being established wouldn't know how to decrypt
|
||||
it?</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work">
|
||||
Stack Exchange: How Does SSL/TLS work?</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes (because why remove them?)
|
||||
Asymmetric Key Authentication:
|
||||
- Relies on two keys: Public key, Private key
|
||||
- Both keys are related, but impossible (computationally infeasable) to
|
||||
identify the private key based on the public key [1][2]
|
||||
- The public key can be distributed publicly
|
||||
- Used to encrypt message to the owner of the private paired key
|
||||
- Used to verify signatures from the private key
|
||||
- The private key is kept secret
|
||||
- Used to decrypt message from the public paired key
|
||||
- Used to as a digital signature
|
||||
|
||||
Basics of an Asymmetric Key handshake:
|
||||
1. Client reaches out to server, requesting a secure connection
|
||||
2. Server acknowledges request, sends back it's public key
|
||||
- This is commonly known as a certificate. Often signed by a
|
||||
third-party to ensure it is what it's supposed to be.
|
||||
3. Client uses this public key to encrypt a secret, and sends the package
|
||||
back to the server.
|
||||
4. The server then uses it's private key to decrypt the public-key
|
||||
encrypted secret, and uses that secret hence forth to encrypt all traffic.
|
||||
5. A private connection is now established.
|
||||
|
||||
Basics of Certificates
|
||||
1. A certificate is a vessel for a server to provide authentication
|
||||
information.
|
||||
2. Typically a certificate will contain the following information:
|
||||
- A UUID of the certificate itself
|
||||
- The subject of the certificate
|
||||
- The signature, and signature algorithm used
|
||||
- The issuer of the certificate, as well as dates when it is valid
|
||||
- The purpose of the key
|
||||
- The thumbprint, and algorithm, used to hash the key
|
||||
- The public key itself
|
||||
3. Certificate Authorities act as a third part to verify the integrity of
|
||||
public keys.
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
|
@ -1,61 +0,0 @@
|
|||
---
|
||||
tabtitle: A Good Friend's Father
|
||||
title: A Good Friend's Father
|
||||
topics: [philosophy, life]
|
||||
pub: "2015-07-09"
|
||||
short_desc: "A good friend's father died. What can I learn from this?"
|
||||
---
|
||||
|
||||
<h1>A Good Friend's Father</h1>
|
||||
<p> A good friend's father died. He was quite a strong figure in my
|
||||
childhood. He was compassionate, endearing, strong, and happy. He is
|
||||
succeeded by two of my best childhood friends, and his second wife. I will
|
||||
always remember him as smiling, or laughing, or even sometimes frustrated
|
||||
with his children.</p>
|
||||
|
||||
<p> When I learned of his passing, I immediately thought of my position in
|
||||
life. My father is roughly the same age, and my mother slightly younger.
|
||||
Was this death too early? Is there such a thing? If I stick to my
|
||||
philosophical beliefs, then death is fated, regardless of where or when;
|
||||
never early, never late. When I told a friend of the passing, his remarks
|
||||
were expectedly typical: "That's fucked up. He died so early. He died so
|
||||
young." The trick with beliefs is they are always tested. I found myself
|
||||
caught up in grief and worry. Surprised at the passing, worried with the
|
||||
thought of my parents dying. I even grew anxious of the funeral and calling
|
||||
hours. Suddenly this anxiety was like a weed, finding it's way into the
|
||||
cracks in my beliefs and understanding, unsettling and disrupting my peace
|
||||
of mind. Instead of mourning the loss, I tangled myself into an emotional
|
||||
knot, and selfishly so.</p>
|
||||
|
||||
<p> I sat, a few days after the news, watching the rain. I considered how
|
||||
the rain falls where it is due, regardless of what it falls on. The
|
||||
rain cares not, it simply is. I considered the millions of drops falling on
|
||||
the millions of people all around the globe. Their situations in life as
|
||||
unique as each drop; in structure similar, yet in action ever slightly
|
||||
divergent. In life, I cannot decide where or when I exist, I can only
|
||||
decide how to perceive my existance. Epictetus wrote, "man is disturbed not
|
||||
by things, but by the views he takes of them." My perceptions were skewed,
|
||||
my understanding flawed, and thus I was disturbed.</p>
|
||||
|
||||
<p> One of my favorite analogies is Bruce Lee's metaphor about water. It is
|
||||
a reminder to be fluid and formless, adaptable and potent; "If nothing
|
||||
within you stays rigid, outward things will disclose themselves." There's
|
||||
no way for me to know what will be asked of me, as my life moves forward.
|
||||
I must be shapeless, so when obstacles appear I flow around or through
|
||||
them, without hesitation. I cannot affect when or how these obstacles
|
||||
appear, only how I perceive them. I had forgotten this. </p>
|
||||
|
||||
<p> A good friend's father died, and he reminded me how to live.</p>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes
|
||||
|
||||
Rest in peace, Chaz. You were a good man, a good father, and a friend.
|
||||
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
<!-- cursor: 11 -->
|
|
@ -1,136 +0,0 @@
|
|||
---
|
||||
tabtitle: "An Examination of TLS, Part 2"
|
||||
title: "An Examination of TLS, Part 2"
|
||||
topics: technology
|
||||
pub: "2015-11-10"
|
||||
short_desc: "TLS, more often referred to as SSL, is the means by which a secure
|
||||
connection is established over a computer network. Part 1 examines how to
|
||||
establish a secure connection using TLS. This article examines further the
|
||||
techniques and technology that makes TLS secure. Specifically, a brief
|
||||
examination of certificates, cipher suites, and public-key
|
||||
authentication."
|
||||
---
|
||||
|
||||
<h1>TLS: An examination into the Security of the Internet, Part 2</h1>
|
||||
|
||||
<p>TLS, more often referred to as SSL, is the means by which a secure
|
||||
connection is established over a computer network. Part 1 examines how to
|
||||
establish a secure connection using TLS. This article examines further the
|
||||
techniques and technology that makes TLS secure. Specifically, a brief
|
||||
examination of certificates, cipher suites, and public-key
|
||||
authentication.</p>
|
||||
|
||||
<h2>Certificates</h2>
|
||||
<p>A certificate is a vessel for a domain to provide authentication
|
||||
information. More specifically, and perhaps most importantly, a certificate
|
||||
is the package which transfers a key. TLS relies entirely upon Public-Key
|
||||
Authentication to setup a secure connection. The challenge with Public-Key
|
||||
Authentication is often sharing keys in a verifiable and secure manner.
|
||||
This is to say that, despite public keys being public, you still need to
|
||||
verify the owner of the key. This is where certificates, and Certificate
|
||||
Authorities come in. Each certificate is tailored to a specific domain. It
|
||||
includes not only the public key for a user to connect to the server with,
|
||||
but also meta-data about the certificate: a UUID, and information about the
|
||||
Certificate Authority; a signature authorizing the certificate, as well as
|
||||
the encryption used for the signature; a thumbprint of the key, and details
|
||||
of the algorithm used to hash the key; and a purpose for the certificate.
|
||||
Certificates may contain additional details, but the aforementioned list is
|
||||
required.</p>
|
||||
|
||||
<p>A Certificate Authority (CA) is a trusted third-party repository of
|
||||
signed keys. The purpose of a CA is very specific: verification. A CA will
|
||||
generate and issue a key-pair to a domain. The domain can then share the
|
||||
public key using a certificate. How specifically a CA verifies the domains
|
||||
and keys is out of scope of this discussion, but Wikipedia provides many
|
||||
details on the techniques used.</p>
|
||||
|
||||
<h2>Cipher Suites</h2>
|
||||
<p>A cipher is the algorithm used to encrypt information. Ciphers are
|
||||
incredibly complex mathematical formulae, and are well beyond my
|
||||
understanding. However, it is important to note that the strength of a key
|
||||
is only as strong as the cipher suite used to generate it. Likewise, the
|
||||
strength of a certificate is only as strong as the cipher used to sign
|
||||
it. Keep this in mind when you generate and work with keys.</p>
|
||||
|
||||
<h2>Public-Key Authentication</h2>
|
||||
<p>The most important part of TLS is public-key authentication. I would
|
||||
argue that public-key authentication is one of the most important facets of
|
||||
the technical world. Because of this, I want to recap in more general terms
|
||||
how public-key authentication works:</p>
|
||||
|
||||
<ol>
|
||||
<li>Two parties want to establish a secure connection.</li>
|
||||
<li>Each party generates two keys: one to share publicly, one to keep
|
||||
secret.</li>
|
||||
<li>Each party then shares their public keys.</li>
|
||||
</ol>
|
||||
|
||||
<p>Now, whenever one of the two parties wants to securely communicate with
|
||||
the other, they "sign" (encrypt) the communication with their private key.
|
||||
The second party can then use the public key of the first party to verify
|
||||
the identify of the sender, and decrypt the message.
|
||||
|
||||
<h2>Conclusion</h2>
|
||||
<p>Security is a very deep and involved topic, but one I feel every
|
||||
Sys-Admin should know a bit about. While these posts are only meant to serve
|
||||
as a high-level overview of TLS, there are many more-detailed sources
|
||||
available. I would suggest a visit to your local Wikipedia as a good first
|
||||
step. Thanks for reading.</p>
|
||||
|
||||
<h1>Sources</h1>
|
||||
<ul>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Public-key_cryptography">
|
||||
Wikipedia: Public-key Cryptography</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/6290/how-is-it-possible-that-people-observing-an-https-connection-being-established-w">Stack
|
||||
Exchange: How is it possible that people observing an HTTPS
|
||||
connection being established wouldn't know how to decrypt
|
||||
it?</a></li>
|
||||
<li><a
|
||||
href="https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work">
|
||||
Stack Exchange: How Does SSL/TLS work?</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
||||
|
||||
<!-- Notes (because why remove them?)
|
||||
Asymmetric Key Authentication:
|
||||
- Relies on two keys: Public key, Private key
|
||||
- Both keys are related, but impossible (computationally infeasible) to
|
||||
identify the private key based on the public key [1][2]
|
||||
- The public key can be distributed publicly
|
||||
- Used to encrypt message to the owner of the private paired key
|
||||
- Used to verify signatures from the private key
|
||||
- The private key is kept secret
|
||||
- Used to decrypt message from the public paired key
|
||||
- Used to as a digital signature
|
||||
|
||||
Basics of an Asymmetric Key handshake:
|
||||
1. Client reaches out to server, requesting a secure connection
|
||||
2. Server acknowledges request, sends back it's public key
|
||||
- This is commonly known as a certificate. Often signed by a
|
||||
third-party to ensure it is what it's supposed to be.
|
||||
3. Client uses this public key to encrypt a secret, and sends the package
|
||||
back to the server.
|
||||
4. The server then uses it's private key to decrypt the public-key
|
||||
encrypted secret, and uses that secret hence forth to encrypt all traffic.
|
||||
5. A private connection is now established.
|
||||
|
||||
Basics of Certificates
|
||||
1. A certificate is a vessel for a server to provide authentication
|
||||
information.
|
||||
2. Typically a certificate will contain the following information:
|
||||
- A UUID of the certificate itself
|
||||
- The subject of the certificate
|
||||
- The signature, and signature algorithm used
|
||||
- The issuer of the certificate, as well as dates when it is valid
|
||||
- The purpose of the key
|
||||
- The thumbprint, and algorithm, used to hash the key
|
||||
- The public key itself
|
||||
3. Certificate Authorities act as a third part to verify the integrity of
|
||||
public keys.
|
||||
-->
|
||||
|
||||
<!-- ================================= -->
|
||||
<!-- ================================= -->
|
|
@ -1,126 +0,0 @@
|
|||
---
|
||||
tabtitle: "Azulien Blackblade"
|
||||
title: "Character Backstory: Azulien Blackblade"
|
||||
topics: [gaming, writing]
|
||||
pub: "2018-01-12"
|
||||
short_desc: "Here's the character backstory for one of my older characters
|
||||
from a game long since forgotten: Azulien Blackblade. Enjoy!"
|
||||
---
|
||||
|
||||
Here's the character backstory for one of my older characters from a game long
|
||||
since forgotten: Azulien Blackblade. This character was a fighter-sorcerer,
|
||||
built for a custom 3.5 game run by my friend Bill. He was loads of fun to play,
|
||||
though I may have spoken up when I should have stayed silent. He died as a pile
|
||||
of pieces, after taunting a demi-god and, expectedly, being eviserated. Enjoy!
|
||||
|
||||
## Character Backstory: Azulien Blackblade
|
||||
|
||||
I was a prestigious man. Once I wore the robes of a wizard. I studied at the
|
||||
greatest libraries, spoke with the most intelligent scholars, and kept company
|
||||
with the Archmages. But one day that all changed. The day I will never forget in
|
||||
all my life: the day the Urdeshi attacked.
|
||||
|
||||
We were travelling through the northern regions of the desert, making our way to
|
||||
ruins located among the dunes. As we stopped to drink and rest, our party was
|
||||
beset upon by raiders, shielding their faces with wrapped fabrics, and attacking
|
||||
us relentlessly with blades and spears. Of the 15 in our band, only 3 lived
|
||||
through the attack. We were the unlucky ones. My robes were bloodied and torn,
|
||||
my spellbook was burned before my eyes, my components along with it, and my
|
||||
knowledge of the arcane became a secret lest I beg for death. Many times I had
|
||||
considered revealing my talents, and welcoming the purge that would follow. The
|
||||
particular group of Urdesh we found were skeptical of magic: they broke all our
|
||||
potions, our wands, anything that didn't smell normal. My familiar, my dear
|
||||
raven, was roasted and force fed to me. I didn't eat for days afterwards.
|
||||
|
||||
They tought me how to fight. How to use the weapons they used. They tought me
|
||||
how to skirmish with only a scimitar to defend myself with. How to cast aside
|
||||
blows, how to use a handful of sand to distract my opponent from my incoming
|
||||
blow. They taught me pain. They taught me to not fear an incoming attack. Not to
|
||||
fear death. From that, only rage grew. My hatred for the Urdesh slowly filled my
|
||||
now-empty mind. Where once was scholarly knowledge and magical aptitude there
|
||||
stood only revenge. A lust that was never fulfilled. A hunger that was never
|
||||
sated.
|
||||
|
||||
For 5 years of my life I was haunted and tormented by the Urdesh. I was made a
|
||||
puppet in their games; a gladiator in their arenas. My skills with the scimitar
|
||||
and spear grew to legend. Armed with my rage and my revenge, I would let no
|
||||
other gladiator steal from me the potential to see my captors destroyed. I would
|
||||
never bow, never break, never surrender. My blade grew black from all the blood
|
||||
and sand and grime. With each fight, I became more. I was no longer a slave, now
|
||||
I was a name: Blackblade; the Raven Swordsman; Death. Names appropriate to my
|
||||
appearance and my promise. The old me was dead, and the new me was never alive.
|
||||
|
||||
My insatiable revenge crept into the corners of my mind, revealing the
|
||||
locked-away arcane knowledge. The fury of hundreds of gladitorial battles,
|
||||
thousands of cracks of the whips, and millions of possibilities of better lives
|
||||
all converged on the power I had stored away. No longer was I afraid of them. No
|
||||
longer did their skepticism seem like a threat. Now it was their weakness. Now,
|
||||
vengeance was mine.
|
||||
|
||||
With the cover of darkness, I scoured my memories for every shred of arcane
|
||||
knowledge I could muster. I found my cantrips, my little tricks I had used to
|
||||
harass the pretty girls at the college. Flares and dancing lights wouldn't do
|
||||
what I needed, but they could help. I needed more power. I crept deeper. There I
|
||||
felt it. The coldness of death, but the screaming of life, entwined. I could
|
||||
feel the grasp of skeletons and ghasts, but they did not scare me; it was almost
|
||||
like familiy. I could see the faces of people I had never known. They seemed
|
||||
familiar, almost connected to me. I could feel their anger, their undying need
|
||||
for vengeance. Like me, they were captives of fear and torment. Their rage was
|
||||
almost unbearable, but I would not turn away. I would not submit to an illogical
|
||||
existance as a mindless machine of death. I would overcome the rage, channel the
|
||||
rage, harness the anger, focus the vengeance. I would take their blessings of
|
||||
undeath and turn them upon my enemies as a curse. I knew now that the power I
|
||||
had was not from study. It was always within me, welled up like a great lake,
|
||||
full of untapped resources. I felt the presence of their blood grow, their power
|
||||
now released. They were now me. I was their vessel. The scimitar I used, Raven I
|
||||
called it, was now a weapon of death.
|
||||
|
||||
Their time had come. They had no reason to fear the unknown, until now.
|
||||
|
||||
The first to go was the guard. As he came, right on schedule, to deliver my
|
||||
food, I offered him a choice. I had grown to like Mukeesh. He was stupid, and
|
||||
because of that he was compasionate. He was too afraid. He was too loyal. He
|
||||
died. From him, I lifted the keys with magic, commanding them into the lock,
|
||||
releasing me. As I left, I could feel his blood calling to me. With his
|
||||
head-wrap and Raven I made my way to the barracks. It was night time. There were
|
||||
little defenses around those who defend. They died one by one. I would cup their
|
||||
mouth, and slit their throat just enough for them to wake before they bled out.
|
||||
Their last moments were all the same: horror, struggling, moaning, pleading,
|
||||
acceptance, sorrow. They wept occassionally. There were a few who were
|
||||
unsurprised, and stared into my eyes until their's went dark. They were the
|
||||
brave. They had faced death. But none can win against death. The blood running
|
||||
from my captors veins was unbearable. I tasted it, the nector of life. It was
|
||||
ambrosia, life itself, sustaining me. Their lives were my feast.
|
||||
|
||||
I made my way through the camp, finally settling on the gladiator pits. Some of
|
||||
my bretheren ran, some clung to some twisted form of loyaly and fought. The all
|
||||
died. I drank in their life, their essence, and their sacrifice healed me.
|
||||
Through the death of my enemies I grew strong, through the blood of the fallen
|
||||
did I reclaim my dominance. Not only were the powers of death mine to harness,
|
||||
but the fruits of its labor were sweet and nourishing.
|
||||
|
||||
The last to fall was my teacher. He was the only one I awoke before I killed
|
||||
him. I waited for him to pray, to be ready for his gods. He tried to fight me,
|
||||
but the master had become weak. His attacks were predictable. His tactics were
|
||||
rotten. His flesh was soft, and my blade was sharp. He died a warrior, as he had
|
||||
lived. His blood was the most satisfying of them all. I have no remorse for him.
|
||||
It is pathetic to pity anyone; death comes for all.
|
||||
|
||||
I gathered up all the resources I needed, took all the coin I could find, and
|
||||
left. To this day I still hear tales of the Swordsman of Death who slaughtered
|
||||
an entire Urdesh gladiator camp. "They are right to fear him." I always reply.
|
||||
"Death is patient but swift. It may come on the wings of an angel or the sword
|
||||
of a stranger. But death always comes." I escaped that night and found a human
|
||||
settlement. My scars and tattoos I covered as best I could, but they always
|
||||
found me out. A run-away slave, an escaped prisoner; a fugitive. The humans
|
||||
would at least treat my as their own. I found temporary refuge, but left
|
||||
quickly. In the following days there were many hunters that I encountered. One
|
||||
of them gave me the scar that marks me today. His name was Al-Kadaf, and his
|
||||
blade was called Plight. It cut me from above my left eye to my right cheek. He
|
||||
told me that wound would stay forever. My blade ending his life was my only
|
||||
response.
|
||||
|
||||
Still I am hunted. Still the Urdesh search for the Raven Swordsman. But I go by
|
||||
a different name now. I am Azulien Blackblade, Scourge of the Urdesh. Send your
|
||||
hunters. Send your armies. I walk with death. I hunger for your life. And
|
||||
tonight, I will feast.
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
tabtitle: "Moral Letters :: Index"
|
||||
title: "Seneca's Moral Letters to Lucilius"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-15"
|
||||
short_desc: "My friend Rob and I have recently been disucssing Seneca's
|
||||
Moral Letters to Lucilius. As a companion to those discussions, I'm
|
||||
documenting my responses to each letter."
|
||||
---
|
||||
|
||||
<p>My friend Rob and I have recently been disucssing Seneca's
|
||||
Moral Letters to Lucilius. As a companion to those discussions, I'm
|
||||
documenting my responses to each letter. This page will serve as an index for
|
||||
all of my responses.</p>
|
||||
|
||||
<h2>Seneca's Moral Letters to Lucilius</h2>
|
||||
<ul>
|
||||
<li><a href="{{ site.baseurl }}
|
||||
{% post_url 2018-01-15-letter-to-lucilius-1 %}">
|
||||
Letter 1: On Time</a></li>
|
||||
<li><a href="{{ site.baseurl }}
|
||||
{% post_url 2018-01-15-letter-to-lucilius-2 %}">
|
||||
Letter 2: On discursiveness in reading</a></li>
|
||||
<li><a href="{{ site.baseurl }}
|
||||
{% post_url 2018-01-28-letter-to-lucilius-3 %}">
|
||||
Letter 3: On True and False Friendship</a></li>
|
||||
<li><a href="{{ site.baseurl }}
|
||||
{% post_url 2018-01-28-letter-to-lucilius-4 %}">
|
||||
Letter 4: On the Terrors of Death</a></li>
|
||||
<li><a href="{{ site.baseurl}}
|
||||
{% post_url 2018-02-11-letter-to-lucilius-5 %}">
|
||||
Letter 5: On the Philosopher's Mean</a></li>
|
||||
<li><a href="{{ site.baseurl}}
|
||||
{% post_url 2018-02-11-letter-to-lucilius-6 %}">
|
||||
Letter 6: On Sharing Knowledge</a></li>
|
||||
<li><a href="{{ site.baseurl}}
|
||||
{% post_url 2018-01-28-letter-to-lucilius-11 %}">
|
||||
Letter 11: On the Blush of Modesty</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius">
|
||||
Collection of Seneca's Moral Letters to Lucilius on Wikisource
|
||||
</a></p>
|
|
@ -1,104 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 1"
|
||||
title: "Seneca's Letter to Lucilius, Letter 1: On Time"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-15"
|
||||
short_desc: "Seneca's Moral Letters to Lucilius are regarded as one of the
|
||||
most prominent Stoic writings available. My friend Rob and I like to
|
||||
discuss them during a weekly meeting, and I'd like to record my response
|
||||
and thoughts as well. Here's letter 1, On Time"
|
||||
---
|
||||
|
||||
<h1>Letter 1: On Time</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p> Greetings from Seneca to his friend Lucilius.</p>
|
||||
|
||||
<p>1. Continue to act thus, my dear Lucilius – set yourself free for your own
|
||||
sake; gather and save your time, which till lately has been forced from you,
|
||||
or filched away, or has merely slipped from your hands. Make yourself
|
||||
believe the truth of my words, – that certain moments are torn from us, that
|
||||
some are gently removed, and that others glide beyond our reach. The most
|
||||
disgraceful kind of loss, however, is that due to carelessness. Furthermore,
|
||||
if you will pay close heed to the problem, you will find that the largest
|
||||
portion of our life passes while we are doing ill, a goodly share while we
|
||||
are doing nothing, and the whole while we are doing that which is not to the
|
||||
purpose. 2. What man can you show me who places any value on his time, who
|
||||
reckons the worth of each day, who understands that he is dying daily? For
|
||||
we are mistaken when we look forward to death; the major portion of death
|
||||
has already passed. Whatever years be behind us are in death's hands.</p>
|
||||
|
||||
<p>Therefore, Lucilius, do as you write me that you are doing: hold every hour
|
||||
in your grasp. Lay hold of to-day's task, and you will not need to depend so
|
||||
much upon to-morrow's. While we are postponing, life speeds by. 3. Nothing,
|
||||
Lucilius, is ours, except time. We were entrusted by nature with the
|
||||
ownership of this single thing, so fleeting and slippery that anyone who
|
||||
will can oust us from possession. What fools these mortals be! They allow
|
||||
the cheapest and most useless things, which can easily be replaced, to be
|
||||
charged in the reckoning, after they have acquired them; but they never
|
||||
regard themselves as in debt when they have received some of that precious
|
||||
commodity, – time! And yet time is the one loan which even a grateful
|
||||
recipient cannot repay.</p>
|
||||
|
||||
<p>4. You may desire to know how I, who preach to you so freely, am practising.
|
||||
I confess frankly: my expense account balances, as you would expect from one
|
||||
who is free-handed but careful. I cannot boast that I waste nothing, but I
|
||||
can at least tell you what I am wasting, and the cause and manner of the
|
||||
loss; I can give you the reasons why I am a poor man. My situation, however,
|
||||
is the same as that of many who are reduced to slender means through no
|
||||
fault of their own: every one forgives them, but no one comes to their
|
||||
rescue.</p>
|
||||
|
||||
<p>5. What is the state of things, then? It is this: I do not regard a man as
|
||||
poor, if the little which remains is enough for him. I advise you, however,
|
||||
to keep what is really yours; and you cannot begin too early. For, as our
|
||||
ancestors believed, it is too late to spare when you reach the dregs of the
|
||||
cask. Of that which remains at the bottom, the amount is slight, and the
|
||||
quality is vile. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>Time management. I'm pretty bad at time management. It's interesting
|
||||
re-reading this letter after having read ahead a few. This one reads much
|
||||
less personal than his later letters. Perhaps an indication of a developing
|
||||
relationship.</p>
|
||||
|
||||
<p>Much of the letter emphasizes the importance of being present, and aware. One
|
||||
of the most impactful parts of this letter epitomizes this: "Whatever years
|
||||
be behind us are in death's hands." The acceptance of death as a necessary
|
||||
and constant part of life is a Stoic theme, but this sentence reminds us of
|
||||
this reality without remorse. Replace 'years' with 'time', and the letter's
|
||||
theme is laid bare: time is an expense account you can only hope to balance,
|
||||
and never credit. Seneca himself makes this comparison, noting that he only
|
||||
balances his by being aware of his expenditures. To him, it seems being
|
||||
aware of the waste is enough to balance the waste itself, which I find
|
||||
interesting.</p>
|
||||
|
||||
<p>Seneca's account of how we spend our time strikes me as a tad cynical:
|
||||
"...the largest portion of our life passes while we are doing ill, a goodly
|
||||
share while we are doing nothing, and the whole while we are doing that
|
||||
which is not to the purpose." Essentially, we spend most of our life not
|
||||
doing what we intend to do, either because we fail to act, or we "[do] ill".
|
||||
If I interpret "doing ill" to mean not pursuing Stoic virtue, I can
|
||||
extrapolate "the purpose" to mean living a virtuous life. I think the
|
||||
statement seeks more specific examples than the entirety of life's pursuit,
|
||||
though, and in those cases "doing ill" could mean doing that which does not
|
||||
benefit the specific pursuit. This could be playing video games instead of
|
||||
cleaning my house, for example. In this case, it seems apt to define "doing
|
||||
ill" as procrastination, and "the purpose" being whatever our goal is at
|
||||
that particular moment. Though an interesting third option is more of a
|
||||
relativity approach: we feel that life passes us by fastest while "doing
|
||||
ill" or doing nothing, and in general life seems to pass by faster when we
|
||||
are not focusing on our task than when we are. The ol' "Time flies while
|
||||
you're having fun" chestnut. Not to say "doing ill" is having fun, though.
|
||||
Rather, "doing ill" is like partying until 4am, and wondering how it got so
|
||||
late.</p>
|
||||
|
||||
<p> Live in the moment, be aware of how you spend your time, and always act to
|
||||
spend it wisely. Just be aware: no matter how carefully you budget, your
|
||||
account will always be indebted to death.</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_1">
|
||||
Moral Letters to Lucilius, Letter 1 on Wikisource
|
||||
</a></p>
|
|
@ -1,82 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 2"
|
||||
title: "Seneca's Letter to Lucilius, Letter 2: On Discursiveness in Reading"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-15"
|
||||
short_desc: "Seneca's second letter to Lucilius, On Discursiveness in
|
||||
Reading, covers the importance of focus. There's also a quote by Epicurus,
|
||||
which is apparently a feature of many of his letters to Lucilius."
|
||||
---
|
||||
|
||||
<h1>Letter 2: On Discursiveness in Reading</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p>1. Judging by what you write me, and by what I hear, I am forming a good
|
||||
opinion regarding your future. You do not run hither and thither and distract
|
||||
yourself by changing your abode; for such restlessness is the sign of a
|
||||
disordered spirit. The primary indication, to my thinking, of a well-ordered
|
||||
mind is a man's ability to remain in one place and linger in his own company.
|
||||
2. Be careful, however, lest this reading of many authors and books of every
|
||||
sort may tend to make you discursive and unsteady. You must linger among a
|
||||
limited number of master thinkers, and digest their works, if you would derive
|
||||
ideas which shall win firm hold in your mind. Everywhere means nowhere. When a
|
||||
person spends all his time in foreign travel, he ends by having many
|
||||
acquaintances, but no friends. And the same thing must hold true of men who
|
||||
seek intimate acquaintance with no single author, but visit them all in a hasty
|
||||
and hurried manner. 3. Food does no good and is not assimilated into the body
|
||||
if it leaves the stomach as soon as it is eaten; nothing hinders a cure so much
|
||||
as frequent change of medicine; no wound will heal when one salve is tried
|
||||
after another; a plant which is often moved can never grow strong. There is
|
||||
nothing so efficacious that it can be helpful while it is being shifted about.
|
||||
And in reading of many books is distraction.</p>
|
||||
|
||||
<p>Accordingly, since you cannot read all the books which you may possess, it is
|
||||
enough to possess only as many books as you can read. 4. "But," you reply, "I
|
||||
wish to dip first into one book and then into another." I tell you that it is
|
||||
the sign of an overnice appetite to toy with many dishes; for when they are
|
||||
manifold and varied, they cloy but do not nourish. So you should always read
|
||||
standard authors; and when you crave a change, fall back upon those whom you
|
||||
read before. Each day acquire something that will fortify you against poverty,
|
||||
against death, indeed against other misfortunes as well; and after you have run
|
||||
over many thoughts, select one to be thoroughly digested that day. 5. This is
|
||||
my own custom; from the many things which I have read, I claim some one part
|
||||
for myself.</p>
|
||||
|
||||
<p>The thought for today is one which I discovered in Epicurus; for I am wont
|
||||
to cross over even into the enemy's camp, – not as a deserter, but as a scout.
|
||||
6. He says: "Contented poverty is an honourable estate." Indeed, if it be
|
||||
contented, it is not poverty at all. It is not the man who has too little, but
|
||||
the man who craves more, that is poor. What does it matter how much a man has
|
||||
laid up in his safe, or in his warehouse, how large are his flocks and how fat
|
||||
his dividends, if he covets his neighbour's property, and reckons, not his past
|
||||
gains, but his hopes of gains to come? Do you ask what is the proper limit to
|
||||
wealth? It is, first, to have what is necessary, and, second, to have what is
|
||||
enough. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>I'm not sure who named the letters, but I think they should always read "On
|
||||
Whatever I Intend to Write About, oh and this generally unrelated quote
|
||||
probably from Epicurus." Which isn't to complain, I just find it amusing.
|
||||
And, to be fair, this letter and quote combination do fit together.</p>
|
||||
|
||||
<p>The gist of this letter is the importance of focus. Seneca posits having too
|
||||
broad a focus with regard to authors or topics will make Lucilius
|
||||
"discursive and unsteady." A jack-of-all-trades is a master of none. His
|
||||
comparisons with travel, food, medicine, and agriculture are all apt, though
|
||||
a tad misleading, as each topic necessitates a differing degree of focus,
|
||||
not to mention each may pursue different ends; the pursuit of reading or
|
||||
travel may be ephemeral, whereas the pursuit of medicine or treatment may be
|
||||
more lasting. Considering the theme of the letter, though, I don't want to
|
||||
argue these particulars, since I like the metaphors.</p>
|
||||
|
||||
<p>The secondary theme of the letter deals with possessions. Both Seneca, and
|
||||
the surprisingly on-topic quote from Epicurus encourage only owning enough
|
||||
to cover what is needed, not necessarily what is desired. "It is, first, to
|
||||
have what is necessary, and, second, to have what is enough." As an aspiring
|
||||
minimalist, I couldn't agree more.</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_2">
|
||||
Moral Letters to Lucilius, Letter 2 on Wikisource
|
||||
</a></p>
|
|
@ -1,228 +0,0 @@
|
|||
---
|
||||
tabtitle: "Character Write-up: Halvar"
|
||||
title: "Character Write-up: Halvar, Rune Bearer"
|
||||
topics: [gaming, writing]
|
||||
pub: "2018-01-27"
|
||||
short_desc: "The backstory for my first character in a new 5th Edition
|
||||
Dungeons and Dragons campaign. Meet Halvar, a brash young warrior looking
|
||||
for glory!"
|
||||
---
|
||||
|
||||
# Character Backstory: Halvar, Rune Bearer
|
||||
|
||||
The boy stirred. A movement in his room brought his senses to him. It moved like
|
||||
a shadow, hunting across his wall, and he feared he was the prey. Slipping
|
||||
quietly from his blankets, he reached under his bed, and swiftly brought forth
|
||||
the shield his father had given him. None too soon, as green flame erupted from
|
||||
the shadow, streaking across the room. The boy raised his shield, as the flames
|
||||
crashed upon him. In the same moment it was over, the boy standing among the
|
||||
scorched wood, his shield glowing brightly from the runes inscribed on its face.
|
||||
The shadow stepped forward, no longer a monster but a human figure, and bowed
|
||||
deeply.
|
||||
|
||||
“You have within you the secret of the runes,” it said in a voice impossible to
|
||||
place. Shifting in tone and pitch, the boy was uncertain if he was watching a
|
||||
woman or a man. He was starting to think it was another entirely.
|
||||
|
||||
“The gods are not dead, nor is magic. Your sword, your blood, is proof enough.
|
||||
Your destiny calls you, Halvar. Take forth your sword, and learn its true name.
|
||||
Reveal the secret of the runes. You, Halvar, you will--”
|
||||
|
||||
A loud belch erupted from the man next to him.
|
||||
|
||||
“Give it up, Halvar! We’ve heard your tale a thousand times. It’s a good story
|
||||
but a better lullaby once we get into the mead!”
|
||||
|
||||
Laughter sprung up, and Halvar leaned back into his chair. The dark bedroom
|
||||
faded from his mind, replaced with the warmth of the nearby fire. The inn was
|
||||
empty, save them, and it felt vast compared to his memories. After a long drink
|
||||
from his cup, he spoke.
|
||||
|
||||
“Alright Baldur, I see I may talk you children to sleep with my tales of
|
||||
greatness and destiny. Come then, you tell us one!”
|
||||
|
||||
As others rallied the cry, the door to the inn was thrown open, and a figure
|
||||
stumbled in. Dressed in the armor of a town guard, he glanced around the room in
|
||||
a panic, before focusing on the hearth and the gathering of men there.
|
||||
|
||||
“The road! Wolves! The caravan is under attack!” He shouted.
|
||||
|
||||
Halvar rose without hesitation, as those around him looked to him.
|
||||
|
||||
“Baldur, watch closely. This is how legends are made!”
|
||||
|
||||
He ran from the inn, reaching to his hip and finding his sword. He hadn’t
|
||||
remembered putting his belt on earlier. He must have done so without thinking.
|
||||
|
||||
_Too eager for song and drink!_ He mused.
|
||||
|
||||
As he neared the edge of the village, several others joined with him, and
|
||||
together they began down the road. Howling could be heard on the wind, and the
|
||||
woods were lit with the dancing light of torches.
|
||||
|
||||
Halvar turned to the others. “I will go first, and draw their attention. Ivar,
|
||||
try to target the ones in the back with that bow. Tad, you go for the wagon. Our
|
||||
goal is to draw them from the caravan. Once they’re away, get the wagon moving!”
|
||||
|
||||
He turned, then, and ran, not waiting for his companions replies. He knew time
|
||||
was short, and greatness lay only around the bend.
|
||||
|
||||
Running fast, sword in hand, he came upon the caravan. The horses were frenzied,
|
||||
but still harnessed. A small blessing, he thought, then regretted, seeing the
|
||||
first of the dead. To his left he could see two wolves in the brush, and he
|
||||
guessed three more must be near his flank. He turned his back on the two,
|
||||
taunting them, as he moved past the wagon. His simple farce worked, and the
|
||||
wolves made to pounce. The first wolf fell to his blade, as the second danced to
|
||||
his side. From behind, he heard movement, then a yelp. He dared a glance, and
|
||||
saw two more wolves. One was laying on its side, an arrow from its neck. The
|
||||
other began to circle.
|
||||
|
||||
A sudden crack of reins drew his attention away to see the cart lurch forward.
|
||||
The distraction was enough, and one of the circling wolves lunged. It caught
|
||||
Halvar’s empty arm, and pulled him off balance, to the ground. Slashing wildly,
|
||||
Halvar quickly recovered. His arm was mangled, the blood dripping from his hand
|
||||
as the spittle dripped from the wolves mouths. The second wolf then lept, but
|
||||
was caught mid flight by an arrow, and fell to the ground lifeless. Now
|
||||
outnumbered, the remaining wolf retreated to the darkness of the woods.
|
||||
|
||||
Ivar was upon him then, supporting him as they quickly made after the caravan.
|
||||
His arm burned, his chest pounded, and his head swam with anticipation of
|
||||
Baldur’s face, when he shared of his glory.
|
||||
|
||||
“Good shooting, Ivar! That’s two for you and two for me! Wait until Baldur--”
|
||||
|
||||
In a white blur, Ivar was torn from his side. Stumbling slightly, he turned to
|
||||
see a great white wolf, the size of a small horse, with Ivar’s neck in its
|
||||
teeth. With a snarl, it ripped the life from him, and as blood dripped from its
|
||||
mouth, it spoke in the common tongue.
|
||||
|
||||
“You will die this night, rune bearer. You cannot be allowed to live.”
|
||||
|
||||
Halvar took up his stance. His left arm useless, he put it between him and his
|
||||
enemy. The wolf then bellowed an unearthly howl, which echoed in the woods and
|
||||
was joined by more voices.
|
||||
|
||||
_Unfortunate_, he thought, _This would make for a great tale. And not a single
|
||||
skald around to watch!_
|
||||
|
||||
The two circled. The great wolf snarled a laugh of sorts.
|
||||
|
||||
“Do you know of me, manling? I am a daughter of Fenrir. I am to join my father
|
||||
in Ragnarok. I will feast upon your gods carcasses, and drink of their blood!
|
||||
You are not a god. What hope have you against one as great as me? Bare your
|
||||
neck, and I will end your life quickly.”
|
||||
|
||||
Halvar smiled. “Do you know of me, pup? I am Halvar, son of Haakon, son of
|
||||
Eirik, son of Odinson. I carry the secrets of the runes, and will herald the
|
||||
return of the gods! You dare impede my destiny?! You will serve only to further
|
||||
my legend!”
|
||||
|
||||
With renewed vigor, Halvar attacked. Sword was met with fang, as blow after blow
|
||||
was traded. The great wolf, no stranger to the weapons of man, danced around the
|
||||
blade. As each grew bloodied, they parted, panting and weary.
|
||||
|
||||
“You fight well, for a runt.” Halvar managed between breaths. “Tell me your
|
||||
name, great wolf. No warrior should live in legend unknown!”
|
||||
|
||||
The wolf bared its teeth, perhaps mimicking a smile. “I am called Ísstonn, ice
|
||||
fang. A vetrgarmr. Daughter of Vetrkona, Daughter of Hati Hróðvitnisson.”
|
||||
|
||||
A crushing of snow behind him signalled more wolves. Halvar knew his time was
|
||||
over.
|
||||
|
||||
_Never a skald around…_ He began, then was interrupted by a yelp and a thud. He
|
||||
glanced over his shoulder to see one of the two wolves laying still, an ax in
|
||||
its side. From the woods, a figure emerged.
|
||||
|
||||
“You’re not a skald, but you’ll do!” Halvar shouted, a grin now upon his face.
|
||||
His father stepped forth, drawing the handax from the wolf, and moved to join
|
||||
him.
|
||||
|
||||
“Father and son shall fall by my fangs!” Ísstonn barked, and the fight resumed.
|
||||
|
||||
Once more, sword met fang, and blows were traded. Halvar and Haakon fought the
|
||||
winter wolf, as other wolves howled in the dark woods. The bravery and skill of
|
||||
the two was too much for the great wolf, and before long she lay bloodied and
|
||||
defeated on the snow.
|
||||
|
||||
“You fight with conviction, Haakonson,” she spit, as blood ran from her mouth.
|
||||
“Beware my father’s fang, manling. He will devour your gods.” The light faded
|
||||
from the great beast, as the last fog of its breath disappeared into the cold night
|
||||
air.
|
||||
|
||||
The two men made haste to the village. The night now silent.
|
||||
|
||||
“Halvar, what happened tonight, no one in the village may know of it.” Haakon
|
||||
said, as he bandaged Halvar’s arm.
|
||||
|
||||
“Surely you joke! What happened tonight is a story to rival the legends of old!
|
||||
Ow!” Haakon squeezed Halvar’s arm tightly. Tears welled in his eyes, as he
|
||||
stared with an intensity Halvar had not seen for many years.
|
||||
|
||||
“Halvar. You indeed have a great destiny before you. This village is in danger
|
||||
if you remain. You must leave here, and find your legend beyond these fields.”
|
||||
|
||||
Haakon then stood, and dared clear his eyes with his sleeve. After a brief
|
||||
pause, he went and retrieved a small chest. He heaved the heavy container onto
|
||||
the floor besides Halvar, and beckoned him open it.
|
||||
|
||||
Within, Halvar found a suit of chain mail, polished and oiled. Beneath it, a
|
||||
leather tunic, and nestled next to it all, a helmet.
|
||||
|
||||
“This was your grandfather’s, and his before him.” Haakon said. “If the stories
|
||||
are to be believed, this mail saw many battles, some during the great war.”
|
||||
|
||||
Haakon then placed two hand axes next to the chest. “These are yours now. Muninn
|
||||
and Huginn, named for the All Father’s favorite ravens. May they serve you well,
|
||||
as they do him”
|
||||
|
||||
Finally, he laid Halvar’s sword upon his lap. “And this, you know of. What you
|
||||
may not know is the legend of this sword. Here, a drink and our final toast.”
|
||||
Haakon handed a cup to Halvar, and they drank.
|
||||
|
||||
“Ages past, when myths were made, and magic was commonplace, the keepers of the
|
||||
runes used their powers to gift man with powerful weapons and armor and other
|
||||
trinkets. This sword is one such weapon. I know not its true name. My father
|
||||
told me it was called Eljunvegr, Enduring Hope, as I have told you, but there
|
||||
is another name, lost to time. These runes, they are more than just decoration,
|
||||
as you well know. Legend says, in the time of the great war, this sword was used
|
||||
by a great berserker of Odin. Odin’s ritual to save humanity would destroy any
|
||||
and all around him, and Odin commanded his men flee and live. This berserker
|
||||
refused the command of the god, and fought alone to protect the All Father,
|
||||
ensuring his victory. He fought with this sword, as you now will.”
|
||||
|
||||
Haakon then helped Halvar don his armor, and brought to him a pack. They then
|
||||
went outside, to meet the dawn. Haakon led to Halvar a horse, and then returned
|
||||
to the house. Before entering, he turned.
|
||||
|
||||
“You do honor to your family, Halvar. Never forget that.” With that, Haakon
|
||||
moved inside, and closed the door.
|
||||
|
||||
As Halvar neared the edge of the village, there stood two men. He recognized one
|
||||
as Baldur, and after a moment recognized the second as Tad.
|
||||
|
||||
“Leaving so soon? Surely you’ve tales of your daring rescue last night?” Baldur
|
||||
said, stifling a yawn. “Where are you off to so early? It looks like you ride to
|
||||
war!” He chuckled.
|
||||
|
||||
“You saved this village last night. That caravan had food and medicine.” Tad
|
||||
chimed in.
|
||||
|
||||
“We saved the village, Tad. You, me and Ivar. We did.” Halvar replied, his voice
|
||||
lacking in its usual bravado.
|
||||
|
||||
“Well, seems your adventures were a bit humbling. I admit, I fear what an actual
|
||||
adventure will make you!” Baldur laughed. His expression then grew sober. “Every
|
||||
great warrior needs a shield, Halvar. I know how much this means to you. I
|
||||
restored it as best I could."
|
||||
|
||||
From his side, Baldur lifted a round shield. It was expertly crafted, and
|
||||
perfectly balanced. Upon its face, a rune was burned into the wood, and gelded
|
||||
in silver.
|
||||
|
||||
“Take this too, it’s from my family.” Tad held forth a horn, carved of bone with
|
||||
a steel mouthpiece. “Consider them a reminder: your legend started here. Now go,
|
||||
your father will have our beards if we’re seen with you.”
|
||||
|
||||
With a nod, Halvar rode from the village. He knew not to where he went, but he
|
||||
knew his destiny would not let him stray far.
|
|
@ -1,109 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 11"
|
||||
title: "Seneca's Letter to Lucilius, Letter 11: On the Blush of Modesty"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-28"
|
||||
short_desc: "Letter 11 deals with accepting our faults, staring an
|
||||
unexpected quote from Epicurus."
|
||||
---
|
||||
|
||||
# Letter 11: On the Blush of Modesty
|
||||
|
||||
## Original Text
|
||||
|
||||
[1] Your friend and I have had a conversation. He is a man of ability; his very
|
||||
first words showed what spirit and understanding he possesses, and what progress
|
||||
he has already made. He gave me a foretaste, and he will not fail to answer
|
||||
thereto. For he spoke not from forethought, but was suddenly caught off his
|
||||
guard. When he tried to collect himself, he could scarcely banish that hue of
|
||||
modesty, which is a good sign in a young man; the blush that spread over his
|
||||
face seemed so to rise from the depths. And I feel sure that his habit of
|
||||
blushing will stay with him after he has strengthened his character, stripped
|
||||
off all his faults, and become wise. For by no wisdom can natural weaknesses of
|
||||
the body be removed. That which is implanted and inborn can be toned down by
|
||||
training, but not overcome. [2] The steadiest speaker, when before the public,
|
||||
often breaks into a perspiration, as if he had wearied or over-heated himself;
|
||||
some tremble in the knees when they rise to speak; I know of some whose teeth
|
||||
chatter, whose tongues falter, whose lips quiver. Training and experience can
|
||||
never shake off this habit; nature exerts her own power and through such a
|
||||
weakness makes her presence known even to the strongest. [3] I know that the
|
||||
blush, too, is a habit of this sort, spreading suddenly over the faces of the
|
||||
most dignified men. It is, indeed more prevalent in youth, because of the warmer
|
||||
blood and the sensitive countenance; nevertheless, both seasoned men and aged
|
||||
men are affected by it. Some are most dangerous when they redden, as if they
|
||||
were letting all their sense of shame escape. [4] Sulla, when the blood mantled
|
||||
his cheeks, was in his fiercest mood. Pompey had the most sensitive cast of
|
||||
countenance; he always blushed in the presence of a gathering, and especially at
|
||||
a public assembly. Fabianus also, I remember, reddened when he appeared as a
|
||||
witness before the senate; and his embarrassment became him to a remarkable
|
||||
degree. [5] Such a habit is not due to mental weakness, but to the novelty of a
|
||||
situation; an inexperienced person is not necessarily confused, but is usually
|
||||
affected, because he slips into this habit by natural tendency of the body. Just
|
||||
as certain men are full-blooded, so others are of a quick and mobile blood, that
|
||||
rushes to the face at once.
|
||||
|
||||
[6] As I remarked, Wisdom can never remove this habit; for if she could rub out
|
||||
all our faults, she would be mistress of the universe. Whatever is assigned to
|
||||
us by the terms of our birth and the blend in our constitutions, will stick with
|
||||
us, no matter how hard or how long the soul may have tried to master itself. And
|
||||
we cannot forbid these feelings any more than we can summon them. [7] Actors in
|
||||
the theatre, who imitate the emotions, who portray fear and nervousness, who
|
||||
depict sorrow, imitate bashfulness by hanging their heads, lowering their
|
||||
voices, and keeping their eyes fixed and rooted upon the ground. They cannot,
|
||||
however, muster a blush; for the blush cannot be prevented or acquired. Wisdom
|
||||
will not assure us of a remedy, or give us help against it; it comes or goes
|
||||
unbidden, and is a law unto itself.
|
||||
|
||||
[8] But my letter calls for its closing sentence. Hear and take to heart this
|
||||
useful and wholesome motto: "Cherish some man of high character, and keep him
|
||||
ever before your eyes, living as if he were watching you, and ordering all your
|
||||
actions as if he beheld them." [9] Such, my dear Lucilius, is the counsel of
|
||||
Epicurus; he has quite properly given us a guardian and an attendant. We can get
|
||||
rid of most sins, if we have a witness who stands near us when we are likely to
|
||||
go wrong. The soul should have someone whom it can respect, – one by whose
|
||||
authority it may make even its inner shrine more hallowed. Happy is the man who
|
||||
can make others better, not merely when he is in their company, but even when he
|
||||
is in their thoughts! And happy also is he who can so revere a man as to calm
|
||||
and regulate himself by calling him to mind! One who can so revere another, will
|
||||
soon be himself worthy of reverence. [10] Choose therefore a Cato; or, if Cato
|
||||
seems too severe a model, choose some Laelius, a gentler spirit. Choose a master
|
||||
whose life, conversation, and soul-expressing face have satisfied you; picture
|
||||
him always to yourself as your protector or your pattern. For we must indeed
|
||||
have someone according to whom we may regulate our characters; you can never
|
||||
straighten that which is crooked unless you use a ruler. Farewell.
|
||||
|
||||
## Response
|
||||
|
||||
This letter stikes me as another casual writing of Seneca's. Some of his letters
|
||||
seem very serious, and some are much more conversational. In this letter, Seneca
|
||||
remninds us that the faults which nature gave us are beyond the power of wisdom
|
||||
to fix. This, he assures us, is not something we should feel ashamed of or take
|
||||
as a weakness, since it lies outside our control. His examples generally focus
|
||||
on blushing, hence the title and theme, but it's easy for us to extend it to
|
||||
many facets of our physical self; height comes to mind most immediately.
|
||||
|
||||
As with many sources of Stoicism, when I read the reassurances of authors long
|
||||
since gone, I can't help but feel a sense of comfort. The problems of today, the
|
||||
personal struggles we all endure, the anxieties we fight to overcome; they're
|
||||
not new. Others before us have encountered them, and others after us will. I
|
||||
think the Stoics would be quick to remind us, it is our place to endure and then
|
||||
help others endure. At least, that's what I am quick to remind myself of.
|
||||
|
||||
The quote, another from Epicurus (Seneca's secret man-crush, no doubt), speaks
|
||||
of finding a good role-model. Reflecting on his quote made me realize I don't
|
||||
have many role-models in life, at least not many living. Perhaps that matters
|
||||
little, but I think having a living example you can work from makes matters
|
||||
easier. Seneca rightly shows how it goes beyond simply living by your
|
||||
role-model's standards, but also using them as an ever-present companion, in
|
||||
order to help with decisions and actions. Very reminiscent of "What would Jesus
|
||||
do?" Personally, I like this idea, and I must look for a role-model I can
|
||||
follow. A few names jump out: Tim Ferris, and Elon Musk. Ferris for his
|
||||
unrelenting pursuit to better himself, and Musk for his unrelenting pursuit to
|
||||
better the world around him.
|
||||
|
||||
# Sources
|
||||
|
||||
* [Moral Letters to Lucilius, Letter 11 on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_11)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
|
@ -1,108 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 3"
|
||||
title: "Seneca's Letter to Lucilius, Letter 3: On True and False
|
||||
Friendship"
|
||||
topics: [philosophy]
|
||||
pub: "2018-01-20"
|
||||
short_desc: "Letter 3 deals with friends, and I don't mean the number shown
|
||||
on Facebook. True Friendship, to Seneca, is a place of honor!"
|
||||
---
|
||||
|
||||
<h1>Letter 3: On True and False Friendship</h1>
|
||||
|
||||
<h2>Original Text</h2>
|
||||
<p>1. You have sent a letter to me through the hand of a "friend" of yours, as
|
||||
you call him. And in your very next sentence you warn me not to discuss with
|
||||
him all the matters that concern you, saying that even you yourself are not
|
||||
accustomed to do this; in other words, you have in the same letter affirmed
|
||||
and denied that he is your friend. 2. Now if you used this word of ours in
|
||||
the popular sense, and called him "friend" in the same way in which we speak
|
||||
of all candidates for election as "honourable gentlemen," and as we greet
|
||||
all men whom we meet casually, if their names slip us for the moment, with
|
||||
the salutation "my dear sir," – so be it. But if you consider any man a
|
||||
friend whom you do not trust as you trust yourself, you are mightily
|
||||
mistaken and you do not sufficiently understand what true friendship means.
|
||||
Indeed, I would have you discuss everything with a friend; but first of all
|
||||
discuss the man himself. When friendship is settled, you must trust; before
|
||||
friendship is formed, you must pass judgment. Those persons indeed put last
|
||||
first and confound their duties, who, violating the rules of Theophrastus,
|
||||
judge a man after they have made him their friend, instead of making him
|
||||
their friend after they have judged him. Ponder for a long time whether you
|
||||
shall admit a given person to your friendship; but when you have decided to
|
||||
admit him, welcome him with all your heart and soul. Speak as boldly with
|
||||
him as with yourself. 3. As to yourself, although you should live in such a
|
||||
way that you trust your own self with nothing which you could not entrust
|
||||
even to your enemy, yet, since certain matters occur which convention keeps
|
||||
secret, you should share with a friend at least all your worries and
|
||||
reflections. Regard him as loyal, and you will make him loyal. Some, for
|
||||
example, fearing to be deceived, have taught men to deceive; by their
|
||||
suspicions they have given their friend the right to do wrong. Why need I
|
||||
keep back any words in the presence of my friend? Why should I not regard
|
||||
myself as alone when in his company?</p>
|
||||
|
||||
<p>4. There is a class of men who communicate, to anyone whom they meet, matters
|
||||
which should be revealed to friends alone, and unload upon the chance
|
||||
listener whatever irks them. Others, again, fear to confide in their closest
|
||||
intimates; and if it were possible, they would not trust even themselves,
|
||||
burying their secrets deep in their hearts. But we should do neither. It is
|
||||
equally faulty to trust everyone and to trust no one. Yet the former fault
|
||||
is, I should say, the more ingenuous, the latter the more safe. 5. In like
|
||||
manner you should rebuke these two kinds of men, – both those who always
|
||||
lack repose, and those who are always in repose. For love of bustle is not
|
||||
industry, – it is only the restlessness of a hunted mind. And true repose
|
||||
does not consist in condemning all motion as merely vexation; that kind of
|
||||
repose is slackness and inertia. 6. Therefore, you should note the
|
||||
following saying, taken from my reading in Pomponius: "Some men shrink into
|
||||
dark corners, to such a degree that they see darkly by day." No, men should
|
||||
combine these tendencies, and he who reposes should act and he who acts
|
||||
should take repose. Discuss the problem with Nature; she will tell you that
|
||||
she has created both day and night. Farewell.</p>
|
||||
|
||||
<h2>Response</h2>
|
||||
|
||||
<p>In this letter I take away two themes: one of friendship, and one of
|
||||
discussions. Of friendship, I think Seneca's definition sets a high bar,
|
||||
though rightfully so. A friend (perhaps a "true friend", considering
|
||||
Facebook et al) is one you can confide in without restriction, except for
|
||||
the most tightly held of secrets. I can personally count the number of
|
||||
people I could call this type of friend on one hand. To Seneca, as with me,
|
||||
friend is an honorable position.</p>
|
||||
|
||||
<p>In today's social-media-fueled world, I find that the term "friend" resonates
|
||||
much closer to Seneca's sick burn: "friend" in the same way in which we
|
||||
speak of all candidates for election as "honorable gentlemen." Perhaps,
|
||||
though, there's a bit of syntactic significance here. To the Stoics, the
|
||||
importance of community and brotherhood is found throughout. Marcus Aurelius
|
||||
has a famous quote about it, as masterfully illustrated by the great Gavin
|
||||
at Zen Pencils: [<a href="https://zenpencils.com/comic/aurelius/"> Link
|
||||
</a>]. I think it safe to say we should be friendly and helpful to all we meet,
|
||||
whereas to welcome one as a friend is a significant event, and one which
|
||||
requires careful consideration.</p>
|
||||
|
||||
<p>The second theme, discussion, is only touched on but I think is significant
|
||||
enough to warrant attention. Seneca mentions the importance of moderation in
|
||||
trust and discussion with others. Do not share freely and constantly, and
|
||||
also do not withdraw within yourself too far. I think here we see a
|
||||
blueprint for discussion with others. To borrow from Marcus, we are all
|
||||
brothers, and in that sense we should be comfortable discussing common
|
||||
matters. However, it is only with friends that we should be comfortable
|
||||
discussing more personal matters, and even then we must be considerate. Once
|
||||
again, our social-media-centric world finds many of us sharing freely into a
|
||||
void we do not recognize as a crowd. Many would do well to remember: social
|
||||
media is not empty! There are those who greedily capture every word you give
|
||||
freely, like a stray animal to a buffet. Judge well what you decide to
|
||||
share, for likely it is not with "true friends" that the message solely
|
||||
goes.</p>
|
||||
|
||||
<p>Reflecting on this letter made me carefully evaluate my friendships. I rarely
|
||||
have difficulty with people, though admittedly I take time to "warm up" to
|
||||
them. In terms of discussions, I don't find much to be beyond common topics.
|
||||
In that sense, I think I am a bit too loose-lipped, though perhaps not as
|
||||
much as I think. However, I do know that it is a small group with which I
|
||||
confide the most personal challenges or achievements I have made. And, as
|
||||
Seneca does suggest, I do not allow entry into this group lightly!</p>
|
||||
|
||||
<h3>Source</h3>
|
||||
<p><a href="https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_3">
|
||||
Moral Letters to Lucilius, Letter 3 on Wikisource
|
||||
</a></p>
|
|
@ -1,119 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 5"
|
||||
title: "Seneca's Letter to Lucilius, Letter 5: On the Philosopher's Mean"
|
||||
topics: [philosophy]
|
||||
pub: "2018-02-11"
|
||||
short_desc: "In this letter, Seneca explores the concept of All Things in
|
||||
Moderation, but with a Stoic twist!"
|
||||
---
|
||||
|
||||
# Letter 5: On the Philosopher's Mean
|
||||
|
||||
## Original Text
|
||||
|
||||
I commend you and rejoice in the fact that you are persistent in your studies,
|
||||
and that, putting all else aside, you make it each day your endeavour to become
|
||||
a better man. I do not merely exhort you to keep at it; I actually beg you to do
|
||||
so. I warn you, however, not to act after the fashion of those who desire to be
|
||||
conspicuous rather than to improve, by doing things which will rouse comment as
|
||||
regards your dress or general way of living. Repellent attire, unkempt hair,
|
||||
slovenly beard, open scorn of silver dishes, a couch on the bare earth, and any
|
||||
other perverted forms of self-display, are to be avoided. The mere name of
|
||||
philosophy, however quietly pursued, is an object of sufficient scorn; and what
|
||||
would happen if we should begin to separate ourselves from the customs of our
|
||||
fellow-men? Inwardly, we ought to be different in all respects, but our exterior
|
||||
should conform to society. Do not wear too fine, nor yet too frowzy, a toga.
|
||||
One needs no silver plate, encrusted and embossed in solid gold; but we should
|
||||
not believe the lack of silver and gold to be proof of the simple life. Let us
|
||||
try to maintain a higher standard of life than that of the multitude, but not a
|
||||
contrary standard; otherwise, we shall frighten away and repel the very persons
|
||||
whom we are trying to improve. We also bring it about that they are unwilling to
|
||||
imitate us in anything, because they are afraid lest they might be compelled to
|
||||
imitate us in everything.
|
||||
|
||||
The first thing which philosophy undertakes to give is fellow-feeling with all
|
||||
men; in other words, sympathy and sociability. We part company with our promise
|
||||
if we are unlike other men. We must see to it that the means by which we wish to
|
||||
draw admiration be not absurd and odious. Our motto, as you know, is "Live
|
||||
according to Nature"; but it is quite contrary to nature to torture the body, to
|
||||
hate unlaboured elegance, to be dirty on purpose, to eat food that is not only
|
||||
plain, but disgusting and forbidding. Just as it is a sign of luxury to seek
|
||||
out dainties, so it is madness to avoid that which is customary and can be
|
||||
purchased at no great price. Philosophy calls for plain living, but not for
|
||||
penance; and we may perfectly well be plain and neat at the same time. This is
|
||||
the mean of which I approve; our life should observe a happy medium between the
|
||||
ways of a sage and the ways of the world at large; all men should admire it, but
|
||||
they should understand it also.
|
||||
|
||||
"Well then, shall we act like other men? Shall there be no distinction between
|
||||
ourselves and the world?" Yes, a very great one; let men find that we are unlike
|
||||
the common herd, if they look closely. If they visit us at home, they should
|
||||
admire us, rather than our household appointments. He is a great man who uses
|
||||
earthenware dishes as if they were silver; but he is equally great who uses
|
||||
silver as if it were earthenware. It is the sign of an unstable mind not to be
|
||||
able to endure riches.
|
||||
|
||||
But I wish to share with you to-day's profit also. I find in the writings of
|
||||
our Hecato that the limiting of desires helps also to cure fears: "Cease to
|
||||
hope," he says, "and you will cease to fear." "But how," you will reply, "can
|
||||
things so different go side by side?" In this way, my dear Lucilius: though they
|
||||
do seem at variance, yet they are really united. Just as the same chain fastens
|
||||
the prisoner and the soldier who guards him, so hope and fear, dissimilar as
|
||||
they are, keep step together; fear follows hope. I am not surprised that they
|
||||
proceed in this way; each alike belongs to a mind that is in suspense, a mind
|
||||
that is fretted by looking forward to the future. But the chief cause of both
|
||||
these ills is that we do not adapt ourselves to the present, but send our
|
||||
thoughts a long way ahead. And so foresight, the noblest blessing of the human
|
||||
race, becomes perverted. Beasts avoid the dangers which they see, and when they
|
||||
have escaped them are free from care; but we men torment ourselves over that
|
||||
which is to come as well as over that which is past. Many of our blessings bring
|
||||
bane to us; for memory recalls the tortures of fear, while foresight anticipates
|
||||
them. The present alone can make no man wretched. Farewell.
|
||||
|
||||
## Response
|
||||
|
||||
Mean as in average. Not, like... being a jerk. In this letter, Seneca encourages
|
||||
us to live a life which does not ostracize us from society. Instead, we should
|
||||
look beyond the facade, and understand the intentions behind our and others'
|
||||
actions. Living within and conforming to society is not a problem, so long as we
|
||||
do not neglect our virtue: "Inwardly, we ought to be different in all respects,
|
||||
but our exterior should conform to society."
|
||||
|
||||
I take from this letter two important lessons: live your life for you, not for
|
||||
others; and don't be afraid to be normal. Though, maybe "live your life for you
|
||||
and pursue virtue" is better. Seek modesty (and moderation) in all things. Be a
|
||||
philosopher in thought, word, and deed, but be an everyday person too, and
|
||||
perhaps primarily. Nobody likes being lectured to, but people do enjoy talking
|
||||
to each other. A big aspect of Stoicism is sharing what we learn with others;
|
||||
improving ourselves to improve others. The only way to do that is by being, for
|
||||
lack of a better word, normal. As Seneca puts it, "We part company with our
|
||||
promise if we are unlike other men."
|
||||
|
||||
Seneca's included quote at the end comes from Hecato, and re-enforces the
|
||||
significance of moderation. "Cease to hope, and you will cease to fear." Seneca
|
||||
expands on this to stress the importance of staying present: "...memory recalls
|
||||
the tortures of fear, while foresight anticipates them." The way Seneca
|
||||
approaches and expands the quote, though, is simply poetic, and something I will
|
||||
certainly remember moving forward: "Just as the same chain fastens the prisoner
|
||||
and the soldier who guards him, so hope and fear, dissimilar as they are, keep
|
||||
step together; fear follows hope."
|
||||
|
||||
A few more things worth noting:
|
||||
|
||||
"Repellent attire, unkempt hair, slovenly beard, open scorn of silver dishes, a
|
||||
couch on the bare earth, and any other perverted forms of self-display, are to
|
||||
be avoided." This seems like a direct response (and another patented Seneca Sick
|
||||
Burn) to the Cynics.
|
||||
|
||||
"It is the sign of an unstable mind not to be able to endure riches." I read
|
||||
this a few different ways. First, endure the riches of others, and do not let
|
||||
them effect your sense of self-worth. Second, endure the riches of yourself, and
|
||||
do not let it inflate your self-worth. Finally, endure all riches, and recognize
|
||||
them as an indifference, preferred but never at the expense of virtue.
|
||||
|
||||
# Source
|
||||
|
||||
* [Moral Letters to Lucilius, Letter 5 on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_5)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
|
@ -1,97 +0,0 @@
|
|||
---
|
||||
tabtitle: "Seneca's Letter to Lucilius, Letter 6"
|
||||
title: "Seneca's Letter to Lucilius, Letter 6: On Sharing Knowledge"
|
||||
topics: [philosophy]
|
||||
pub: "2018-02-11"
|
||||
short_desc: "Knowledge withheld is only partial. Sharing knowledge, and
|
||||
experiencing it, fosters improvement!"
|
||||
---
|
||||
|
||||
# Letter 6: On Sharing Knowledge
|
||||
|
||||
## Original Text
|
||||
|
||||
I feel, my dear Lucilius, that I am being not only reformed, but transformed. I
|
||||
do not yet, however, assure myself, or indulge the hope, that there are no
|
||||
elements left in me which need to be changed. Of course there are many that
|
||||
should be made more compact, or made thinner, or be brought into greater
|
||||
prominence. And indeed this very fact is proof that my spirit is altered into
|
||||
something better, – that it can see its own faults, of which it was previously
|
||||
ignorant. In certain cases sick men are congratulated because they themselves
|
||||
have perceived that they are sick.
|
||||
|
||||
I therefore wish to impart to you this sudden change in myself; I should then
|
||||
begin to place a surer trust in our friendship, – the true friendship which hope
|
||||
and fear and self-interest cannot sever, the friendship in which and for the
|
||||
sake of which men meet death.
|
||||
|
||||
I can show you many who have lacked, not a friend, but a friendship; this,
|
||||
however, cannot possibly happen when souls are drawn together by identical
|
||||
inclinations into an alliance of honourable desires. And why can it not happen?
|
||||
Because in such cases men know that they have all things in common, especially
|
||||
their troubles.
|
||||
|
||||
You cannot conceive what distinct progress I notice that each day brings to me.
|
||||
And when you say: "Give me also a share in these gifts which you have found so
|
||||
helpful," I reply that I am anxious to heap all these privileges upon you, and
|
||||
that I am glad to learn in order that I may teach. Nothing will ever please me,
|
||||
no matter how excellent or beneficial, if I must retain the knowledge of it to
|
||||
myself. And if wisdom were given me under the express condition that it must be
|
||||
kept hidden and not uttered, I should refuse it. No good thing is pleasant to
|
||||
possess, without friends to share it.
|
||||
|
||||
I shall therefore send to you the actual books; and in order that you may not
|
||||
waste time in searching here and there for profitable topics, I shall mark
|
||||
certain passages, so that you can turn at once to those which I approve and
|
||||
admire. Of course, however, the living voice and the intimacy of a common life
|
||||
will help you more than the written word. You must go to the scene of action,
|
||||
first, because men put more faith in their eyes than in their ears, and second,
|
||||
because the way is long if one follows precepts, but short and helpful, if one
|
||||
follows patterns.
|
||||
|
||||
Cleanthes could not have been the express image of Zeno, if he had merely heard
|
||||
his lectures; he shared in his life, saw into his hidden purposes, and watched
|
||||
him to see whether he lived according to his own rules. Plato, Aristotle, and
|
||||
the whole throng of sages who were destined to go each his different way,
|
||||
derived more benefit from the character than from the words of Socrates. It was
|
||||
not the class-room of Epicurus, but living together under the same roof, that
|
||||
made great men of Metrodorus, Hermarchus, and Polyaenus. Therefore I summon you,
|
||||
not merely that you may derive benefit, but that you may confer benefit; for we
|
||||
can assist each other greatly.
|
||||
|
||||
Meanwhile, I owe you my little daily contribution; you shall be told what
|
||||
pleased me to-day in the writings of Hecato; it is these words: "What progress,
|
||||
you ask, have I made? I have begun to be a friend to myself." That was indeed a
|
||||
great benefit; such a person can never be alone. You may be sure that such a man
|
||||
is a friend to all mankind. Farewell.
|
||||
|
||||
## Response
|
||||
|
||||
This letter is very casual, more of an update than anything, I feel. Seneca
|
||||
draws reference to the significance of friendship once more, as was covered in
|
||||
letter three. Expanding upon it, he emphasizes the importance of sharing
|
||||
knowledge: "And if wisdom were given me under the express condition that it must
|
||||
be kept hidden and not uttered, I should refuse it. No good thing is pleasant to
|
||||
possess, without friends to share it." Beyond just sharing, though, is the
|
||||
importance of experiencing. His mentions of Cleanthes to Zeno, and Plato or
|
||||
Aristotle to Socrates, help illustrate this notion.
|
||||
|
||||
What strikes me of significance in this letter is the quote Seneca includes from
|
||||
Hecato: "What progress, you ask, have I made? I have begun to be a friend to
|
||||
myself." It reminds me of a quote from an article I read written in the 1920s:
|
||||
"I am persuaded that no one ever achieves anything worth-while in this world
|
||||
unless he has so great a respect for his work that he compels all other men to
|
||||
respect it." In my eyes, the first is a requirement for the second; before you
|
||||
can respect yourself and your work, you must be a friend with yourself. Instead
|
||||
of fighting against every negative feeling or doubt, you must find strength and
|
||||
power. Only then will you live with such assurance that you will harbor respect
|
||||
wherever you walk.
|
||||
|
||||
# Sources
|
||||
|
||||
* [Moral Letters to Lucilius, Letter 6 on Wikisource](
|
||||
https://en.wikisource.org/wiki/Moral_letters_to_Lucilius/Letter_6)
|
||||
* [Why I Quit Being So Accomidating](
|
||||
https://mikecanex.wordpress.com/2012/12/26/1922-why-i-quit-being-so-accommodating/)
|
||||
|
||||
###### [Letter Index]({{ site.baseurl }}{% post_url 2018-01-15-Letters-To-Lucilius %})
|
|
@ -1,99 +0,0 @@
|
|||
---
|
||||
tabtitle: 'An Update'
|
||||
title: 'It has been a while.'
|
||||
topics: [writing, life]
|
||||
pub: '2020-06-03'
|
||||
short_desc: "It has been a while. Here's an update, of sorts."
|
||||
---
|
||||
|
||||
# An Update
|
||||
|
||||
There is nothing I've experienced as humbling as powerlessness. The immediate
|
||||
realization that, despite all the capabilities which may be before you, you can
|
||||
do nothing to affect a situation. It is a powerful reminder that we are, all,
|
||||
parts of a whole. That could mean "cogs in a machine" or other such cynical
|
||||
metaphors, or it could mean part of a team, working together towards a goal. I
|
||||
often fall for the former, and rally to the later. Right now, I see examples of
|
||||
the later all around me: protesters on streets, in parks, joining together to
|
||||
oppose a borderline dictator who chooses military action over reform. Yet, I
|
||||
don't understand how I can fit in. I understand how, literally, I can join in
|
||||
the protests. I'm not worried about my health or my status in doing so, yet I
|
||||
still hesitate. Because I feel powerless. Because I look at protests, and I see
|
||||
peaceful citizens opposed by military bullies. I see the desperate grasps for
|
||||
control furthering oppression and injustice. I see "their" power, and I feel
|
||||
"their" power, and I sit here, thoughts gasping for breath in a sea of rage and
|
||||
regret. I know adding my voice would not be in vain. I understand that another
|
||||
body in the crowd is not just a number, but a show of support. And yet I still
|
||||
hesitate. Perhaps out of fear; perhaps I was wrong to boldly claim I was
|
||||
unconcerned with my health or status. I like to think I can set aside those and
|
||||
other "indifferents" during times when virtuous action is required; I like to
|
||||
think I would be one to race towards danger, if it was the right thing to do.
|
||||
Yet, as the saying goes, often our actions speak louder than words.
|
||||
|
||||
But perhaps this is a misperception. There are many ways to show support, many
|
||||
avenues to fight oppression. If fear dictate I stay in my house, "safe" from the
|
||||
troubles in the world, then what can I do from here? Much like a voice in the
|
||||
crowd, throwing a blog post out to the world may seem ineffective, but to expect
|
||||
change on this scale be made only by my voice, is selfish and fantasy. This blog
|
||||
post represents my voice online. It is my space, where I can share my ideas and
|
||||
theories, my creations and my fears. In our digital world, this is my personal
|
||||
park from which I can protest, and so I shall. And just like protest in
|
||||
meatspace, it need not end at this. I can still contact my representative, my
|
||||
congressperson, and anyone I feel can and should know my opinion. And so I
|
||||
shall. And I encourage anyone who stumbles across this post, in good times and
|
||||
bad alike, to know that you have options. That powerlessness, while humbling, is
|
||||
not a force of oppression, but a call to examine your perceptions.
|
||||
|
||||
## Resources
|
||||
|
||||
[Find your
|
||||
Representative](https://www.house.gov/representatives/find-your-representative)
|
||||
|
||||
[Find your Senators](https://www.senate.gov/senators/contact)
|
||||
|
||||
# And now for something completely different...
|
||||
|
||||
Rails! I've been learning Ruby on Rails (again... again) as a means to build
|
||||
some of the applications I've been thinking of. The most immediate, and the
|
||||
motivation for the recent return, is to build a character sheet system for
|
||||
roleplaying games, specifically Pathfinder and D&D 5e. For a long time, I have
|
||||
considered how cool it would be to have a dynamic character sheet that can
|
||||
calculate all my rolls for me, help me level up, and provide me contextual
|
||||
information. I want to explore tying it to a chat bot, available first on Matrix
|
||||
but later on Discord and perhaps others, to allow for in-line reference and
|
||||
rolling with character awareness, for both players and DMs. I've been working my
|
||||
way through Michael Hart's [Ruby on Rails
|
||||
Tutorial](https://www.learnenough.com/ruby-on-rails-6th-edition). I'm literally
|
||||
on the last chapter of building the example application, and look forward to
|
||||
using it as the foundation to build my application. I also played around with
|
||||
[Matrix](https://matrix.org/) and a [Ruby
|
||||
API](https://github.com/ananace/ruby-matrix-sdk) for building a bot. Glaub, my
|
||||
WIP bot, was able to connect to the Heroku-deployed application and query it for
|
||||
information via REST calls. I look forward to exploring this more as well.
|
||||
|
||||
I also stumbled across [#100DaysToOffload](https://100daystooffload.com). I
|
||||
think it's a cool idea, and I'm going to try and pursue it. I have plenty I
|
||||
think about and do every day, and some of it may be helpful.
|
||||
|
||||
Finally, I've been very interested in a number of things since being confined
|
||||
during quarantine: self-hosting, decentralized platforms, exercise, cooking,
|
||||
gaming, streaming. Some of these are continued hobbies, some of these are
|
||||
relatively new, and some are completely new to me. I see many synergies between
|
||||
them, and as part of my writing goals, I want to explore them. I already
|
||||
highlighted one: Matrix, a decentralized platform, and building a
|
||||
character-sheet bot. In fact, it also incorporates self-hosting, since I
|
||||
followed [this fun
|
||||
tutorial](https://matrix.org/blog/2020/04/06/running-your-own-secure-communication-service-with-matrix-and-jitsi)
|
||||
and setup and configured my own Matrix homeserver and Jitsi Meet instance.
|
||||
Because part of the #100DaysToOffload is to share these posts on socials, I'm
|
||||
also resuming my look into [Mastodon](https://joinmastodon.org/) and considering
|
||||
self-hosting a homeserver of that as well. I'm also considering finding a
|
||||
[Peertube](https://joinpeertube.org/) community to upload videos to. I think
|
||||
Peertube is a cool idea, and as someone pointed out, there's not a lot of gaming
|
||||
content on it. I could help promote the platform as an alternative for finding
|
||||
fun gaming videos. Well, at least, for finding gaming videos.
|
||||
|
||||
That's all for now. Stay safe, stay vigilant, pursue virtue in all that you do.
|
||||
If you're not sure what to do, consider writing a blog! I'm writing this post as
|
||||
part of [#100DaysToOffload](https://100daystooffload), an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.
|
|
@ -1,234 +0,0 @@
|
|||
---
|
||||
tabtitle: 'Setting Up a BTRFS RAID-1'
|
||||
title: 'Using BTRFS to setup a simple RAID, with subvolumes, snapshots and
|
||||
backups'
|
||||
topics: [technology]
|
||||
pub: '2020-06-14'
|
||||
short_desc: 'BTRFS is a file system, and includes built-in functionality
|
||||
for RAID. I decided to use it for the storage disks in my desktop. Here is
|
||||
how I set it up, using subvolumes, with snapshots and backups.'
|
||||
---
|
||||
|
||||
# BTRFS: Smooth as Butter
|
||||
|
||||
I have a habit of calling BTRFS "butter-F-S." Conveniently in text I don't feel
|
||||
a need to say that, because it's easier to type out BTRFS than "butter-F-S", as
|
||||
opposed to being easier to say the latter than the former. Regardless, BTRFS is
|
||||
a file system, which can be thought of as the organization system used by a hard
|
||||
drive to store files. File systems provide the functionality necessary for
|
||||
handling data; without one, data would exist on a disk with no means of (simple,
|
||||
reliable) access, management, or use. Every operating system provides the
|
||||
necessary configurations for using at least one file system, and often times can
|
||||
be expanded to understand more file systems, as is the case with Linux. If
|
||||
you're used to Windows, you'll be primarily familiar with two file systems:
|
||||
NTFS, and FAT. If you're familiar with Linux, you'll have probably dealt with
|
||||
those, as well as EXT. If you're adventerous, you have have tried additional
|
||||
file systems such as ZFS, or BTRFS.
|
||||
|
||||
When I returned to Linux full-time on my desktop, I decided I wanted to setup a
|
||||
storage system. I initially shopped around for a NAS: network-attached storage.
|
||||
This would be a separate device, basically a motherboard with hard-drives. It
|
||||
would include software for storing data reliably, as well as applications for
|
||||
serving that data, such a Plex. There are many top-rated off-the-shelf options
|
||||
available, but many are costly, propietary, and lock you in to that solution. I
|
||||
decided to go with something a bit more readily available, and turn two existing
|
||||
3 terrabyte drives into a storage system that would live as part of my desktop.
|
||||
The remainder of this post will deal with how I setup BTRFS on my Linux desktop,
|
||||
using sub-volumes, creating automated snapshots, and setting up a back-up
|
||||
schedule.
|
||||
|
||||
## Setting up BTRFS
|
||||
|
||||
Linux has "first-class" support for BTRFS, which was a deciding force between it
|
||||
and ZFS. (Though, recently, ZFS has made some strides as well.) The only
|
||||
requirements necessary for using BTRFS is to install the `btrfs-progs` program,
|
||||
which is required for basic operations. With requirements done, the next step is
|
||||
to setup the filesystem on your disk of choice. This will delete all information
|
||||
on your disk, so only do this when you're certain any existing data has been
|
||||
backed-up, or you don't mind losing it.
|
||||
|
||||
```
|
||||
mkfs.btrfs /dev/partition
|
||||
```
|
||||
|
||||
I decided to go with a partitionless setup, which is a slightly modified version
|
||||
of the above command. The above command also allows for adding a disk label, as
|
||||
well as a few other options; `man mkfs.btrfs` will give you all the details. I
|
||||
decided to call my BTRFS storage system my "Bag of Holding."
|
||||
|
||||
```
|
||||
mkfs.btrfs -L BagOfHolding /dev/sdg
|
||||
```
|
||||
|
||||
Creating a partitionless setup removes the MBR or GPT partitioning schemes, and
|
||||
relies on subvolumes to simulate partitions. Because I'm only using these disks
|
||||
for storage, and I won't be booting from them, this seemed like the way to go.
|
||||
|
||||
My setup will take two drives, and combine them together into a RAID-1. In order
|
||||
to allow for me to get the data from the drives into my new RAID, I did one disk
|
||||
at a time, and moved data between them, I then balanced the RAID.
|
||||
|
||||
## Configuring a BTRFS RAID
|
||||
|
||||
At this point, I have two separate drives. One of my drives has all my data on
|
||||
it, the other drive is a raw, partitionless filesystem. At this point, we can
|
||||
leverage BTRFS to combine both our disks into a single "device", and then
|
||||
balance it. All these commands will leverage the `btrfs` command, which needs to
|
||||
be run as root.
|
||||
|
||||
First, mount one of the drives. In my case, I mounted the drive with data
|
||||
|
||||
```
|
||||
mount -t btrfs /dev/sdg /mnt/BagOfHolding
|
||||
```
|
||||
|
||||
Next, I added my second device to the mounted file system
|
||||
|
||||
```
|
||||
btrfs device add /dev/sdh /mnt/BagOfHolding
|
||||
```
|
||||
|
||||
At this point, we have a filesystem with two devices, but the data and metadata
|
||||
hasn't been balanced yet. To simply balance the data, and replicate a RAID-0
|
||||
setup, you would run the `btrfs balance` command, specifying the
|
||||
mounted filesystem. In my case, I wanted to replicate a RAID-1 setup, having the
|
||||
two disks mirrored instead of striped. The command is modified to include a
|
||||
"balance filter":
|
||||
|
||||
```
|
||||
btrfs balance -dconvert=raid1 -mconvert=raid1 /mnt/BagOfHolding
|
||||
```
|
||||
|
||||
This command will take time, since it has to re-balance the data across the
|
||||
devices. A convenient time for a short aside:
|
||||
|
||||
### Buzzwords of Butter
|
||||
|
||||
- Copy-on-Write (COW): Basically, only make copies to data when there are
|
||||
written changes to it. I don't fully understand Copy-on-Write, and is
|
||||
possibly a good candidate for a future post.
|
||||
- Subvolumes: Like a partition, but not a block device. The BTRFS Wiki defines
|
||||
it as "an independently mountable POSIX filetree." I think of subvolumes as
|
||||
"software partitions" which I'm sure is both wrong and infuriating to people
|
||||
who know more about it than I do.
|
||||
- Snapshots: A snapshot is a subvolume that shares its data with another
|
||||
subvolume, using copy-on-write. This means if there are no changes to the
|
||||
underlying data, a snapshot is basically just a reference to the exactly
|
||||
same data as the initial subvolume. As changes get made, the snapshot
|
||||
references a copy of "old" data, as opposed to the new data. Thus, a
|
||||
snapshot represents data at a specific point in time.
|
||||
|
||||
## Setting up Subvolumes
|
||||
|
||||
At this point, I have a single device made of two disks. The device, when
|
||||
queried using `btrfs filesystem show` shows the total available and used space,
|
||||
and the individual disks composing it. Creating subvolumes is optional; by
|
||||
default, a BTRFS filesystem has one subvolume (with id 5) as the "root." If you
|
||||
mount the device, you'll mount that, and see the entire device. I wanted a bit
|
||||
more organization, and options for snapshots, so I created a number of
|
||||
subvolumes for different files: Books, Code, Documents, Games, Misc, Music,
|
||||
Pictures, Videos. I mount each separately, and then sym-link directories in my
|
||||
home directory to a corresponding subvolume.
|
||||
|
||||
Creating a subvolume is very straight forward, using the `brtfs subvolume
|
||||
create` command. I made many, as mentioned before, and I'll walk through how I
|
||||
setup the Books subvolume. I followed the same steps for all other subvolumes.
|
||||
|
||||
First, I created it:
|
||||
|
||||
```
|
||||
btrfs subvolume create /mnt/BagOfHolding/Books
|
||||
```
|
||||
|
||||
Then, I configured it to automatically mount. This involved adding a line to my
|
||||
fstab file:
|
||||
|
||||
```
|
||||
...
|
||||
UUID=658cc4e0-93e1-43b5-b068-d889b44ae98d /mnt/BagOfHolding/Books btrfs subvol=/Books,defaults,nofail,x-systemd.device-timeout=5
|
||||
...
|
||||
```
|
||||
|
||||
Looks very similar to other entries, except that the option `subvol=/Books` is
|
||||
necessary! This whole line tells the file system to mount the BTRFS subvolume
|
||||
located at Books _relative to the "root" subvolume_, to the mount point
|
||||
"/mnt/BagOfHolding/Books". The other important thing to remember is that
|
||||
subvolumes are not block devices. For the BTRFS device, there is only one block
|
||||
device, and that's the RAID we setup earlier. If you run `btrfs filesystem show`
|
||||
you'll see the device has a single UUID, despite having the two individual
|
||||
disks. In fact, if you were to mount either of the disk devices, you would mount
|
||||
the raid; in my case, if I were to use `/dev/sdg` or `/dev/sdh` instead of the
|
||||
UUID, it would do the same thing. UUIDs are more reliable, though, so I tend
|
||||
towards them. My fstab has a line like the above for each subvolume. Once that's
|
||||
done, unmount the RAID, and then either run `mount -a` or restart to get each
|
||||
individual subvolume mounted. The final step I did was to symbolic link
|
||||
directories from my home directory to the corresponding subvolumes. Following
|
||||
with Books, I did `ln -s /mnt/BagOfHolding/Books Books` from my home directory.
|
||||
Now, if I `cd ~/Books` I get to the subvolume on my RAID.
|
||||
|
||||
## Scheduling Snapshots
|
||||
|
||||
With the RAID established, and subvolumes created, mounted and linked, I now can
|
||||
schedule automatic snapshots. An easy way to do so is with a program called
|
||||
Snapper. Installing that provides the application, as well as schedules both via
|
||||
cron and Systemd. Because I'm running Arch, we'll rely on the Systemd timer.
|
||||
Before that, we need to create a Snapper configuration.
|
||||
|
||||
```
|
||||
sudo snapper -c books create-config /mnt/BagOfHolding/Books
|
||||
```
|
||||
|
||||
This will create the configuration file in "/etc/snapper/configs/". The
|
||||
configuration includes limits on how many snapshots to keep of different types
|
||||
("hourly", "weekly", etc..). The defaults seemed sane enough for me. Without a
|
||||
cron scheduler, though, nothing else happens. (If you have a cron scheduler,
|
||||
then it will have started automatically and will run accordingly). The final
|
||||
step is to enable and start the "snapper-timeline" timer. If desired, modify the
|
||||
timer frequency (I believe the default is hourly, which is good enough).
|
||||
|
||||
One last thing to do for Systemd is to also enable and start the
|
||||
"snapper-cleanup" timer, which will cull snapshots down to the configured amount
|
||||
from the configuraiton file.
|
||||
|
||||
An interesting thing about snapshots is that, unless something has changed, they
|
||||
won't take up space. Creating 10 snapshots will not replicate data 10 times.
|
||||
What each snapshot will capture are any changes that have been made to the data.
|
||||
|
||||
## Creating Backups from Snapshots
|
||||
|
||||
The final phase of my BTRFS journey is to establish backups. One thing that must
|
||||
be emphasized: **SNAPSHOTS ARE NOT BACKUPS**. They can be used to make backups,
|
||||
though. The way I'm doing that currently is with a program called snap-sync.
|
||||
snap-sync will iterate through each Snapper config, and send a snapshot from
|
||||
each to a remote BTRFS-formatted source. In my case, the remote source is an
|
||||
external hard drive. I formatted it similar to my RAID drives, without a
|
||||
partition. Once done, I ran `snap-sync` as root, which provides guidance for
|
||||
choosing a disk, and walks through each Snapper config. I ran it once, to get
|
||||
each directory established on the external drive. The manual (`man snap-sync`)
|
||||
includes example Systemd timers, which I used to create a timer and service in
|
||||
"/usr/lib/systemd/system". Then, I enabled and started the timer. The example
|
||||
runs once a week, though I think I may update that to once a day.
|
||||
|
||||
## Conclusion
|
||||
|
||||
With that, I feel I have a good solution to my storage needs. I can keep all my
|
||||
data on a RAID drive with backups, accessible easily from the primary machine I
|
||||
use. I further synchronize music and pictures to and from my phone using
|
||||
Syncthing, which will be an upcoming topic of discussion. Some next steps:
|
||||
|
||||
- setup and configure Calibre for my books
|
||||
- better configure Demlo for my music
|
||||
- look into accessing my RAID from my Raspberry Pi, perhaps via NFS, and
|
||||
leveraging wake-on-lan, to allow for streaming media remotely whenever,
|
||||
without having to leave my desktop on
|
||||
|
||||
I'm writing this post as part of [#100DaysToOffload](
|
||||
https://100daystooffload.com), an initiative to inspire writing habits. Perhaps
|
||||
you could do the same.
|
||||
|
||||
# Sources
|
||||
|
||||
* [btrfs on the Arch Wiki](https://wiki.archlinux.org/index.php/Btrfs)
|
||||
* [Snapper on the Arch Wiki](https://wiki.archlinux.org/index.php/Snapper)
|
||||
* [snap-sync](https://github.com/wesbarnett/snap-sync)
|
||||
* [The BTRFS Wiki](https://btrfs.wiki.kernel.org/index.php/Main_Page)
|
|
@ -1,135 +0,0 @@
|
|||
---
|
||||
tabtitle: "Character Story: Gabriella's Fall"
|
||||
title: "Character Story: Gabriella's Fall"
|
||||
topics: [gaming, writing]
|
||||
pub: "2020-06-18"
|
||||
short_desc: "A story I wrote about the consequences of the actions of
|
||||
Gabriella, a paladin in D&D5e"
|
||||
---
|
||||
|
||||
# Character Story: Gabriella's Fall
|
||||
|
||||
_Gabriella de la Rodriguez Alejandra Santa Lucia, you are hereby relieved of
|
||||
duty and dishonorably discharged from the Barakhan Army._
|
||||
|
||||
The morning was cold. It’s always cold. Something Gabriella knew but rarely
|
||||
experienced. She had not slept well since the hearing, and had taken to
|
||||
wandering the city.
|
||||
|
||||
_You are charged with gross negligence, gross incompetence, and failure to
|
||||
repair. The results of your actions have cost the lives of 8 Barakhan soldiers
|
||||
under your command._
|
||||
|
||||
With a start she awoke to fresh dew. She had apparently dozed off. How swiftly
|
||||
her discipline had faltered. Yet another indication of her failure.
|
||||
|
||||
_Gareth Brand. Ryal Cross. Willem Frost. Davis Mason._
|
||||
|
||||
She stopped paying for rooms, since she spent so little time in them. The
|
||||
streets weren’t that bad at night, despite what some may think. In the gardens
|
||||
or along the parkways, there were always trees to rest beneath. The city, the
|
||||
one she had dreamt about as a child; the one she has sworn to defend; the one
|
||||
she now walked as a ghost. The city somehow still welcomed her, still provided
|
||||
for her. Who was she to deserve it?
|
||||
|
||||
_Francis Potter. Cordon Stone. Richard Stone. Samuel White._
|
||||
|
||||
She did not.
|
||||
|
||||
_All possessions of the army are now to be reclaimed. You will doff your armor,
|
||||
remove your shield, and place them on the floor beside you. All possessions
|
||||
which belong to you have been gathered, and are now presented to you._
|
||||
|
||||
A sack, with several sets of clothing. A few books. Her Uncle’s sword. These
|
||||
items were handed to her by a court clerk. She took them, and in stunned
|
||||
silence, stared at the floor in front of her.
|
||||
|
||||
_This dismissal is now complete. As of this moment, you are forbidden interaction
|
||||
with any members of House Barakhan, until you return to Mnemar and make amends
|
||||
for your actions._
|
||||
|
||||
She couldn’t move. She could barely breathe. The Field Marshall closed the book,
|
||||
and placed it on the table before him. The Imperial Magister, with the slightest
|
||||
smirk on his face, was the first to leave. After what seemed like ages, one of
|
||||
Field Marshall Barakhan Randall’s captains escorted Gabriella to the exit.
|
||||
|
||||
This was the fourth time she walked into the temple. This time she was
|
||||
determined to at least try. She spotted a secluded space, and knelt at a pew.
|
||||
After a few moments, she rose. This is pointless, she thought, and began to walk
|
||||
out. She paused, then slowly returned to the pew. Again she knelt, and as she
|
||||
had done so many times since Rattimas, whispered quietly the names of her men.
|
||||
_Gareth, Ryal, Willem, Davis, Francis._ She stopped, took a deep breath, and
|
||||
continued. _Cordon, Richard, Samuel._ Silence. She stared at her hands, clasped
|
||||
before her.
|
||||
|
||||
“I’ve never done this before. I’ve seen my men pray to gods. I’ve seen the
|
||||
citizens and refugees with their shrines and books. I’ve never been convinced it
|
||||
was worth my time. I guess, now that I have nothing left, it doesn’t seem such a
|
||||
waste.”
|
||||
|
||||
She smiled, and laughed quietly. “This is pointless.”
|
||||
|
||||
She rose, and as she did, a voice from behind her spoke.
|
||||
|
||||
“Where I walk, so must you.”
|
||||
|
||||
Gabriella turned, and before her saw a woman dressed in stately attire. Her
|
||||
white gown was precisely fitted, and simply decorated with pearls and rubies.
|
||||
Her hair was fashioned up into a wide fin around a golden comb. In her hands she
|
||||
held a scepter, of golden shaft and topped with a red orb, which itself was
|
||||
surrounded by a golden crown.
|
||||
|
||||
“Beg your pardon, ma’am. I am not so desperate as to find employ as a servant.”
|
||||
Gabriella replied.
|
||||
|
||||
“You have always been my servant, Gabriella. Ever since you first dreamt of my
|
||||
city.” The woman sat, and gestured for Gabriella to do the same. As she did, the
|
||||
woman continued.
|
||||
|
||||
“My city is under threat, and you have come very far to protect it. The army
|
||||
provided you with training, which will serve you well. While your discharge from
|
||||
the army is unfortunate, it is but a slight bump in the road.”
|
||||
|
||||
The woman waited, then. Gabriella returned her gaze, confused. This woman was
|
||||
not present at her dismissal, and news of it had not spread outside the
|
||||
barracks. If this woman was Barakhan, she was forbidden to speak with Gabriella.
|
||||
|
||||
“I am not worthy of protecting this city. My failures are paramount, and my
|
||||
actions found wanting. I have failed my family, my army, my homeland, and
|
||||
myself.” Gabriella replied.
|
||||
|
||||
“The events which led to your dismissal are unfortunate, but the judgement is
|
||||
fair.”
|
||||
|
||||
Gabriella winced. If the woman noticed, she paid no heed.
|
||||
|
||||
“You will make amends yet. Now is no time for this pathetic exercise in
|
||||
self-pity. For nearly two weeks you have lived as a vagrant and it has not done
|
||||
you well. Cities have inns for a reason. Get a room at The Red River Way. Tork,
|
||||
the keeper, is a good man and will charge you a fair price. You need a bath, and
|
||||
to properly dress yourself. I cannot give you the armor you are familiar with,
|
||||
but this cloak will keep you warm.”
|
||||
|
||||
The woman rose then, and looked down upon Gabriella.
|
||||
|
||||
“You must walk my city. Every road and alley way. Upon its stones and bricks you
|
||||
will discover your strength. You have asked for help, and this is how you shall
|
||||
earn it. You once swore to protect this city, and by proxy have sworn fealty to
|
||||
me. In return, once you have proven your fealty, I will extend my blessing to
|
||||
you.”
|
||||
|
||||
Gabriella stood, as the woman thrust the cloak into her arms.
|
||||
|
||||
“I will find you once more, here, when you are done.”
|
||||
|
||||
“Who are you to command me? I have no commander. I have no lord. I don’t want
|
||||
your charity and I don’t want your chores!” Gabriella responded, a fury rising
|
||||
in her voice.
|
||||
|
||||
“I am the patron of Silent Fall. I am Erathis. You asked for my help. I have
|
||||
given it.”
|
||||
|
||||
# 100 Days
|
||||
I'm writing this post as part of
|
||||
[#100DaysToOffload](https://100daystooffload.com), an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.
|
|
@ -1,345 +0,0 @@
|
|||
---
|
||||
tabtitle: "Pathfinder One-Shot: The Crater of Igrevor"
|
||||
title: "Pathfinder One-Shot: The Crater of Igrevor"
|
||||
topics: [gaming]
|
||||
pub: "2020-07-10"
|
||||
short_desc: "The first of several one-shot adventures I ran for Pathfinder"
|
||||
---
|
||||
|
||||
# Preamble to the Pathfinder
|
||||
|
||||
For many years now, I've been playing in several Pathfinder games. I very much
|
||||
enjoy the system, if only because I love options in roleplaying games. During
|
||||
the COVID-19 pandemic and lockdown, in addition to my weekly game, a second
|
||||
group started a weekly game. This one, unlike the campaign I've been playing in
|
||||
for the last 6 years (we're level 9), sees the characters level up after
|
||||
each adventure, and is meant more as a quick and fun string of one-shots. After
|
||||
a few weeks of Lizzie starting and running the "campaign," I volunteered to run.
|
||||
This post covers my one-shot `The crater of Igrevor`.
|
||||
|
||||
## Background
|
||||
|
||||
Before hopping in, a little background. The party at this point had gone on
|
||||
several adventures and made a name for themselves in a relatively small town.
|
||||
They decided to settle down, and because the details of this town weren't known
|
||||
at the time, all the players collaborated to establish the Town of Ulriksted. I
|
||||
took some liberties with the what we established, and decided that a powerful
|
||||
wizard has also moved to the town, seeing it as an opportunity for trade, but
|
||||
also a good place for a fancy tower. Wizards love their towers. Thus, Igrevor
|
||||
was born.
|
||||
|
||||
```
|
||||
Igrevor Thel'lessell
|
||||
|
||||
Lawful Neutral Elf
|
||||
|
||||
Cleric of Abadar: 3 // Wizard (Conjurer: Teleportation): 3 // Mystic Theurge: 10
|
||||
```
|
||||
|
||||
As a follower of Abadar, Igrevor is very interested in trade and travel, both on
|
||||
the material and other planes. His arcane studies also focus on extraplanar
|
||||
travel and research. And because I've always been interested in the `Mystic
|
||||
Theurge` class, I decided this was a perfect opportunity to make use of it. As a
|
||||
trader, I focused his build on several magical crafting feats: wonderous items,
|
||||
magical arms and armor, and constructs.
|
||||
|
||||
Igrevor's tower sits to the north of town, along the river which flows through
|
||||
Ulriksted. He offers his arcane services to the town, as well as crafting and
|
||||
selling his magical wares to adventurers when they travel through. Unfortunately
|
||||
for him, a powerful [Night
|
||||
Hag](https://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/hag/hag-night)
|
||||
has taken an interest in him, and has been haunting his dreams for a while now.
|
||||
Being a powerful wizard, he's been able to defend himself and his tower
|
||||
accordingly, but the Hag has decided to get some assistance. You see, Igrevor
|
||||
has established a powerful teleportation and planar travel system within his
|
||||
tower, albeit a well protected one. The Hag, studying this herself, conspired to
|
||||
exploit this with the help of a several extraplanar allies: Several
|
||||
[Xill](https://www.d20pfsrd.com/bestiary/monster-listings/outsiders/xill)
|
||||
raiding parties, to which she provided
|
||||
[Nightmare](https://www.d20pfsrd.com/bestiary/monster-listings/outsiders/nightmare/)
|
||||
mounts; and two [Umbral
|
||||
Dragon](https://www.d20pfsrd.com/bestiary/monster-listings/dragons/dragon/-primal-umbral/umbral-dragon-juvenile)
|
||||
brothers.
|
||||
|
||||
# The Crater of Igrevor
|
||||
|
||||
>_While enjoying a pint and a quiet night at Tuckleberry’s tavern, The Leaf and
|
||||
>Lyre, the party is rudely interrupted by the sound of a massive explosion,
|
||||
>north of town. As they race outside, they see a swirling vortex of colors
|
||||
>stretching high into the sky, roughly where Igrevor’s tower is. Screams shortly
|
||||
>follow, and as the party pulls their attention closer, they see looming shapes
|
||||
>approaching the town._
|
||||
|
||||
**Encounter: Xill Raiding Party**
|
||||
|
||||
>_Four-armed, flame-red insect-like humanoid creatures, riding upon steeds of
|
||||
>smoke and fire_
|
||||
|
||||
The first encounter is relatively easy for the party, considering at this point
|
||||
they're level 9. There are 4 Xill, each riding a Nightmare. Each has a special
|
||||
elemental key, tied to each of the four elemental planes: earth, air, water, and
|
||||
fire. The last Xill looted also has a note, written in Infernal: "These keys
|
||||
will keep the portals open, and the tower inaccessible. Once you have your new
|
||||
hosts, return to the Ethereal plane. DO NOT LOSE THEM!" Whoops.
|
||||
|
||||
>_As you move further, the party can clearly see the vortex of colors that now
|
||||
>envelop Igrevor’s tower. A chaotic flow of earth, wind, water and fire create an
|
||||
>impenetrable globe around what remains of the upper half of the tower, which
|
||||
>hangs unsupported in the sky. Beneath it, a crater is all that remains of the
|
||||
>bottom of the tower. As the party draws closer, you can make out 4 shimmering
|
||||
>portals, at each of the cardinal directions. From each, a distinct color and
|
||||
>element can be seen: north, a verdant green and stony landscape identifies a
|
||||
>portal to the plane of earth; south, a clear portal surrounded by gusts of
|
||||
>strong winds indicate the portal to the plane of air; to the west, a fiery
|
||||
>hellscape indicates the portal to the plane of fire; and to the east, a flood of
|
||||
>water flowing from the portal to the plane of water. Where the 4 regions meet,
|
||||
>the elements clash and swirl about, surging upward, creating the sphere around
|
||||
>the tower. As the party takes in the scene, they suddenly receive a Sending from
|
||||
>Igrevor: **In dire need of assistance. Tower under attack. Must close portals.
|
||||
>Please hurry! WILL REWARD! Use teleportation circle in foyer; top of tower**_
|
||||
|
||||
At this point, I also introduce a small mechanic related to the portals: Each
|
||||
elemental portal gives the PCs a boon:
|
||||
|
||||
- Plane of Earth: DR 1/- for each elemental planar portal open
|
||||
- Plane of Fire: Aura, 5ft: 1 fire damage for each elemental planar portal open
|
||||
- Plane of Water: Fast Healing 1 for each elemental planar portal open
|
||||
- Plane of Air: Bonus 1ft. Movement speed for each elemental planar portal open
|
||||
|
||||
Each of these boons is removed as soon an the associated portal is closed.
|
||||
|
||||
**Puzzle: The Elemental Portals**
|
||||
|
||||
To reach the tower, the party much figure out a way to close the portals.
|
||||
Initially, each portal claims a quarter of the ground around the portal. Closing
|
||||
a portal causes the adjacent portals to claim the ground, increasing their power
|
||||
and decreasing the power of the opposite portal. If coordinated, it should be
|
||||
possible for the party to close all portals simultaneously.
|
||||
|
||||
>Earth Portal
|
||||
>
|
||||
>- Trying to close the earth portal causes vines to sprout. If fire is still
|
||||
> open, the fire aura burns away the vines before they can entangle.
|
||||
>- Closing the earth portal causes the fire and water portals to increase in
|
||||
> power, and the air portal to decrease in power (modified DC)
|
||||
>- Entangle, DC 15: Thorny vines restrict movement and deal damage. Each round,
|
||||
> any creature trying to move through the area must make a reflex save or become
|
||||
> entangled, reducing movement speed to 10 feet and dealing 1d6 acid damage.
|
||||
> - If the Fire or Water portal has been closed, the DC increases by 2, to a
|
||||
> maximum of 19 if both portals are closed.
|
||||
> - If the Air portal has been closed, the DC decreases by 2
|
||||
> - If a creature enters the area with the fire aura, the entangle checks
|
||||
> automatically succeed: The aura from the plane of wire withers the vines as
|
||||
> they try to wrap around you.
|
||||
|
||||
>Fire Portal
|
||||
>- Trying to close the fire portal causes intense heat waves. If water is still
|
||||
> open, the aura cools the temperature
|
||||
>- Closing the fire portal causes earth and air to increase in power, and the
|
||||
> water portal to decrease in power (modified DC)
|
||||
>- Heat Waves, DC 15: Intense heat radiating from the portal causes damage and
|
||||
> fatigue. Each round, any creature trying to move through the area must make a
|
||||
> fortitude save or become fatigued and take 1d6 fire damage.
|
||||
> - If the Earth or Wind portal has been closed, the DC increases by 2, to a
|
||||
> maximum of 19 if both portals are closed
|
||||
> - If the water portal has been closed, the DC decreases by 2
|
||||
> - If a creature enters the area with the water aura, the fatigue checks
|
||||
> automatically succeed: The aura for the plane of water cools the area,
|
||||
> keeping the heat at bay.
|
||||
|
||||
>Water Portal
|
||||
>- Trying to close the water portal causes buffeting waves and sheets of rain to
|
||||
> disorient and hamper the player. If the air portal is still open, the aura
|
||||
> keeps visions clear.
|
||||
>- Closing the water portal causes the earth and air portals to increase in
|
||||
> power, and the fire portal to decrease in power (modified DC)
|
||||
>- Stormy Weather, DC 15: Torrential rain and slick ground causes difficult
|
||||
> terrain and disorientation. Each round, any creature trying to move through
|
||||
> the area must make a reflex save or fall prone, and a will save or become
|
||||
> disoriented, moving in a random direction (Roll 1d4: 1, move in intended
|
||||
> direction; 2, move to the left; 3, move to the right; 4, move backwards)
|
||||
> - If the Earth or Wind portal has been closed, the DC increases by 2, to a
|
||||
> maximum of 19 if both portals are closed
|
||||
> - If the earth portal has been closed, the DC decreases by 2
|
||||
> - If a creature enters the area with the air aura, there is no risk of
|
||||
> disorientation. If a creature enters the area with the earth aura, there is
|
||||
> no risk of falling.
|
||||
|
||||
>Air Portal
|
||||
>- Trying to close the air portal causes strong winds and electrical shocks. If
|
||||
> the earth portal is still open, it helps to resist the winds.
|
||||
>- Closing the air portal causes the fire and water portals to increase in power,
|
||||
> and the earth portal to decrease in power (modified DC)
|
||||
>- Tornado, DC 15: Strong winds buffet and shock. Each round, any creature trying
|
||||
> to move through the area must make a fortitude save or be blown 10 ft away
|
||||
> from the portal, and take 1d6 electricity damage.
|
||||
> - If the water or fire portal has been closed, the DC increases by 2, to a
|
||||
> maximum of 19 if both portals are closed
|
||||
> - If the earth portal has been closed, the DC decreases by 2
|
||||
> - If a creature enters the area with the earth aura, the push checks
|
||||
> automatically succeed: The earth aura grounds you, giving you resistance to
|
||||
> the forceful winds
|
||||
|
||||
>_As the last portal closes, the last remnants of the elemental sphere around the
|
||||
>tower dissipate. The tower floats silently above the group, with ruins frozen in
|
||||
>the air hanging beneath it. The closest pieces, which could be used to climb
|
||||
>into the tower proper, are 20 feet in the air._
|
||||
|
||||
With the four elemental portals closed, the tower is now accessible. The party
|
||||
must somehow ascend 20 feet into the air to get to the lowest ruins, and then a
|
||||
Climb (DC 10) check to get to the rest of the tower, 10 feet further up. This,
|
||||
like a few other obstacles, was a way to force the party to use resources. The
|
||||
sorcerer of the group knows fly, and so this was a way to get him to use a
|
||||
spell. The way I tend to run many of my games is to try and force my players to
|
||||
think about their resources, and manage them accordingly. To be fair, I try to
|
||||
give alternatives. For example, the party could use rope to climb up. I think in
|
||||
this case, they used either `Mage Hand` or a familiar to loop rope around some
|
||||
rubble, then the fighter climbed up and attached a better rope, and they were
|
||||
able to ascend without expending many resources at all.
|
||||
|
||||
>_Once inside, there is a corkscrew stairwell along the walls of the tower,
|
||||
>ascending roughly another 20 feet. At the top, light and shadows play on the
|
||||
>wall near where the stairs enter a new floor._
|
||||
|
||||
If the party is perceptive or stealthy enough, they can notice several figures
|
||||
waiting on the next floor, as well as get the drop on them!
|
||||
|
||||
**Encounter: Xill and Night Hag**
|
||||
|
||||
>_A tall, gaunt figure with long limbs stands with two more Xill. Her skin
|
||||
>stretches tightly across her bones, and a grin stretches across her nightmarish
|
||||
>visage. Claws and fangs betray her intent._
|
||||
|
||||
Here, again, I tried to force a change of tactics. The room the party fights in
|
||||
is only 20 by 20. The usual `Fireball` approach would be dangerous. The party
|
||||
was clever and perceptive, though, and the sorcerer was able to approach the
|
||||
room invisibly, and place a `Fireball` in a way so as to kill the Xill. The Hag
|
||||
is immune to fire, conveniently, and so the party had to deal with her some
|
||||
other way. Also, she can cast `Invisibility` at will, which helper her get the
|
||||
drop on the party. The sorcerer `Fireball`'s the room, ducking down the
|
||||
stairwell to avoid the blast. While no one can see her, she goes invisible. The
|
||||
party doesn't see any threats, enters the room, and she pounces. Hag's are great
|
||||
opponents. They have a great kit for DMs to play with; great defenses, including
|
||||
damage reduction, a solid set of immunities, and spell resistance 24! The lore
|
||||
of hags, as extraplanar scavengers and traders, is also fascinating. I'd like to
|
||||
use one in a future campaign, especially an evil campaign, and have this be a
|
||||
companion NPC or something.
|
||||
|
||||
With this encounter completed, the party stands in the aforementioned foyer, and
|
||||
on the ground they see an arcane circle: the teleportation circle.
|
||||
|
||||
>_The corpse of the night hag fades into shadow, as it disappears from the
|
||||
>material plane. With the room now secured, you see arcane symbols inscribed in
|
||||
>the center of the room. This must be the teleportation circle Igrevor mentioned
|
||||
>in his sending. As you step into the circle, you find yourself transported to a
|
||||
>large, cylindrical room. An inner wall breaks at four equidistant places,
|
||||
>revealing an outer wall, and a shimmering pool of light in a small alcove._
|
||||
|
||||
>_Exploring the space, the inner room has the teleportation circle, and many
|
||||
>arcane symbols drawn into the stone and the walls._ A Knowledge(Arcana) or
|
||||
>Spellcraft, DC 15, reveals the symbols to be protections related to
|
||||
>teleportation, plane shifting, and the like. _Checking the outer ring, you find
|
||||
>the four aforementioned pools, as well as a wall of force blocking a hallway._
|
||||
|
||||
>_Oh a whim, you glance up, and see two spheres circling the room. One is pure
|
||||
>white, and the other black. They maintain a perfect distance from each other._ A
|
||||
>Knowledge(Planes), DC 15, identifies the spheres as being made of pure positive
|
||||
>and negative energy, respectively. _You now notice, as the spheres pass by the
|
||||
>alcoves, the pools briefly shift towards the color of the sphere, and the wall
|
||||
>of force slightly..._
|
||||
|
||||
Or, at least, that was the original intention. As so often happens, I wasn't
|
||||
quite satisfied with this part of the original adventure, and modified this it
|
||||
slightly. Originally, the party was going to fight a "Planar Scion." Initially,
|
||||
the party would find two humanoid energy beings, one made of positive energy and
|
||||
one made of negative energy. The beings would be indestructible, and the party
|
||||
would have to merge them to create a single being, which was now vulnerable.
|
||||
But, I couldn't figure out a good way to convey this information, while making
|
||||
the combat engaging, in the time I had, so I scrapped it for a puzzle instead.
|
||||
|
||||
**Puzzle: Spheres and Pools**
|
||||
|
||||
>_As you navigate the room, you find the hallway leading from this room, and an
|
||||
>opaque barrier blocking the way forward._
|
||||
|
||||
>_Oh a whim, you glance up, and see four spheres circling the room. Two are pure
|
||||
>white, and the others black. They maintain a perfect distance from each other._ A
|
||||
>Knowledge(Planes), DC 15, identifies the spheres as being made of pure positive
|
||||
>and negative energy, respectively. _You now notice, as the spheres pass by the
|
||||
>alcoves, the pools briefly shift towards the color of the sphere, and the
|
||||
>barrier slightly dissipates_
|
||||
|
||||
The only way through this barrier is to stop the rotating spheres. As alluded to
|
||||
in the descriptive text, the pools and the spheres are related. As the spheres
|
||||
pass over the pools, they shift the pools from clear towards the color of the
|
||||
sphere, and I added that the spheres appear to slow down very slightly. The
|
||||
party had to use positive and negative energy sources to shift the pools to the
|
||||
appropriate attunement, which stopped the spheres, and opened the barrier.
|
||||
|
||||
**Final Encounter: Umbral Dragon**
|
||||
|
||||
>_As the spheres stop, above the pools, they descend into the pools, and
|
||||
> dissolve the barrier blocking the way out of the room. Moving through the
|
||||
> hallway, you come to a large meeting hall. An oak table, which could almost
|
||||
> seat the entire town of Ulriksted, sits in the middle of the hall, with chairs
|
||||
> and tables strewn about. Making your way into hall, you see Igrevor to your
|
||||
> right, as he finishes casting a spell and striking down one of two juvenile
|
||||
> dragons standing opposite him. He turns to you, and speaks, "The Lords of
|
||||
> Ulriksted! And just in time! I am sorry, friends, I cannot assist you further;
|
||||
> one of these beasts took most of my arsenal to defeat. I beg your assistance!"
|
||||
> As he finishes, you see a sphere arise around him, and him kneel to catch his
|
||||
> breath._
|
||||
|
||||
The boss battle! The juvenile Umbral Dragon! I toned down the beast a bit, but I
|
||||
definitely shouldn't have. It was a good fight, and the barbarian did not hold
|
||||
back. As the party defeated them, Igrevor thanked them, and their reward was any
|
||||
single magical item that he can make. In addition, because I'm prone to giving
|
||||
my PCs overpowered items, I allowed each of them to have an item made from the
|
||||
scales of the dragon, which gives them the immunities of the dragon. This turned
|
||||
out to be a _very_ powerful option: immune to cold, death effects, negative
|
||||
energy, paralysis, sleep.
|
||||
|
||||
# Aftermath
|
||||
|
||||
I had a lot of fun with this one. The party made their way with through with
|
||||
consistent progress, and the boss battle was challenging but not overwhelming. I
|
||||
think, if run again, I wouldn't tone down the boss. I ended up running a
|
||||
follow-up adventure, which is currently untitled, but which became a two parter,
|
||||
and the driving motivation for my upcoming third adventure. I look forward to
|
||||
sharing those as well! Feel free to make use of this adventure in your own
|
||||
games!
|
||||
|
||||
# MapTools
|
||||
|
||||
But wait, there's more! This adventure was my first foray into MapTools, a free
|
||||
and open-source virtual table top system. It allows you to create detailed
|
||||
maps, add tokens, set sight lines, and much more. You can host a server locally
|
||||
that your players can connect to, and they can move things around themselves.
|
||||
Or, if you're a bit lazier like me, you can share your screen on your voice call
|
||||
of choice, and just move the tokens for players instead. I had a lot of fun
|
||||
crafting Igrevor's Tower in MapTools, and then sharing that with my players
|
||||
during the session. It really made the game more enjoyable, and more immersive
|
||||
than just a standard voice-and-video call.
|
||||
|
||||
The community for the MapTool suite has built a lot of tokens, tile sets, and
|
||||
additional assets to really explore and build _exactly_ what you want. I
|
||||
certainly made good use of CSP's Dungeon Geomorphs (available for free directly
|
||||
within MapTools, and made by [Kristian
|
||||
Richards](https://www.crookedstaff.co.uk/)), [Devin
|
||||
Night's](https://immortalnights.com/tokensite/) tokens (some of which are
|
||||
available for free, but are well worth the price) and Torstan's Markers and
|
||||
Objects (also available directly within MapTools). I'm not sure if the campaign
|
||||
will load without those enabled, but for anyone interested, you can find a link
|
||||
to the campaign maps for this adventure [here (click to download)](
|
||||
{{ site.url }}/src/campaigns/crater_of_igrevor.cmpgn).
|
||||
|
||||
|
||||
# 100 Days
|
||||
I'm writing this post as part of
|
||||
[#100DaysToOffload](https://100daystooffload.com), an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.
|
||||
|
||||
|
||||
# Sources
|
||||
|
||||
* [MapTools](https://www.rptools.net/toolbox/maptool/)
|
|
@ -1,101 +0,0 @@
|
|||
---
|
||||
tabtitle: "Brief Exploration of Syncthing"
|
||||
title: "Brief Exploration of Syncthing"
|
||||
topics: [technology]
|
||||
pub: "2020-07-19"
|
||||
short_desc: "Syncthing is an incredible tool. In this post, I want to
|
||||
explore setting it up, and then some uses I've found for it."
|
||||
---
|
||||
|
||||
# A Brief Exploration of Syncthing
|
||||
|
||||
Syncthing is an incredible tool. Many days past I stumbled upon it as an
|
||||
alternative to Dropbox. It's different from Dropbox, or similar services,
|
||||
though, in a number of ways. For one, Syncthing is a peer-to-peer
|
||||
synchronization program, whereas Dropbox is a centralized file storage and
|
||||
synchronization service. When you setup and use Syncthing, the files only ever
|
||||
live on whichever peers you setup. This is different from Dropbox, or similar
|
||||
services, where files live on their servers. There's more to it, and for all the
|
||||
details, the [Syncthing](https://syncthing.net/) website provides plentiful
|
||||
information.
|
||||
|
||||
In this post, I want to discuss how to setup Syncthing, and some use-cases for
|
||||
it. In future posts, I want to explore setting up custom relay servers, and
|
||||
perhaps some more use-cases as well.
|
||||
|
||||
## Setup
|
||||
|
||||
Install the appropriate package for your operating system. Syncthing is
|
||||
available on just about every OS out there. Syncthing already has [thorough
|
||||
installation
|
||||
documentation](https://docs.syncthing.net/intro/getting-started.html), so I
|
||||
won't re-write what's already available. I will discuss how I setup my Syncthing
|
||||
instead.
|
||||
|
||||
On my desktop, running Arch Linux, I installed the necessary package:
|
||||
|
||||
```
|
||||
$ sudo pacman -S syncthing
|
||||
```
|
||||
|
||||
When I was running Gnome, I also installed `syncthing-gtk` to provide a tray
|
||||
icon. After my switch to KDE Plasma, the Syncthing application displays a tray
|
||||
icon by default, and so I removed the now unnecessary package. When I had a
|
||||
Windows partition, I also installed `SyncTrazor` for a tray icon.
|
||||
|
||||
The second device of choice is my Android phone, where I installed the Syncthing
|
||||
app (helpfully available on F-Droid too!).
|
||||
|
||||
With packages installed on both devices, I then followed the guide. All things
|
||||
considered, it was a very easy process.
|
||||
|
||||
## Use-Case: Music
|
||||
|
||||
One of the most immediate uses I had for Syncthing was music. I finally decided
|
||||
to drop all streaming services, and start buying my music. As a result, I
|
||||
suddenly had a growing music library available on my desktop. This was the
|
||||
primary reason I decided to try Syncthing: to get music files from my desktop
|
||||
onto my phone. After setup, syncing was a breeze. The new problem became space:
|
||||
I have quite a bit of music now, and I don't necessarily want all of it on my
|
||||
phone. Conveniently, Syncthing allows for creating a `.stignore` file, which
|
||||
tells Syncthing which files to exclude from synchronizing. The
|
||||
[documentation](https://docs.syncthing.net/users/ignoring.html) provides a great
|
||||
breakdown of available options. One challenge is that the `.stignore` file is
|
||||
**not** synchronized. To get around this, I setup my ignore file to include a
|
||||
second file, which _does_ get synchronized. That file lists every directory and
|
||||
subdirectory in my music folder, and then ends with `**/*`. For any directory or
|
||||
subdirectory (generally artist and album, respectively) that I want to sync, I
|
||||
place a `!` before it. The eventual plan is to automatically update the file
|
||||
whenever new music is added to the directory. When I get around to that, I'll
|
||||
almost certainly post about it.
|
||||
|
||||
## Use-Case: Notes / To-Do
|
||||
|
||||
Not long after music, I started looking around for a good to-do / note-taking
|
||||
app for my phone. I wanted an application that was simple, without bells and
|
||||
whistles. I tried a few before settling on
|
||||
[Markor](https://gsantner.net/project/markor.html). This app is wonderful.
|
||||
Everything I want, with almost nothing I don't. It's open-source, actively
|
||||
developed, available on F-Droid; it works on local files, and _that's it_. I
|
||||
started using it to track my gym workouts, make grocery lists, or track
|
||||
suggestions for media. As long as I was on wi-fi, those files were waiting for
|
||||
me on my desktop. Very convenient, simple, and effective.
|
||||
|
||||
## Use-Case: Pictures
|
||||
|
||||
Another straight-forward use case: synchronizing pictures. As I continue to
|
||||
"de-Google" my life, I needed a replacement for Google Photos. I have a Flickr,
|
||||
but I'm not certain that I'll hang onto it. For now, I just need a simple way to
|
||||
synchronize pictures between my phone and my desktop, and Syncthing provides
|
||||
that.
|
||||
|
||||
# 100 Days
|
||||
I'm writing this post as part of
|
||||
[#100DaysToOffload](https://100daystooffload.com), an initiative to inspire
|
||||
writing habits. Perhaps you could do the same.
|
||||
|
||||
# Sources
|
||||
|
||||
* [Syncthing](https://syncthing.net/)
|
||||
* [SyncTrayzor](https://github.com/canton7/SyncTrayzor)
|
||||
* [Markor](https://gsantner.net/project/markor.html)
|
|
@ -1,278 +0,0 @@
|
|||
---
|
||||
tabtitle: "Pathfinder: Let's Make a Druid"
|
||||
title: "Pathfinder Characters: Let's Make a Druid"
|
||||
topics: [gaming]
|
||||
pub: "2020-09-05"
|
||||
short_desc: "One of my favorite activities is creating characters. I love
|
||||
theory crafting, pouring through source material, and setting limits. While
|
||||
I've made many, many characters, one class I haven't touched is druid."
|
||||
---
|
||||
|
||||
# Let's Make a Druid
|
||||
|
||||
Pathfinder has been the tabletop game of choice for my longest-running group.
|
||||
One of my favorite activities is creating characters. I love theory crafting,
|
||||
pouring through source material, and setting limits. While I've made many,
|
||||
_many_ characters, once class I haven't touched is druid. The first character I
|
||||
ever made, back in a D&D Second Edition, was a druid. I don't remember much from
|
||||
that character, except that I had a double-scimitar (think Darth Maul
|
||||
lightsabre, but scimitars). Since that, I haven't done much with druids, which I
|
||||
think is a shame, because it's a fascinating class that ticks many of the boxes
|
||||
I look for in a character. I love characters with options, that require a bit of
|
||||
mastery to play. Many characters I like the most are multi-classed, mixing
|
||||
spellcasting with melee combat. Some classes, though, provide all this
|
||||
out-of-the-box. From the core book, both cleric and druid satisfy my demands. I
|
||||
hold, still, that cleric is the most powerful class. I had this belief in D&D
|
||||
Third Edition, and I carry it forward into Pathfinder and D&D Fifth Edition.
|
||||
That's a topic for another post, though.
|
||||
|
||||
## Concept
|
||||
|
||||
All of my characters come from a concept. Sometimes the concept is really
|
||||
straight forward: I want a "realistic" fighter. I want a "proper" Eldritch
|
||||
Knight. Sometimes, the concept is more story based, as is the case with this
|
||||
druid. I read a story about a moose in Alaska that ate some apples which had
|
||||
fermented, and wandered into a town drunk. I thought, "that would make a fun
|
||||
animal companion!", and thus the idea for a druid. The full backstory for the
|
||||
character will be around here somewhere. For now, I'll spend the rest of this
|
||||
post focusing on the build.
|
||||
|
||||
## Build
|
||||
|
||||
Drunk moose. Drunk... spirit moose! OK, now we're getting somewhere. As I
|
||||
fleshed out the story, and spoke with a friend about druid, I liked the idea of
|
||||
dipping one level in barbarian, then continuing with druid. That one level gets
|
||||
me quite a bit: d12 hit dice (and max at first level!); +1 BAB; +10 movement
|
||||
speed; and rage. The biggest downside is a delay in spellcasting, but I think
|
||||
it's a fair trade-off. Considering the build is equally focused on spellcasting
|
||||
and melee combat, the rage will provide an additional resource where spells and
|
||||
standard attacks may not be sufficient. Obviously, druid will be our favored
|
||||
class.
|
||||
|
||||
```
|
||||
Barbarian 1, Druid X
|
||||
```
|
||||
|
||||
## Skills
|
||||
|
||||
Druid's aren't reknown for being particularly skillful, but they get some great
|
||||
class skills. Of note, we get Handle Animal, Heal, Knowledge(Nature),
|
||||
Perception, and Survival. At 4+INT skill points, we can reliably grab most of
|
||||
these. Throw a point of two into Fly, Climb, and Swim, and between having a
|
||||
great strength, and wild shape, we can deal with whatever obstacles those skills
|
||||
require.
|
||||
|
||||
```
|
||||
Handle Animal
|
||||
Heal
|
||||
Knowledge (Nature)
|
||||
Perception
|
||||
Survival
|
||||
```
|
||||
|
||||
## Race
|
||||
|
||||
Pathfinder has no shortage of races to choose from. For most of my builds, I try
|
||||
to stick to the "basics" provided in the Core Rulebook, but I also allow myself
|
||||
the Advanced Race Guide races. For this build, though, mostly due to the
|
||||
backstory/concept, I went human. We'll opt for a bonus HP each level in druid,
|
||||
for our favored class bonus.
|
||||
|
||||
## Feats
|
||||
|
||||
Human gets a bonus first level feat, then all characters get a first level feat.
|
||||
I tend to make characters for whatever level our campaign is at, and for now
|
||||
that's 8th level. That gives me five feats total. At fifth level, I'm taking
|
||||
Natural Spell. Since I'm a melee bruiser, I'm interested in Power Attack, Vital
|
||||
Strike, Toughness, and Powerful Shape, but I can't get the last one just yet.
|
||||
Druids are fantastic summoners, and it's very tempting to pick up Augmented
|
||||
Summons. For this build, though, it's a two feat investment for a strategy I
|
||||
won't be using much. For first level, I went with Toughness and Power Attack. As
|
||||
a first level barbarian, those two feats give me a lot of staying power. As a
|
||||
druid, my BAB won't progress as strongly, but in wild shape it can give me a lot
|
||||
of damage. Combined with vital strike, certain shapes will give me a single,
|
||||
"two-handed" attack for a significant amount of damage at a good attack bonus.
|
||||
|
||||
Thematically, I've opted for the feat Spirit's Gift. It fits my drunken spirit
|
||||
moose concept perfectly.
|
||||
|
||||
That leaves level 7. The aforementioned vital strike could be a great option.
|
||||
There's also furious focus: for a single, two-handed power attack, remove the
|
||||
power attack penalty. Since we'll be taking advantage of our animal companion,
|
||||
there's also the option for teamwork feats. Animal companions get feats, too,
|
||||
and there are a few in particular that would work very well: Shake It Off would
|
||||
give us both +1 on all saves; Improved Spell Sharing would let me share buffs
|
||||
better; and then there are the charges. These interested me. I need to step back
|
||||
briefly to consider the animal companion, so we'll leave our feats in an
|
||||
undecided state for now.
|
||||
|
||||
```
|
||||
Bonus: Toughness
|
||||
Lvl 1: Power Attack
|
||||
Lvl 3: Spirit's Gift
|
||||
Lvl 5: Natural Spell
|
||||
Lvl 7: ???
|
||||
```
|
||||
|
||||
## Animal Companion
|
||||
|
||||
By now it should be clear this is not really a min-max guide. There are plenty
|
||||
of guides that exist already for that sort of build; I'll link a few I've
|
||||
referenced below. In those guides, animal companion choses are pretty clear:
|
||||
take a wolf/dire wolf if you want to be a trip artist; take a big cat for
|
||||
superior damage; take one of any number of dinosaurs for superior options. No
|
||||
where is a moose mentioned, because they're not "optimal." That's fine. I don't
|
||||
want optimal, I want drunken spirit moose.
|
||||
|
||||
Moosen start off pretty bland. They don't get any special attacks, they're
|
||||
medium size, an average AC, an average attack, and relatively low damage. At
|
||||
level 7, they get significantly better: large size; better AC; better damage,
|
||||
and powerful charge. For this build, I'll focus on charging. Both I and the
|
||||
moose will charge hard into whatever enemy we want to focus first. With some of
|
||||
the team work feats alluded to above, we can emphasize significant bonuses and
|
||||
improvements to charging.
|
||||
|
||||
If I wanted to change this to a more optimal build, I'd probably go for an axe
|
||||
beak. It could be the in-universe thematic equivalent of a moose. Qwark.
|
||||
|
||||
## Feats, Completed This Time
|
||||
|
||||
In addition to my feats, I get feats for my animal companion. At character level
|
||||
8, I'm a 7th level druid, which means my animal companion gets 3 feats, with a
|
||||
4th coming next level. The charge feats I'm considering would be 3 feats
|
||||
minimum: 2 teamwork feats, and then Coordinated Charge. The requirements for
|
||||
Coordinated Charge are 2 teamwork feats, and a BAB +10. My animal companion, of
|
||||
any flavor, won't have that until level 17! That's a bit of a downer, but there
|
||||
are some other interesting ones that lead up to it nicely. Distracting Charge
|
||||
would give either my moose or me a +2 to hit against the target of a charge.
|
||||
Intercept Charge could provide significant defensive benefits, though neither my
|
||||
moose nor I are particularly defensive oriented. Shake It Off would give Moose
|
||||
and Me +1 on all saves while we're adjacent. And Improved Spell Sharing helps
|
||||
with buffing. The one thing about ISS though is the requirements are a bit...
|
||||
odd. It _seems_ to be intended for use by a class that can share their teamwork
|
||||
feats, but I think a discussion with a DM can resolve the issue.
|
||||
|
||||
```
|
||||
Druid:
|
||||
- Bonus: Toughness
|
||||
- Lvl 1: Power Attack
|
||||
- Lvl 3: Spirit's Gift
|
||||
- Lvl 5: Natural Spell
|
||||
- Lvl 7: Improved Spell Sharing
|
||||
|
||||
Moose:
|
||||
- Lvl 1: Toughness
|
||||
- Lvl 2: Weapon Focus (Gore)
|
||||
- Lvl 5: Improved Spell Sharing
|
||||
```
|
||||
|
||||
Looking forward slightly, next level we each get another feat.
|
||||
|
||||
```
|
||||
Druid:
|
||||
- Lvl 9: Powerful Shape
|
||||
|
||||
Moose:
|
||||
- Lvl 8: Improved Natural Attack (Gore)
|
||||
```
|
||||
|
||||
## Gear
|
||||
|
||||
Since we're wild-shaping, we don't need to worry _too_ much about armor and
|
||||
weapon. We can get the benefits of a shield, so we'll want a decent one of
|
||||
those. Ring of Protection (+1) is a standard, and I'll also opt for a Cloak of
|
||||
Resistance (+2). We're a bit MAD (multi-attribute dependent), wanting high
|
||||
strength and wisdom primarily, with good dexterity and constitution still. I'll
|
||||
take a Headband of Inspired Wisdom (+2), and a Belt of Physical Prowess
|
||||
(Strength and Constitution +2). In exchange for a weapon, I'll pick up an Amulet
|
||||
of Mighty Fists (+1). Finally, because wild shape is so important, we'll pick up
|
||||
Druid Vestments, which give us an extra wild shape use per day.
|
||||
|
||||
```
|
||||
Headband of Inspired Wisdom, +2
|
||||
Amulet of Mighty Fists, +1
|
||||
Cloak of Resistance, +2
|
||||
Druid Vestments
|
||||
Belt of Physical Prowess (STR/CON), +2
|
||||
Ring of Protection, +1
|
||||
Heavy Wooden Shield, +1
|
||||
Scimitar
|
||||
```
|
||||
|
||||
I have a mundane item pack I generally pick up as well, which includes things
|
||||
like a mirror, fishing hooks, and the like. Normally it's all in a Handy
|
||||
Haversack, but since I'm shapshifting so often, for the druid that'll shift to a
|
||||
Polymorphic Pouch.
|
||||
|
||||
Also, a Ring of Eloquence is a solid buy, to allow for discussion which
|
||||
shapeshifted.
|
||||
|
||||
## Spells
|
||||
|
||||
Druids have a _lot_ of spell options. We're a melee fighter, so many of our
|
||||
spells will focus on buffing, debuffing, and control. We can also include some
|
||||
out-of-combat utility. There are too many options to list, and again, guides
|
||||
already exist that go through every spell and analyze them. Here are the spells
|
||||
that I'll consider regularly:
|
||||
|
||||
```
|
||||
Level 1:
|
||||
- Entangle [Control]
|
||||
- Faerie Fire [Control][Debuff]
|
||||
- Frostbite [Buff][Damage][Debuff]
|
||||
- Goodberry [Utility]
|
||||
- Longstrider [Buff]
|
||||
- Magic Fang [Buff]
|
||||
- Mudball [Damage][Debuff]
|
||||
- Thorn Javelin [Damage][Debuff]
|
||||
- Thunderstomp [Control][Debuff]
|
||||
|
||||
Level 2:
|
||||
- Barkskin [Buff]
|
||||
- Lockjaw [Buff][Control]
|
||||
- Natural Rhythm [Buff][Damage]
|
||||
- Resist Energy [Buff]
|
||||
- Sickening Entanglement [Control][Debuff]
|
||||
- Stone Call [Damage][Debuff]
|
||||
- Vine Strike [Control][Damage][Debuff]
|
||||
- Whip of Spiders [Damage][Debuff]
|
||||
- Wilderness Soldiers [Control][Damage]
|
||||
|
||||
Level 3:
|
||||
- Call Lightning [Damage]
|
||||
- Earth Tremor [Damage][Control][Debuff]
|
||||
- Fey Form I [Utility]
|
||||
- Fungal Infestation [Debuff]
|
||||
- Greater Magic Fang [Buff][Damage]
|
||||
- Greater Thunderstomp [Control][Debuff]
|
||||
- Spike Growth [Control][Damage][Debuff]
|
||||
- Thorny Entanglement [Control][Damage]
|
||||
- Vermin Shape I [Utility]
|
||||
|
||||
Level 4:
|
||||
- Aspect of the Stag [Buff][Damage]
|
||||
- Cape of Wasps [Buff][Damage][Debuff]
|
||||
- Echolocation [Buff]
|
||||
- Freedom of Movement [Buff]
|
||||
- Grove of Respite [Utility]
|
||||
- Slowing Mud [Control][Debuff]
|
||||
- Spike Stones [Control][Damage][Debuff]
|
||||
- Strong Jaw [Buff][Damage]
|
||||
```
|
||||
|
||||
## Gameplay
|
||||
|
||||
I've never played this build! I'm sure it could use some modifications. The
|
||||
emphasis on choosing a moose over other animal companions could be a serious
|
||||
hinderance. I think the general play would go like this: buff self, sharing the
|
||||
buffs with my animal companion; enter melee combat, preferably by charging at a
|
||||
target with my animal companion; throw around control and debuff spells as
|
||||
necessary.
|
||||
|
||||
This is very much a first draft, but I think it could be a fun one!
|
||||
|
||||
# Sources
|
||||
|
||||
* [Pathfinder SRD](https://www.d20pfsrd.com/)
|
||||
* [Prometheus Guide to the Druid](https://docs.google.com/document/d/1PXamF43boZgYtCUlyJAMojfrPaAdYyjPOaGOo1vfqdM/edit#heading=h.nxj7sifd7tvs)
|
||||
* [Treantmonk's Guide to Druids](https://docs.google.com/Doc?docid=0AcNyxDTKvAmqZGRtZzhzdjZfNDZnNHpzcmdodA&hl=en)
|
|
@ -1,311 +0,0 @@
|
|||
---
|
||||
tabtitle: "Pathfinder: Building My Eldritch Knight"
|
||||
title: "Pathfinder Characters: Eldritch Knight"
|
||||
topics: [gaming]
|
||||
pub: "2020-09-27"
|
||||
short_desc: "The Eldritch Knight represents my favorite archetype of a
|
||||
fantasy character: sword and sorcery. Here's how I build mine."
|
||||
---
|
||||
|
||||
# Building My Eldritch Knight
|
||||
|
||||
Pathfinder has been the tabletop game of choice for my longest-running group.
|
||||
One of my favorite activities is creating characters. I love theory crafting,
|
||||
pouring through source material, and setting limits. My favorite archetype of
|
||||
characters are those that take the combat focus of a warrior and supplement it
|
||||
with magic. The druid, which I [already touched
|
||||
on](/2020/09/06/pathfinder-druid.html), is a class that
|
||||
has this built in. This blending of magic and metal is often called a
|
||||
[Gish](https://en.wiktionary.org/wiki/gish).
|
||||
|
||||
## Concept
|
||||
|
||||
All of my characters come from a concept. This concept is heavily mechanics
|
||||
focused, and heavily opinionated: I want a "proper" eldricth knight. To me, a
|
||||
proper eldritch knight doesn't use any gimmicks or tricks to get into the
|
||||
prestige class sooner, doesn't rely too heavily on especially unique or strange
|
||||
equipment, and sticks to a limited set of rule books.
|
||||
|
||||
## Build
|
||||
|
||||
For this build, I'll be limiting myself the these rule books:
|
||||
|
||||
- Core Rulebook
|
||||
- the Ultimate books (Combat, Magic, Intrigue, Wilderness, and Equipment)
|
||||
- the Advanced books (Player's Guide, Race, and Class)
|
||||
|
||||
Eldritch Knight needs a martial class, and an arcane class. While there are
|
||||
plenty of options, I wanted to start with the most basic options:
|
||||
|
||||
```
|
||||
Fighter 1 / Wizard (Enchantment) 5 / Eldritch Knight X
|
||||
```
|
||||
|
||||
Wizards have the option of taking a school, and it makes a lot of sense for
|
||||
a melee combatant to focus on buffing itself. Thus, I went for a Transmutation
|
||||
school, and specifically for the Enchantment school. For opposed schools, I
|
||||
opted for Evocation and Necromancy. I lose out on some nice spells, certainly,
|
||||
but considering our focus, we wouldn't be using many blasting spells. Not to
|
||||
mention, our spell penetration will be relatively weak by comparison to more
|
||||
spell-focused builds. Obviously, open to alternatives, but I would advise
|
||||
against choosing Illusion, since it has some of the better non-transmutation
|
||||
buffs in the game.
|
||||
|
||||
Wizards also have to choose an arcane bond, which is either a familiar or an
|
||||
item. Familiars are incredibly useful, but for this build I really liked the
|
||||
idea of having my arcane bond be my weapon. This can be **very dangerous!** If
|
||||
your bonded item is taken from you, or destroyed, you will have a _very
|
||||
difficult time_ casting spells.
|
||||
|
||||
## Traits
|
||||
|
||||
In our Pathfinder group, we don't _really_ use traits, but I use traits.
|
||||
Specifically, I always use 1 trait when it is applicable, because I believe
|
||||
without this trait, any Gish build that relies on multiple classes is severely
|
||||
penalized: Magical Knack. This trait will allow me to up my caster level for
|
||||
Wizard by up to +2, up to my maximum hit dice. This doesn't give me more spells
|
||||
per day, but it does affect spell details such as duration, or saving throw DC,
|
||||
that rely on caster level. Conveniently, for this build, we have exactly two
|
||||
levels that do not give a bonus to wizard caster level: the 1 level of fighter
|
||||
we take, and the first level of eldritch knight.
|
||||
|
||||
If two traits are allowed, solid choices are `Reactionary` for a bonus to
|
||||
initiative; `Deft Dodger` for an improved reflex save; `Eyes and Ears of the
|
||||
City` for a bonus on perception and to add it as a class skill; or `Armor
|
||||
Expert` to reduce all armor check penalties by 1.
|
||||
|
||||
```
|
||||
Magical Knack (Wizard)
|
||||
```
|
||||
|
||||
## Race
|
||||
|
||||
Human. Elf as a very close second. The bonus for spell penetration, the bonus to
|
||||
perception and spellcraft skills, and the ability score modifiers are all solid.
|
||||
But, this build won't need to worry about puncturing spell resistance, and
|
||||
because we're a melee combatant, we need all the constitution we can get. Human
|
||||
provides a bonus +1 skill point per level, a bonus feat, and a floating +2
|
||||
ability score increase, which we can use for our strength or intelligence.
|
||||
|
||||
## Skills
|
||||
|
||||
None of the three classes in this build provide a significant number of skills;
|
||||
all three give 2 + INT per level. However, being a wizard, we _do_ have a nice
|
||||
intelligence score, and as a human we get an additional +1. At a minimum, we'll
|
||||
probably get 5 skill points per level. There are no skill requirements to get
|
||||
into eldritch knight, so we can focus on the "important" skills:
|
||||
|
||||
```
|
||||
Knowledge (Arcana)
|
||||
Knowledge (Dungeoneering)
|
||||
Knowledge (Nature)
|
||||
Knowledge (Planes)
|
||||
Knowledge (Religion)
|
||||
Perception
|
||||
Sense Motive
|
||||
Spellcraft
|
||||
Survival
|
||||
```
|
||||
|
||||
I also like to drop a single point in `Climb`, `Swim`, `Ride`, and `Fly`, if I
|
||||
can afford to. Getting the trained bonus, combined with our generally good
|
||||
strength and dexterity, means we can accomplish the basics. As a wizard, we can
|
||||
further supplement these with spells. Unfortunately, we do not get perception as
|
||||
a class skill, and so using a trait for that would make sense.
|
||||
|
||||
## Feats
|
||||
|
||||
It is very easy to get lost in feats. Like most aspects of Pathfinder, there are
|
||||
an excess of options. To narrow down my focus, I tried to consider what the
|
||||
character's options were: warrior focused on melee combat; wizard focused on
|
||||
buffing and crowd control. Being in melee means I'll be wearing armor, and that
|
||||
brings the `Arcane Armor Training` feats into relevance. There's also the
|
||||
`Arcane Strike` feat, which is perfect for arcane gish builds. Initiative is the
|
||||
king of combat, and as a wizard I'll want to try going first as often as
|
||||
possible. I also don't have the most hit points, due to those 5 levels of
|
||||
wizard. `Improved Initiative` and `Toughness` make sense. Considering the
|
||||
possibility of being in combat when buffing, `Combat Casting` makes sense. I'll
|
||||
probably focus on a specific weapon, so `Weapon Focus` makes sense, and as a
|
||||
fighter/eldritch knight, those levels will stack for feat requirements. That
|
||||
means, `Weapon Specialization` is a possibility in the future.
|
||||
|
||||
While I'm sure there are some crazy feats in other books, all these feats come
|
||||
from the Core Rulebook. That excites me for some reason. Thus far, the only
|
||||
non-core rulebook thing we've done is traits, and for this build we can live
|
||||
without those if absolutely necessary. Again, this limit isn't necessary, but it
|
||||
was something I wanted to adhere to for this build.
|
||||
|
||||
The number of feats laid out above is very quickly growing. Conveniently, I'm
|
||||
entering the game with 3: one for level 1, a bonus for human, and a bonus for
|
||||
fighter. That's `Improved Initiative`, `Toughness`, and `Weapon Focus`. Any
|
||||
two-handed weapon will do, though I'm partial to the good ol' greatsword. Using
|
||||
a sword-and-board will severely restrict my casting abilities, because both
|
||||
hands will be full.
|
||||
|
||||
```
|
||||
Improved Initiative (Level 1)
|
||||
Toughness (Human bonus feat level 1)
|
||||
Weapon Focus (Greatsword) (Fighter level 1 bonus combat feat)
|
||||
Scribe Scroll (Wizard level 1 bonus feat)
|
||||
Combat Casting (Level 3)
|
||||
Arcane Strike (Level 5)
|
||||
Craft Wonderous Items (Wizard level 5 bonus feat; debatable)
|
||||
Arcane Armor Training (Eldritch Knight bonus combat feat)
|
||||
Power Attack (Level 7)
|
||||
```
|
||||
|
||||
The wizard gets a bonus feat at level 5, which is limited to an arcane crafting
|
||||
feat, a metamagic feat, Spell Mastery, or an arcane discovery. I opted for
|
||||
`Craft Wonderous Items` because I like the options it opens up. There are some
|
||||
good metamagic options I considered though: `Extend Spell` makes sense for
|
||||
buffing; `Still Spell` makes sense since we're in armor; `Toppling Spell` can
|
||||
give Magic Missile and other force damage spells some crowd-control. Since
|
||||
evocation is one of my opposed schools, though, it wouldn't work for me.
|
||||
|
||||
Wizards at first level also get `Scribe Scroll` as a bonus feat. Scrolls are
|
||||
great for situational spells.
|
||||
|
||||
## Gear
|
||||
|
||||
There's only one piece of gear that is unusual here, and it's the armor. Kikko
|
||||
armor is from Ultimate Equipment, and specifically is a type of eastern setting
|
||||
armor. It provides a +5 armor bonus, allows for a dexterity bonus of +4, incurs
|
||||
a -3 armor check penalty, and has 20% arcane spell failure. However, it is
|
||||
primarily made of metal, and thus can be made from mithral. A mithral suit of
|
||||
kikko armor provides +5 armor bonus, allows for a dexterity bonus of 6, incurs
|
||||
no armor check penalty, and has a 10% arcane spell failure. Those numbers are
|
||||
fantastic. No armor check penalty is great for the odd `Climb` or `Swim` check,
|
||||
and for when I can `Fly`. The 10% arcane spell failure chance is lowered to 0%
|
||||
by `Arcane Armor Training`, allowing me to safely cast in armor when I so
|
||||
choose. If limited to the core rule book, the next best bet will be either a
|
||||
breastplate, or hide armor.
|
||||
|
||||
As for the weapon, I went with a greatsword. You could go with a falchion, and
|
||||
"crit-fish," but I'd rather have the raw damage. Numbered enchantment bonuses
|
||||
are good, but there is one specific enchantment I would highly suggest: called.
|
||||
A called weapon can be teleported to the wielder's hand as a swift action.
|
||||
Considering our greatsword is our arcane focus, we'll want that in our
|
||||
possession at all times, and this greatly increases the chances of that. Keen
|
||||
wouldn't be too bad; increasing the critical threat range to 17-20. Spell
|
||||
storing obviously makes a lot of sense, too.
|
||||
|
||||
I'm a spell caster, so I picked up a few `Pearls of Power`, a few wands (`Cure
|
||||
Light Wounds`, `Protection from Evil`, and `Expeditious Retreat`), and a bunch
|
||||
of potions of `Lead Blades`. The reason for the potions and not scrolls or a
|
||||
wand is to avoid `Use Magic Device` checks.
|
||||
|
||||
I have a collection of mundane items, including things like a bedroll, rope,
|
||||
sewing needles, chalk, and a handful of alchemical items, that I like to carry
|
||||
in a `Handy Haversack`.
|
||||
|
||||
Beyond all this, I went with the remainder of the "Big 6": a `Cloak of
|
||||
Resistance`, a `Ring of Protection`, a `Headband of Intellect`, and a `Belt of
|
||||
Strength`.
|
||||
|
||||
With any left over funds, investing in additional spells known, scrolls, copies
|
||||
of your spellbook, and cheaper wonderous items is always nice.
|
||||
|
||||
## Spells
|
||||
|
||||
I'm a wizard (Harry), with the most versatile spell list in the game, and a book
|
||||
(or books) that can get them all! Aside from the opposed school (but even then,
|
||||
there are some worth getting, such as `False Life`), I went for every spell that
|
||||
I even remotely thought I would use. On my sheet, that's 62 spells across levels
|
||||
1 to 3. I won't mark them all here, but there are some which I wouldn't want to
|
||||
be without.
|
||||
|
||||
```
|
||||
Level 1
|
||||
- Comprehend Languages (also a great scroll)
|
||||
- Enlarge Person
|
||||
- Magic Missile (despite being opposed, a solid fall-back)
|
||||
- Mount
|
||||
- Protection from Alignment (generally, evil and chaos make the most sense)
|
||||
- Shield
|
||||
- Vanish
|
||||
|
||||
Level 2
|
||||
- False Life
|
||||
- Glitterdust
|
||||
- Invisibility
|
||||
- Mirror Image
|
||||
- Resist Energy
|
||||
- Rope Trick
|
||||
|
||||
Level 3
|
||||
- Ablative Barrier
|
||||
- Fly
|
||||
- Haste
|
||||
- Phantom Steed
|
||||
- Sleet Storm
|
||||
- Versatile Weapon
|
||||
```
|
||||
|
||||
At character level 9, we get access to 4th level wizard spells. Some spells on
|
||||
my wishlist include great crowd-control like `Acid Pit` and `Black Tentacles`;
|
||||
self-buffs like `Stoneskin` and `Greater Invisibility`; and utility like
|
||||
`Dimension Door`, `Stone Shape`, and even `Wall of Fire` or `Wall of Ice`,
|
||||
despite them being from an opposed school.
|
||||
|
||||
Also, as a wizard I got `Scribe Scroll` at first level. Many spells in my
|
||||
spellbook are almost only there so I can make scrolls of them. Examples include
|
||||
`Identify`, the various ability enhancements (`Cats Grace`, etc..), and so on.
|
||||
|
||||
## Gameplay
|
||||
|
||||
I've actually played this build 3 times. The first time, as the human shown
|
||||
here. The second time, as this build but with the zombie lord template added.
|
||||
And a third time, but with the skeleton champion template added. Needless to
|
||||
say, those templates make this build _incredibly powerful_. However, I made some
|
||||
poor play decisions, thinking I was a bit more resistant that I actually was,
|
||||
and so all of these characters died rather unfortunate and avoidable deaths.
|
||||
|
||||
What I've learned through all three characters is to be patient! This build is
|
||||
very capable, with many options. It can wade into combat and deal some
|
||||
significant damage, even before buffs. Out of combat, it has the flexibility
|
||||
that a well-filled spell book can provide, and a good coverage of knowledge
|
||||
skills.
|
||||
|
||||
When engaging in combat, I always try to make sure I have the following
|
||||
self-buffs up, or ready to be up:
|
||||
|
||||
- `Protection from Alignment`
|
||||
- `Shield`
|
||||
- `Resist Energy`
|
||||
- `Mirror Image`
|
||||
- `Ablative Barrier`
|
||||
|
||||
For damage, there's a ranger spell called `Lead Blades` which is so good it
|
||||
should almost be considered essential. `Versatile Weapon` can help with damage
|
||||
resistance which is overcome with special materials.
|
||||
|
||||
As for party buffs, few options beat `Haste`.
|
||||
|
||||
For crowd-control, I'll tend towards a `Glitterdust`, `Pyrotechnics`, or `Sleet
|
||||
Storm`.
|
||||
|
||||
In combat, get buffed to a point you feel capable. This may take 2 or 3 rounds.
|
||||
That's OK! You're the second line. Use your swift action for `Arcane Armor
|
||||
Training`, buff yourself, move in. Do that again, maybe moving in for a flank.
|
||||
Third round, swift action for `Arcane Strike`, and unload with a `Power Attack`
|
||||
greatsword swing! If you've got `Lead Blades` up, that's 3d6 + 6 (`Power
|
||||
Attack`) + 2 (`Arcane Strike`) + 1.5x strength bonus. Not bad! Unfortunately,
|
||||
Eldritch Knights lag behind for base-attack bonus, so at level 8 (which is the
|
||||
level for all my builds) it's only 1 attack a round. At level 9, you get two
|
||||
attacks a round. You can also fall back on a composite longbow, which you can
|
||||
also use `Arcane Strike` with for 1d8 + strength bonus + 2 (`Arcane Strike`),
|
||||
which isn't as impressive as that big sword, but can still contribute. And, if
|
||||
weapons won't due, you're a wizard! Keep your prepared spells flexible. `Scribe
|
||||
Scroll` allows you to have certain spells available at all times. `Craft
|
||||
Wonderous Items` can allow you to create plenty of gizmos and gadgets that give
|
||||
you once-per-day options. Crafting is powerful; use it!
|
||||
|
||||
I've always had fun with this build. I have, no joke, lost sleep just figuring
|
||||
out cool spells to add to the spell book, worthwhile scrolls, and just imagining
|
||||
scenarios. Despite the apparent short-comings, the Eldritch Knight can
|
||||
definitely hold it's own, though it does require a ramp-up time.
|
||||
|
||||
# Sources
|
||||
|
||||
* [Pathfinder SRD](https://www.d20pfsrd.com/)
|
||||
* [The Muscle Wizard Guide](https://docs.google.com/document/d/10x042PGSyqX4JqHbYFf7vDsK1NCnhBT2ck8i1eG6kpc/edit)
|
|
@ -1,82 +0,0 @@
|
|||
---
|
||||
tabtitle: "Character Write-up: Dabbledop Humblebumple"
|
||||
title: "Character Write-up: Dabbledop Humblebumple"
|
||||
topics: [gaming, writing]
|
||||
pub: "2020-10-23"
|
||||
short_desc: "The backstory of a Gnome cleric/wizard I played for a single
|
||||
session!"
|
||||
---
|
||||
|
||||
Gnomes are interesting. I can't help but play them as small frantic stressballs.
|
||||
Like hobbits from _Lord of the Rings_, dialed up to 11, minus the extra
|
||||
breakfasts, and plus ceaseless banter. Gnomes are fun. This write up was for a
|
||||
character for the same campaign as [Halvar](/2018/01/27/halvar.html), when he had
|
||||
to step away for a bit.
|
||||
|
||||
## Backstory
|
||||
|
||||
Nothing is more tiresome than midweek afternoon service. All the candles, and
|
||||
the verses, and the never-ending procession. Odin’s great and all, but I don’t
|
||||
think he cares about this. Of course, I mention that one time to the head priest
|
||||
and it’s latrine duty for the week! I guess now it doesn’t matter. All these
|
||||
acolyte duties were from many years ago. It was pure fate, the day my current
|
||||
teacher Maell’ezharon wandered into our village. He needed certain gemstones,
|
||||
which my family was renowned for, and which I was responsible for that day. I
|
||||
just happened to bring exactly the number he needed with me to the church that
|
||||
day. That’s a habit I have. The priests say I’m “blessed by foresight.”
|
||||
|
||||
Anyway, Maell’ezharon wanders in, and finds me, and I tell him I know he’s
|
||||
looking for these gemstones, and he’s a bit surprised, but mentions that he
|
||||
hadn’t had his serious anti-divination protections up, since he figured no one
|
||||
would care. I told him I didn’t know what that meant. The priest chimed in that
|
||||
I was blessed by foresight. Maell’ezharon said that was shit. I was blown away.
|
||||
The priest huffed and wandered off, and I just stared at this elf who seemed
|
||||
completely unphased by an ability the priests couldn’t stop fawning over me for.
|
||||
So I push him a bit on it, and he says that divination is mighty common, and
|
||||
that if I wanted to learn more he could teach me, and he’d be willing to give me
|
||||
a discount on his services if I gave him a discount on the gems!
|
||||
|
||||
And man temples are booooring! So yeah, I just packed up some stuff and told the
|
||||
priests I had to go because “foresight told me I had to!” and caught up with
|
||||
Maell’ezharon and off we went! I brought some extra gems, and a few extra
|
||||
sandwiches (which he seemed off-put by, which I account to his dainty elf ways,
|
||||
which meant more for me!).
|
||||
|
||||
For the most part, it was kind of boring - but not as boring as the temple!
|
||||
Nothing is as boring as that. Trust me. Just routine travel along “safe and
|
||||
well-known roads” (says Maell’ezharon) to “respectable and trustworthy
|
||||
merchants” (says Maell’ezharon) for “law-abiding and fair trade deals.” (says
|
||||
Maell’ezharon). I was a bit surprised to find myself still saying a prayer here
|
||||
and there but old habits die hard. The more we travelled, the more Maell’ezharon
|
||||
would teach me. First he helped me refine my portent abilities, and got me a
|
||||
spellbook, and let me copy some of his spells into it. Then, in each town we
|
||||
went to, we would combine our powers to get the best deals possible. I would
|
||||
call upon my divine powers to aid him, and he would wheel-and-deal his way
|
||||
through trade deals and contracts. He insisted, time and again, that we do
|
||||
things “legally and fair” (his words) which was fine by me.
|
||||
|
||||
Then, the event happened. And magic suddenly left, and Maell’ezharon… did not
|
||||
take that well. I should say, this was probably 5 or so years into his
|
||||
mentorship. He had taught me many things, and I was developing into “quite the
|
||||
capable wizard, if I do say so myself” (Maell’ezharon said that). We had
|
||||
travelled all over the place, and eventually Maell’ezharon decided he’d like to
|
||||
“invest in real estate since it’s like free money” so he bought a tower and did
|
||||
the whole typical wizard thing: magic plants, and a few animated objects as
|
||||
guards, and what not. I helped with that too, which was really fun. Anyway when
|
||||
the event happened, we were trading and suddenly I just felt this… emptiness.
|
||||
Like, a part of my body was suddenly missing. I looked at Maell’ezharon and he
|
||||
was pale as bone. He just stared at his hands, then looked at the merchant and
|
||||
told him he had to go, and he just left. He didn’t even get his things, he just
|
||||
stumbled out of the shop. I grabbed anything that was ours, and walked outside
|
||||
and saw him just standing there, waving his arms and trying to say the words,
|
||||
and his eyes were a bit crazy-like, and he was sweating. After about 20 minutes,
|
||||
he just sat down and stared. It took me almost 4 hours to finally get him up and
|
||||
to an inn. The next day we went back to the tower, and it was really quite a sad
|
||||
sight. The plants had all died (and not because I forgot to water them I always
|
||||
watered them I am responsible), the guards were piles of rubble. I helped him
|
||||
in, to his room, to his favorite chair, where he just slumped down and stared
|
||||
into the empty, cold fireplace. For a few weeks I tended to him, making sure he
|
||||
at least ate. And I kept up the place, cleaning as best I could. But after a
|
||||
while, I started worrying about my family, and so I hired a local farm boy to
|
||||
take care of Maell’ezharon while I was gone (feed him twice a day, make sure he
|
||||
uses the loo, and don’t let him hurt himself).
|
|
@ -1,241 +0,0 @@
|
|||
---
|
||||
tabtitle: "Oblivion on Linux Part 1, Tools"
|
||||
title: "Oblivion on Linux, with Mods! Part 1 - Tools"
|
||||
topics: [gaming]
|
||||
pub: "2021-11-28"
|
||||
short_desc: "The Elder Scrolls IV: Oblivion is one of my favorite games of
|
||||
all time. The vanilla game holds up, but mods take the game to an entirely
|
||||
new level. Getting it working on Linux requires a bit of configuration, bit
|
||||
is surprisingly accessible! This is part 1 of my journey."
|
||||
---
|
||||
|
||||
Oblivion holds a special place in my heart. I remember spending a summer in the
|
||||
town I went to college in, and playing Oblivion almost every day while listening
|
||||
to Dream Theater's _Systematic Chaos_. Back then, I wasn't aware of modding, so
|
||||
it was literally just vanilla Oblivion for hours upon hours. I also used
|
||||
Windows, so the game would run fine. Now, things have changed. The easier issue
|
||||
to deal with is playing Oblivion on Linux. Thanks to Valve, Oblivion runs
|
||||
excellent with Proton out of the box. The more challenging issue is mods, and
|
||||
that's what this write-up is all about!
|
||||
|
||||
|
||||
# Vanilla Oblivion
|
||||
|
||||
Starting from the beginning, Oblivion is available on many platforms, but my
|
||||
experiences here will assume the Steam installation. The primary difference will
|
||||
be with respect to how the tools used to mod Oblivion are run. I've got the
|
||||
Game of the Year edition, which is Steam ID `22330`.
|
||||
|
||||
|
||||
# Modding Tools
|
||||
|
||||
Much of modding Oblivion is done with the help of additional tools. A mod
|
||||
manager is used for installing and configuring the mods. There are several
|
||||
options for Oblivion, and the one I've been suggested and use is called `Wrye
|
||||
Bash`. Mod load order is also important, and the tool I'm using to help with
|
||||
that is `LOOT`. Finally, `TES4Edit`, `TES4LODGen` and `BethINI` each helps with
|
||||
performance and configuration.
|
||||
|
||||
I have the following directory structure setup for my mods:
|
||||
|
||||
```
|
||||
OblivionMods
|
||||
|- Archives
|
||||
|- Backups
|
||||
|- Tools
|
||||
|- WryeBash
|
||||
```
|
||||
|
||||
_Archives_ is where I store the actual archives of the mods I use. _Backups_ is
|
||||
where I store any relevant backups for my Oblivion game, such as saves or
|
||||
configuration files for the mods. _Tools_ is where I put the executables for all
|
||||
the tools I mentioned above. _WryeBash_ is used to store the unarchived mods
|
||||
(which it calls "projects") and mod data that `Wrye Bash` uses.
|
||||
|
||||
Because each of these tools is run using Proton, I also have a set of aliases
|
||||
configured. Similar aliases could be setup for using Wine instead. For each
|
||||
alias, modify the paths accordingly for your setup. I should also note that I'm
|
||||
running Oblivion using [Glorious Eggroll's
|
||||
Proton](https://github.com/GloriousEggroll/proton-ge-custom), version 6.16. I
|
||||
haven't experimented with different Proton versions to find the most performant
|
||||
version, but if I do in the future, I'll mention it.
|
||||
|
||||
## Wrye Bash
|
||||
|
||||
- [Project Link](https://github.com/wrye-bash/wrye-bash)
|
||||
- [Homepage](https://wrye-bash.github.io/)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/22368)
|
||||
|
||||
`Wrye Bash` is involved. I don't know how to use it fully. There are a few
|
||||
guides that helped me learn how to use it enough to get mods installed and
|
||||
configured though. The first, and very relevant, is at [Shrine of
|
||||
Kynareth](https://www.shrine-of-kynareth.de/wrye-bash-on-linux). I referenced
|
||||
this guide, and the
|
||||
[other](https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-1-installation-and-installers-tab)
|
||||
[written](https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-2-load-order-bashed-patch-and-savegame-profiles)
|
||||
[guides](https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-3-ini-edits-tools-and-tricks)
|
||||
to learn how Wrye Bash works and what to setup. I also learned some tricks from
|
||||
the [Oblivion Comprehensive Modding Guide by
|
||||
Dispensation](https://www.nexusmods.com/oblivion/mods/49898).
|
||||
|
||||
### Setup
|
||||
|
||||
The easiest option is to use the stand-alone executable from the GitHub releases
|
||||
page. Extract the archive, and then use Proton to run the executable in the
|
||||
_Mopy_ directory. This is the alias I use; replace paths accordingly:
|
||||
|
||||
```
|
||||
alias oblivion-wrye='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/Mopy/Wrye\ Bash.exe'
|
||||
```
|
||||
|
||||
Additionally, I copy the _Mopy/bash_default.ini_ file to _Mopy/bash.ini_ and set
|
||||
the `sOblivionMods` to "Z:\path\to\OblivionMods\WryeBash", `sBashModData` to
|
||||
"Z:\path\to\OblivionMods\WryeBash\Bash Mod Data", `sInstallersData` to
|
||||
"Z:\path\to\OblivionMods\WryeBash\Bash Installers", and `sOblivionPath` to
|
||||
"Z:\path\to\steam\steamapps\common\Oblivion". In Wine, `Z:` references your
|
||||
local file system. Theoretically, because Wine is awesome, you may be able to
|
||||
use Linux file system paths in the configuration, but I went with this.
|
||||
|
||||
### Usage
|
||||
|
||||
The guides above provide a very thorough explanation of use. Of note: `Wrye
|
||||
Bash` in Wine does not like drag-and-drop actions, so don't do them. I don't do
|
||||
anything special with my usage of `Wrye Bash`: run the alias, install mods from
|
||||
the Installers tab, enable or disable mods from the Mods tab. I generally don't
|
||||
do anything else.
|
||||
|
||||
## LOOT
|
||||
|
||||
- [Project Link](https://github.com/loot/loot)
|
||||
- [Homepage](https://loot.github.io/)
|
||||
|
||||
`LOOT` sets the proper load order for mods. There is a native Linux client, but
|
||||
I ran into [this issue](https://github.com/loot/loot/issues/1615) and decided to
|
||||
just use the Windows version. The GitHub releases page includes a 7z archive
|
||||
with a stand-alone executable, and that's what I used.
|
||||
|
||||
### Setup
|
||||
|
||||
Download the stand-alone executable, and extract it to _OblivionMods/Tools_.
|
||||
This is the alias I use; replace paths accordingly:
|
||||
|
||||
```
|
||||
alias oblivion-loot='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/LOOT/LOOT.exe'
|
||||
```
|
||||
|
||||
On first run, it should auto-detect the Oblivion installation and configure
|
||||
everything accordingly. If it doesn't, there are instructions on the Homepage
|
||||
for configuration.
|
||||
|
||||
### Usage
|
||||
|
||||
`LOOT` is pretty straight forward. It references a master list of mods to
|
||||
determine the optimal load order for all installed mods. I ran into an issue
|
||||
where `LOOT` couldn't properly download the master list, and so as a work-around
|
||||
I manually downloaded the master list, and then configured `LOOT` to use that
|
||||
local file instead of the remote Git repository. Those instructions are covered
|
||||
[in the FAQ](https://loot.github.io/docs/help/LOOT-FAQs.html#git-errors). If
|
||||
everything works, and the list of mods is there, then you can run a sort, and
|
||||
apply the changes. `LOOT` will inform you of any "dirty" mods, which you can use
|
||||
the next tool the clear up. I ended up keeping `LOOT` open, while stepping
|
||||
through the cleaning procedure for each mod, until everything looked happy.
|
||||
|
||||
## TES4Edit
|
||||
|
||||
- [Project Link](https://github.com/TES5Edit/TES5Edit)
|
||||
- [Homepage](https://tes5edit.github.io/)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/11536)
|
||||
|
||||
`TES4Edit` is the Oblivion version of `xEdit`, which is an incredible tool. All
|
||||
I use it for is to clean dirty mods. `LOOT` provides a link to the [quick cleaning
|
||||
guide](https://tes5edit.github.io/docs/7-mod-cleaning-and-error-checking.html#ThreeEasyStepstocleanMods),
|
||||
which gives us exactly the steps required.
|
||||
|
||||
### Setup
|
||||
|
||||
Download the latest build from GitHub, and extract it to _OblivionMods/Tools_.
|
||||
This is the alias I use, which runs the "Quick Auto Clean" function; replace
|
||||
paths accordingly:
|
||||
|
||||
```
|
||||
alias oblivion-tes4edit-quick='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4EditQuickAutoClean.exe'
|
||||
```
|
||||
|
||||
TES4Edit is also useful for other, non-quick-clean functionality, so I have this
|
||||
alias for that:
|
||||
|
||||
```
|
||||
alias oblivion-tes4edit='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4Edit.exe'
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
Run the quick-clean alias, select the problematic file, and click "OK". Only one
|
||||
file can be cleaned at a time.
|
||||
|
||||
## TES4LODGen
|
||||
|
||||
- [Project Link](https://github.com/TES5Edit/xLODGen)
|
||||
- [Homepage](https://tes5edit.github.io/docs/16-xLODGen.html)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/15781?tab=description)
|
||||
|
||||
`TES4LODGen` will generate the relevant LOD files ahead of time. Apparently it
|
||||
helps with performance in-game, but may result in slower initial load times when
|
||||
starting the game.
|
||||
|
||||
### Setup
|
||||
|
||||
I downloaded the files from Nexus, and extracted the archive to
|
||||
_OblivionMods/Tools/TES4LODGen_. Here's the alias; replace paths accordingly:
|
||||
|
||||
```
|
||||
alias oblivion-tes4lodgen='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/TES4LODGen/TES4LODGen.exe'
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
Run the alias. The program should auto-find everything, do some magic, and will
|
||||
eventually report that it has finished. At that point, you can close the
|
||||
application.
|
||||
|
||||
## BethINI
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/46440)
|
||||
|
||||
`BethINI` helps manage the "oblivion.ini" file, providing sane options and a
|
||||
wizard for configuration. While not required, it does help with optimizations.
|
||||
|
||||
### Setup
|
||||
|
||||
I downloaded the files from Nexus, and extracted the archive to
|
||||
_OblivionMods/Tools/Bethini_. If you use AutoHotKey apparently you can use that
|
||||
to run it, but that doesn't make sense to me, so I went with the stand-alone
|
||||
executable. Here's the alias; replace paths accordingly:
|
||||
|
||||
```
|
||||
alias oblivion-bethini='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
|
||||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
|
||||
/path/to/proton/proton run /path/to/OblivionMods/Tools/BethINI/BethINI.exe'
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
Just like the rest, run the alias and answer the questions. `BethINI` will make
|
||||
backups of the modified INI files before over-writing them.
|
||||
|
||||
|
||||
# Next Steps
|
||||
|
||||
Once all the tools are assembled, and usable, the next step is mods! In my next
|
||||
post, I'll cover some of my favorite mods. The third part will then be a
|
||||
complete walk-thru of my installation of my full mod list.
|
|
@ -1,160 +0,0 @@
|
|||
---
|
||||
tabtitle: "Oblivion on Linux Part 2, Mods"
|
||||
title: "Oblivion on Linux, with Mods! Part 2 - Mods"
|
||||
topics: [gaming]
|
||||
pub: "2021-12-09"
|
||||
short_desc: "The Elder Scrolls IV: Oblivion still has one of the more
|
||||
active modding communities. In this, part 2 of my journey to get Oblivion
|
||||
modded and running on Linux, I'll cover some of my favorite mods."
|
||||
---
|
||||
|
||||
Every player's mod list is different. Some will focus on visuals, making the
|
||||
game as graphically impressive and pretty as possible. Others care primarily
|
||||
about additional content. I tend towards the later, with a preference for
|
||||
additional survival or realism mods. I recommend starting with the "Core Mods"
|
||||
section in the [Oblivion Comprehensive Modding Guide by
|
||||
Dispensation](https://www.nexusmods.com/oblivion/mods/49898) which will cover
|
||||
some essential performance and enhancement mods.
|
||||
|
||||
Below are some specific mods I would like to highlight, and which I enjoy.
|
||||
|
||||
|
||||
## Survival Related
|
||||
|
||||
### Basic Primary Needs & Personal Hygiene
|
||||
|
||||
- [Nexus Link - Basic Primary Needs](https://www.nexusmods.com/oblivion/mods/37088)
|
||||
- [Nexus Link - Basic Personal Hygiene](https://www.nexusmods.com/oblivion/mods/42038_)
|
||||
|
||||
These two mods cover most of the survival aspects of my mod pack. "Basic Primary
|
||||
Needs" adds hunger, thirst, and fatigue, while "Basic Personal Hygiene" adds
|
||||
cleanliness. Managing these will feel tedious to some, but I really like having
|
||||
to eat and drink, and visiting a bath house after a long time adventuring.
|
||||
|
||||
Each mod can make use of [additional HUD Status
|
||||
Bars](https://www.nexusmods.com/oblivion/mods/34905), which makes tracking the
|
||||
new needs much easier.
|
||||
|
||||
### Traveler's Tent
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/49654)
|
||||
|
||||
This mod adds a portable player home, and is supremely comfy. Because I avoid
|
||||
fast-travel, I wanted some sort of camping mod. I originally used [Maskar's
|
||||
Camping Mod](https://www.nexusmods.com/oblivion/mods/37197) before learning of
|
||||
this mod. By comparison, the tent in Traveler's Tent feels almost like cheating,
|
||||
but sometimes it's important to treat yourself.
|
||||
|
||||
|
||||
## World Enhancement
|
||||
|
||||
These I would consider my graphical improvements. I'm generally not too
|
||||
concerned with making the game look good, but I love making the game feel more
|
||||
realistic. These mods make Cyrodiil feel more alive.
|
||||
|
||||
### Better Cities
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/16513/)
|
||||
|
||||
This is a massive collection of city overhaul and enhancement mods. I was
|
||||
awe-struck when I walked around the Imperial City for the first time with this
|
||||
mod enabled. Bravil felt like a dangerous, crowded harbor town. Leyawin looks
|
||||
like an actual place people live. Though the improvements do come with FPS hits.
|
||||
Doubly-so if enabling the Open Cities option, which moves cities into the
|
||||
overworld space, instead of their own individual instances. It's a balancing
|
||||
act: the immersion of walking directly into a city sometimes isn't worth
|
||||
crashing to desktop when adventuring around cities.
|
||||
|
||||
### COBL
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/21104)
|
||||
|
||||
"Common Oblivion" enriches the world of Oblivion by adding lots of little
|
||||
things, and helping different mods "talk" to each other. I like to think of it
|
||||
as filling in a lot of the details that feel missing from vanilla Oblivion.
|
||||
|
||||
### Enhanced Economy
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/25078)
|
||||
- [Lubrons Patch](https://www.nexusmods.com/oblivion/mods/47184)
|
||||
|
||||
This mod and the corresponding patch make the economy of the world more dynamic.
|
||||
What I really like are the merchant quests that are added. Several merchants in
|
||||
each town will ask you to find an item in one of the nearby dungeons. It adds
|
||||
flavor to the game in just the right way.
|
||||
|
||||
Lubron's Patch for Enhanced Economy fixes some bugs and cleans up the code a
|
||||
bit.
|
||||
|
||||
### Lights of Oblivion - Road Lanterns
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/46131)
|
||||
|
||||
A very simple mod that I feel really enhances my travel around Cyrodiil. I avoid
|
||||
fast-traveling whenever possible, and walking lit roads at night feels comfy.
|
||||
I'm partial to the Imperial model.
|
||||
|
||||
### Natural Environments
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/2536)
|
||||
|
||||
Arguably the only graphical enhancement mod, Natural Environments provides
|
||||
options for modifying the weather, water, and vegetation around Cyrodiil. The
|
||||
weather and vegetation enhancements especially stand out. Overall the mods
|
||||
don't cause me much performance impact, if any.
|
||||
|
||||
### Cyrodiil Travel Services
|
||||
|
||||
- [AFK Mods Link](https://www.afkmods.com/index.php?/files/file/263-cyrodiil-travel-services/)
|
||||
|
||||
I really enjoyed that in Skyrim there was a dude with a wagon you could pay to
|
||||
travel to the various cities. This mod adds similar functionality, and then
|
||||
some. Useful when playing the game without fast-travel enabled.
|
||||
|
||||
|
||||
## Overhauls
|
||||
|
||||
Arguably, these are the heavy hitters. These mods will alter the mechanics of
|
||||
the game, often making things more challenging but also more rewarding.
|
||||
|
||||
### Maskar's Oblivion Overhaul
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/42780)
|
||||
|
||||
Maskar's Overhaul is a massive endeavor. It "[improves] many aspects of the
|
||||
game, while maintaining the overall feel of the game and ensuring compatibility
|
||||
with most other mods." I think it does so with great success! However, be
|
||||
forewarned, that this overhaul makes the game more challenging.
|
||||
|
||||
There is too much to cover about Maskar's in this post, but I highly recommend
|
||||
it. It comes with a PDF instruction manual, which is 61 pages long.
|
||||
|
||||
### Vanilla Combat Enhanced
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/45314)
|
||||
|
||||
As the name implies, this overhaul adjusts but does not change the vanilla
|
||||
combat experience. Whereas other mods add new moves or fatigue systems, this mod
|
||||
updates the vanilla combat experience to be more challenging and fair. It works
|
||||
with Maskar's after a small modification, which will be covered in the next
|
||||
part. This is one of the mods that I haven't played with for too long, and
|
||||
there are definitely some additional or alternative combat mods I'm considering.
|
||||
Namely, [Dynamic Oblivion Combat](https://www.nexusmods.com/oblivion/mods/49873)
|
||||
and [Combat Additions](https://www.nexusmods.com/oblivion/mods/49939).
|
||||
|
||||
### Supreme Magicka
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/12466)
|
||||
|
||||
Rounding out the trio is a magic overhaul. Supreme Magicka approaches magic in
|
||||
Oblivion in a similar way to Vanilla Combat Enhanced with combat: it seeks to
|
||||
improve and expand, without replacing. To continue similarities, this mod is one
|
||||
I haven't sank my teeth into as much. The characters I've been playing most
|
||||
recently haven't achieved very powerful magical capabilities yet. An alternative
|
||||
to this mod is [Av Latta
|
||||
Magicka](https://www.nexusmods.com/oblivion/mods/49096).
|
||||
|
||||
## Next Steps
|
||||
|
||||
In the last part of this series, I want to walk through a complete install of
|
||||
Oblivion from scratch.
|
|
@ -1,149 +0,0 @@
|
|||
---
|
||||
tabtitle: "Syncthing on the Steam Deck"
|
||||
title: "Setting up Syncthing on the Steam Deck (Updated!)"
|
||||
topics: [gaming, technology]
|
||||
pub: "2022-07-12"
|
||||
short_desc: "Syncthing is an incredible tool that I use to keep pictures,
|
||||
music, notes, and games synchronized across multiple platforms. The form
|
||||
factor of the Steam Deck makes it a perfect emulation target, and Syncthing
|
||||
can help keep games and saves in-sync with other machines."
|
||||
---
|
||||
|
||||
# Syncthing on the Steam Deck (Updated!)
|
||||
|
||||
## Update
|
||||
|
||||
Turns out, when you update the SteamOS, it completely over-writes the operating
|
||||
system. All of the setup I had originally written was great, if I never update,
|
||||
which is unacceptable. Not all is lost; the quest simply gets harder. If I can't
|
||||
rely on system-wide services, then I rely on user services.
|
||||
|
||||
### The Wrong Way: System-Wide Services
|
||||
|
||||
My first attempt was to setup Syncthing as a system-wide service managed by
|
||||
`systemd`, installed via `pacman`. There are several problems with this. First,
|
||||
it requires disabling the read-only file-system. Next, `pacman` is not setup nor
|
||||
reliable, since every SteamOS update will over-write any changes I make to any
|
||||
of the read-only file-system, including the directories that `pacman` relies on.
|
||||
Related, the update will also erase the Syncthing package. This means I either
|
||||
never update (inadvisable, and unacceptable), or I setup Syncthing not in the
|
||||
read-only file-system.
|
||||
|
||||
### The Right Way: User Services
|
||||
|
||||
systemd allows for non-root-based services, called user services. The Arch Wiki
|
||||
[systemd/User](https://wiki.archlinux.org/title/Systemd/User) article describes
|
||||
this functionality much more than I will. Here are the relevant details:
|
||||
|
||||
- User services can be enabled to start when a user logs in
|
||||
- Service files are stored in the user's home directory (specifically
|
||||
`~/.config/systemd/user`)
|
||||
- No root privileges are required. No modifying the read-only file-system
|
||||
|
||||
## Syncthing
|
||||
|
||||
Syncthing is incredible. I've [written about it
|
||||
before](2020/07/19/syncthing-part-1.html), but the setup here is a bit more
|
||||
involved. The Steam Deck runs Arch Linux (and have I told you yet today that I
|
||||
do too?), so the Arch Wiki [article on
|
||||
Syncthing](https://wiki.archlinux.org/title/Syncthing) gives some good insight.
|
||||
When I initially started this process, I installed the SyncthingGTK application
|
||||
from the Discover Store. This means it is a Flatpak application, and so doesn't
|
||||
require elevated user privileges. I also tried the Syncthingy application, which
|
||||
explicitly calls out Steam Deck users. However, both require running the Flatpak
|
||||
in the background (like some users do for Discord or Spotify). I don't like
|
||||
this, it feels off, and thus I sought a different approach.
|
||||
|
||||
## SSHD: Still Incredibly Useful
|
||||
|
||||
I got real tired real quick of using the on-screen keyboard. After
|
||||
complaining, a friend recommended I enable `sshd` and just remote in to the
|
||||
device. Doing so was a breeze, and I recommend to others who don't have a
|
||||
physical keyboard they can plug into their device. Drop to desktop mode
|
||||
(hold the power button for a few seconds, and select the option), and start a
|
||||
terminal (default is Konsole). Before remotely accessing the device, or using
|
||||
elevated privileges via `sudo`, I need to set a password for the default user,
|
||||
_deck_. In the terminal, type `passwd` and set it (and then put it in your
|
||||
password vault so you don't forget. You _do_ have a password vault, right?).
|
||||
Start the service, `sudo systemctl start sshd`, and optionally enable it to have
|
||||
`sshd` automatically started on each boot (`sudo systemctl enable sshd`). Get
|
||||
the device IP with `ip addr list`, from my desktop run `ssh deck@ip-address`,
|
||||
type in the password, and now I'm a grade-A Hackermans.
|
||||
|
||||
This setting is not reset on SteamOS updates, that I can tell. Once enabled,
|
||||
this will always start at boot, and always be on until explicitly turned off. Be
|
||||
mindful of that if you decide to wander away from your home network; maybe turn
|
||||
it off in public if you don't need it.
|
||||
|
||||
## Setup
|
||||
|
||||
There are 2 things required: a systemd service file, and the `syncthing`
|
||||
binary. Syncthing is written in Go, and a compiled binary can be downloaded that
|
||||
has no dependencies or installation requirements. It can be downloaded from
|
||||
the [Syncthing
|
||||
Releases](https://github.com/syncthing/syncthing/releases/tag/v1.20.3) page for
|
||||
many platforms and architectures. The Steam Deck is a Linux platform, using the
|
||||
AMD64 architecture (or x86_64), so I grab that one. I'll note here, since I have
|
||||
SSH access, I do all the editing and downloading on my desktop, and then
|
||||
transfer the files using `scp` to the Deck. All of these steps can be done on
|
||||
the Deck itself, without SSH access. Once the proper tarball has been
|
||||
downloaded, extract it, and within will be the `syncthing` binary, ready to
|
||||
rock. I copy/move the binary to `~/.local/bin/syncthing` on the Deck. The exact
|
||||
location is less important than ensuring the binary is within my home directory
|
||||
on the Deck.
|
||||
|
||||
The systemd serivce file can also be taken from the extracted tarball, but
|
||||
requires modification. In the tarball, it is
|
||||
`etc/linux-systemd/user/syncthing.service`. Copy this file to
|
||||
`~/.config/systemd/user` on the Deck, and edit the "ExecStart" line in the
|
||||
"[Service]" section from
|
||||
|
||||
```
|
||||
...
|
||||
[Service]
|
||||
ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
|
||||
...
|
||||
```
|
||||
|
||||
to
|
||||
|
||||
|
||||
```
|
||||
...
|
||||
[Service]
|
||||
ExecStart=/home/deck/.local/bin/syncthing serve --no-browser --no-restart --logflags=0
|
||||
...
|
||||
```
|
||||
(or wherever you decided to put the local `syncthing` binary)
|
||||
|
||||
With everything in place, I can now enable and start the Syncthing user service:
|
||||
|
||||
```
|
||||
systemctl --user enable syncthing.service
|
||||
systemctl --user start syncthing.service
|
||||
```
|
||||
|
||||
Since I don't have a physical keyboard plugged in, I modify my SSH command
|
||||
slightly to forward the Syncthing web-UI from the Deck to my local machine:
|
||||
|
||||
```
|
||||
ssh -L 31337:deck-ip-goes-here:8384 deck@deck-ip-goes-here
|
||||
```
|
||||
|
||||
Now, on my local machine I can open one tab to `localhost:8384`, to show
|
||||
Syncthing on my local machine, and another tab to `localhost:31337` to show
|
||||
Syncthing on my Deck. From here, I add my local machine as a device on my Deck,
|
||||
and begin sharing folders.
|
||||
|
||||
## Closing Thoughts
|
||||
|
||||
I've been using this setup for about a week now. I've synced almost 20GB of
|
||||
files, including configurations and saves for Retroarch. It works after
|
||||
restarts, OS and client upgrades, and waking the device from sleep. It sits
|
||||
quietly in the background, without having to start up applications. The biggest
|
||||
problem is that it doesn't automatically update to the newest version of
|
||||
Syncthing. It's also a bit involved to setup. To that end, I've written a tool
|
||||
to help with setup: [Steam Deck Syncthing
|
||||
Setup](https://codeberg.org/VagabondAzulien/steam-deck-syncthing). I'm still
|
||||
finishing it up, but I intend to make use of it to keep my version of Syncthing
|
||||
up-to-date. If you use it, let me know!
|
|
@ -1,140 +0,0 @@
|
|||
---
|
||||
tabtitle: "Funkwhale On Linode with Object Storage"
|
||||
title: "Funkwhale on Linode with Object Storage"
|
||||
topics: [technology]
|
||||
pub: "2022-09-27"
|
||||
short_desc: "Funkwhale is a cool project, building a federated music platform. I
|
||||
wanted to explore Funkwhale's ability to store music and associated files in
|
||||
object storage, and since I already use Linode for my VPS, leveraging their
|
||||
object storage offering makes a lot of sense."
|
||||
---
|
||||
|
||||
# Funkwhale on Linode with Object Storage
|
||||
|
||||
## Funkwhale Setup
|
||||
|
||||
[Funkwhale](https://funkwhale.audio/) is a decentralized music service,
|
||||
connecting to the [fediverse](https://en.wikipedia.org/wiki/Fediverse) using the
|
||||
ActivityPub protocol. It is a web-based application, allowing users to upload,
|
||||
listen, and share music and podcasts. I think it's a cool project, and I can
|
||||
self-host it, so I did. For a while, Funkwhale offered an all-in-one Docker
|
||||
container, but they shifted focus to a multi-container approach. I had delayed
|
||||
my transition from all-in-one to multi-container, but finally this past weekend
|
||||
I found myself with time and motivation to get it done. The installation of
|
||||
Funkwhale using Docker is very straight forward. The community has developed a
|
||||
series of templates that can be fetched, modified, and used to get started very
|
||||
quickly and easily. Those instructions are
|
||||
[here](https://docs.funkwhale.audio/installation/docker.html#multi-container-installation).
|
||||
The only significant modification I made was using `/opt/funkwhale` as my
|
||||
default data and media root. I keep all my Docker configuration in directories
|
||||
in my home directory as well. Much of these changes can be established in the
|
||||
`.env` file discussed in the installation instructions, but I also scrubbed the
|
||||
template files created and used during installation to make sure the directories
|
||||
were as I wanted them. I also proxy Funkwhale and many other services behind
|
||||
nginx, and there were a few [additional
|
||||
steps](https://docs.funkwhale.audio/installation/index.html#nginx) I had to
|
||||
take. With all that complete, I had transitioned successfully. I already had SSL
|
||||
certificates, but if that's also a requirement, they can easily be provisioned
|
||||
using [Certbot](https://certbot.eff.org/).
|
||||
|
||||
## Object Storage Setup
|
||||
|
||||
In my old setup, I leveraged Funkwhale's ability to [in-place import
|
||||
music](https://docs.funkwhale.audio/admin/importing-music.html). I transferred
|
||||
about 70GB worth of music to my VPS (using Syncthing <3), filling the disk
|
||||
almost entirely (_98%_). It was a temporary solution for a road trip, and I
|
||||
knew I couldn't keep it that way for long. Funkwhale has the ability to leverage
|
||||
S3-compatible object storage, and Linode, the provider I already use for my VPS,
|
||||
offers object storage. Any of the other major cloud providers will also do the
|
||||
trick; I just went with what was easiest. On the Linode side, there's not much
|
||||
to it. I created a new bucket, labeled it accordingly, created an access key,
|
||||
and that was it. The Funkwhale side proved to be a bit challenging, but not, it
|
||||
turns out, due to configuration. Well, _technically_ it was.
|
||||
|
||||
The relevant configuration options on the Funkwhale side, in the `.env` file:
|
||||
```
|
||||
## External storages configuration
|
||||
# Funkwhale can store uploaded files on Amazon S3 and S3-compatible storages (such as Minio)
|
||||
# Uncomment and fill the variables below
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_STORAGE_BUCKET_NAME=
|
||||
# An optional bucket subdirectory were you want to store the files. This is especially useful
|
||||
# if you plan to use share the bucket with other services
|
||||
# AWS_LOCATION=
|
||||
|
||||
# If you use a S3-compatible storage such as minio, set the following variable
|
||||
# the full URL to the storage server. Example:
|
||||
# AWS_S3_ENDPOINT_URL=https://minio.mydomain.com
|
||||
AWS_S3_ENDPOINT_URL=
|
||||
|
||||
# If you want to serve media directly from your S3 bucket rather than through a proxy,
|
||||
# set this to false
|
||||
# PROXY_MEDIA=false
|
||||
|
||||
# If you are using Amazon S3 to serve media directly, you will need to specify your region
|
||||
# name in order to access files. Example:
|
||||
# AWS_S3_REGION_NAME=eu-west-2
|
||||
# AWS_S3_REGION_NAME=
|
||||
|
||||
# If you are using Amazon S3, use this setting to configure how long generated URLs should stay
|
||||
# valid. The default value is 3600 (60 minutes). The maximum accepted value is 604800 (7 days)
|
||||
|
||||
# AWS_QUERYSTRING_EXPIRE=
|
||||
|
||||
# If you are using an S3-compatible object storage provider, and need to provide a default
|
||||
# ACL for object uploads that is different from the default applied by boto3, you may
|
||||
# override it here. Example:
|
||||
# AWS_DEFAULT_ACL=public-read
|
||||
# Available options can be found here: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl
|
||||
|
||||
AWS_DEFAULT_ACL=
|
||||
```
|
||||
|
||||
I've included the comments. The entire file is commented, and generally easy
|
||||
enough to figure out. On the Linode side, when I generated the access key, it
|
||||
provided me an _Access Key_ and a _Secret Key_. I had already created a bucket,
|
||||
and so I had the _Bucket Name_. The challenge for me was what the _Endpoint URL_
|
||||
was, and if I needed to set a _Region Name_ and _ACL_. Linode's documentation on
|
||||
their object storage offering is a bit anemic, and so I made use of their setup
|
||||
instructions for [using s3cmd with Linode object
|
||||
storage](https://www.linode.com/docs/products/storage/object-storage/guides/s3cmd/).
|
||||
From this guide, I was able to both setup `s3cmd`, and also determine what the
|
||||
_Endpoint URL_ would be. I also set the _Region Name_ and _ACL_ to match what
|
||||
the UI was showing, but I'm still not certain their necessary. Here's the trick,
|
||||
and the cause of a few hours-worth of confusion: restarting the Docker
|
||||
containers wasn't re-reading the `.env` file; I had to completely stop and
|
||||
re-create them. It wasn't until I ran `docker inspect funkwhale-docker_api_1`
|
||||
and noticed the environment variables weren't set that I figured this out. Could
|
||||
be this is common knowledge for Docker-gurus; now I know. With the
|
||||
configuration in place, and the containers recreated, I was able to upload files
|
||||
through Funkwhale, and watch them be stored in my Linode bucket. My final
|
||||
configuration options were as follows:
|
||||
|
||||
```
|
||||
AWS_ACCESS_KEY_ID=<stuff>
|
||||
AWS_SECRET_ACCESS_KEY=<secret stuff>
|
||||
AWS_STORAGE_BUCKET_NAME=funkwhale-music-bucket-name
|
||||
AWS_S3_ENDPOINT_URL=https://us-southeast-1.linodeobjects.com
|
||||
AWS_S3_REGION_NAME=us-southeast-1
|
||||
AWS_DEFAULT_ACL=public-read
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
The downside of Funkwhale's S3-compatible object storage integration lies in how
|
||||
files are uploaded. One cannot simply ~~walk into~~ upload files to the bucket;
|
||||
music must be uploaded through Funkwhale's API (via web or other means), and
|
||||
then Funkwhale stores it accordingly (like for local uploads). I have a lot of
|
||||
music, and I can't be asked to manually upload it all. That's, like, 2 hours of
|
||||
half-hearted work. No, instead, the obvious solution is to build a script that
|
||||
can automatically upload any new music from my local music directory to
|
||||
Funkwhale automatically. What I'm considering now is how I want to do that. I
|
||||
could leverage systemd to watch my local music directory, and run the upload
|
||||
script whenever new music is uploaded. Could even expand it to remove music
|
||||
whenever I delete it locally, though that seems a bit odd. I could instead setup
|
||||
a cron or systemd-timer to run at a set interval, and check for any new files
|
||||
since the last run, and upload them. Regardless of the trigger, the upload
|
||||
functionality should ideally avoid duplicates, run in a non-blocking fashion,
|
||||
maybe batch upload files, and be low impact on my desktop. So that's next.
|
|
@ -1,180 +0,0 @@
|
|||
---
|
||||
tabtitle: "Automatic Backups with RClone"
|
||||
title: "Automatic Backups with RClone, systemd, and Backblaze"
|
||||
topics: [technology]
|
||||
pub: "2023-05-07"
|
||||
short_desc: "RClone is a command-line utility for interacting with an
|
||||
incredible number of cloud services. Backblaze is a reliable and
|
||||
inexpensive cloud storage provider. With systemd timer units, I setup a
|
||||
simple and reliable backup solution."
|
||||
---
|
||||
|
||||
# Automatic Backups with RClone, systemd, and Backblaze
|
||||
|
||||
## Quick Note
|
||||
|
||||
Backups are not complicated. They may seem like it, but in reality the
|
||||
complications arise from restoration. If you're not doing anything fancy with
|
||||
your data now, then don't do anything fancy with your backups. Follow the 3-2-1
|
||||
methodology: 3 copies of (important) data, in 2 different locations, 1 of which
|
||||
is off-site. Many others have written about this in better detail than I ever
|
||||
can; Jeff Geerling has a great article and several videos about it [on his
|
||||
site](https://www.jeffgeerling.com/blog/2021/my-backup-plan). The time (and
|
||||
often money) investment now can reduce worry, stress, and loss should the data
|
||||
you care about ever become unusable.
|
||||
|
||||
(There are no affiliate links in this post, nor was I paid to recommend any
|
||||
product or service.)
|
||||
|
||||
# My Needs
|
||||
|
||||
Backups are as important as the data you have. If all you've got is a directory
|
||||
full of meme GIFs that you don't mind losing, then backups may be a waste of
|
||||
time and money. I have recently taken to buying as much of my music as possible
|
||||
(especially through Bandcamp, and especially on Bandcamp Fridays!). While much
|
||||
of the music I buy does exist on a remote server at a company somewhere, the
|
||||
cost of having to re-download and re-organize all of it well outweighs the cost
|
||||
of proper backups. Not to mention the music which I can't get anywhere else
|
||||
anymore. Nor to further mention the other data which I have. All of this is to
|
||||
say: backups are worth it to me.
|
||||
|
||||
Recently I wanted to setup NFS on my home network. I was concerned about messing
|
||||
something up, and erasing the directory I had intended to share, so I wanted to
|
||||
backup the data. For a while I've been intending to setup backups (as everyone
|
||||
probably does), but it was never a priority. This project helped to prioritze
|
||||
it. I had read about [RClone](https://rclone.org/), a command-line utility for
|
||||
interacting with an incredible number of cloud services. I messed around a bit
|
||||
with it, found it to my liking, and started shopping around for a cloud storage
|
||||
solution. Enter [Backblaze](https://www.backblaze.com/). The folks that publish
|
||||
all those hard-drive stats? Turns out they also run a business where they
|
||||
provide cloud storage. It's inexpensive, reliable, and straight-forward. The
|
||||
last step was to automate it with systemd timer units.
|
||||
|
||||
## Backblaze Setup
|
||||
|
||||
* [Backblaze Site](https://www.backblaze.com/)
|
||||
* [Backblaze Docs](https://www.backblaze.com/help.html)
|
||||
|
||||
First step is to setup Backblaze. Create an account, verify email address, all
|
||||
that jazz. I'd recommend enabling multi-factor authentication on the
|
||||
**Account** -> **My Settings** page, under **Security**. Next, click on the
|
||||
**Account** -> **Application Keys** page, and generate a new key. Fill in the
|
||||
blanks (I gave my key full access to all buckets), copy the important bits, and
|
||||
store them somewhere safe (like your password vault).
|
||||
|
||||
## RClone Setup
|
||||
|
||||
* [RClone Site](https://rclone.org/)
|
||||
* [RClone Backblaze B2 Page](https://rclone.org/b2/)
|
||||
|
||||
Download and install RClone. Next run `rclone config` and walk through the
|
||||
prompts. I'm using Backblaze, so I select "Backblaze B2" as my storage backend.
|
||||
Then I add the application key ID and application key secret (key) at the
|
||||
relevant prompts. For all of this configuration, I named the remote "backblaze",
|
||||
though a shorter name can make commands easier. Regardless, verify the
|
||||
configuration is setup properly by running `rclone lsd backblaze:`, which will
|
||||
list buckets. Unless a bucket was already configured, nothing will show up, and
|
||||
also there won't be any errors.
|
||||
|
||||
## Backup Configuration
|
||||
|
||||
Now, figure out how you want to backup your data. I have a [BTRFS RAID setup
|
||||
with multiple sub-volumes](/2020/06/14/setting-up-btrfs.html), each for a
|
||||
different data type: one for Books, one for Music, and so on. Since creating a
|
||||
bucket doesn't cost anything, I decided to split my backups similarly. I created
|
||||
the buckets I wanted, and did a "manual" RClone sync of the data.
|
||||
|
||||
`rclone sync --fast-list --transfers 20 /path/to/Books
|
||||
backblaze:bucket-for-Books-backups`
|
||||
|
||||
The "--fast-list" and "--transfers" options are specified on the [RClone
|
||||
Backblaze B2 page](https://rclone.org/b2/), along with some others that may be
|
||||
of interest.
|
||||
|
||||
At this point, my data was "backed-up", and I could muck about with it more
|
||||
confidently. Also, at this point, configuring back-ups is done. Run those RClone
|
||||
sync commands once a week, and all is set. I don't want to remember to do
|
||||
things, though.
|
||||
|
||||
## Automating the Process
|
||||
|
||||
The first thing to do is create a user-agnostic location for the configuration
|
||||
file and some additional files. I chose `/etc/rclone`, and copied the RClone
|
||||
configuration file generated previously to this directory as `backblaze.conf`.
|
||||
|
||||
Next, I created a filter file. RClone has extensive [filtering
|
||||
options](https://rclone.org/filtering/). For my current needs, a single file
|
||||
will suffice.
|
||||
|
||||
### default.filter
|
||||
```
|
||||
# Exclude BTRFS snapshot directories
|
||||
- .snapshots/**
|
||||
# Exclude Syncthing configuration directories
|
||||
- .stfolder/**
|
||||
```
|
||||
|
||||
systemd timer units ( [[Arch
|
||||
Wiki](https://wiki.archlinux.org/title/Systemd/Timers)]
|
||||
[[Manual](https://man.archlinux.org/man/systemd.timer.5)] ) are triggers that
|
||||
activate on a schedule. That schedule can be dynamic (relative to a
|
||||
previous/other trigger), or static (at 6:15 every day). A timer unit triggers a
|
||||
service unit, which does the work. For my backups, I decided to run a sync every
|
||||
hour, at sometime between the 15 and 45 minute mark of that hour. To simplify
|
||||
having multiple timer units that all do the same thing, I setup a template unit
|
||||
(see the **Note** here: [Arch
|
||||
Wiki](https://wiki.archlinux.org/title/Systemd#Using_units)).
|
||||
|
||||
### rclone-backup@.timer
|
||||
```
|
||||
[Unit]
|
||||
Description=RClone Backup Timer Template
|
||||
|
||||
[Timer]
|
||||
# Run every hour, sometime between the 15 minute and 45 minute mark
|
||||
OnCalendar=*-*-* *:15:00
|
||||
AccuracySec=30min
|
||||
RandomizedDelaySec=5min
|
||||
|
||||
# The %i is whatever value is after the "@" for the configured unit. For
|
||||
# example, rclone-backup@Books.timer will run the rclone-backup@Books.service
|
||||
Unit=rclone-backup@%i.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
|
||||
Then I can `enable` and `start` a timer for each directory to backup. To
|
||||
minimize configuration, I also setup the service file to be a template. This
|
||||
requires a bit of inflexible coordination: the directory name must match to a
|
||||
part of the bucket name.
|
||||
|
||||
### rclone-backup@.service
|
||||
```
|
||||
[Unit]
|
||||
Description=RClone Backup of %I
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone sync -v --config "/etc/rclone/backblaze.conf" --fast-list --transfers 20 --filter-from "/etc/rclone/default.filter" /path/to/%i/ backblaze:bucket-for-%i-backups
|
||||
```
|
||||
|
||||
The `--config` option allows us to specify the configuration in the `/etc`
|
||||
directory. I include `-v` to have some additional output in the journal.
|
||||
Again, `--fast-list` and `--transfers` are used to speed up the process and keep
|
||||
costs lower. Then I `--filter-from` the "default.filter" file.
|
||||
|
||||
Place each of these files (`rclone-backup@.timer` and `rclone-backup@.service`)
|
||||
into `/etc/systemd/system`. For each directory, enable and start the timer
|
||||
unit; `systemctl enable rclone-backup@Example.timer` and `systemctl start
|
||||
rclone-backup@Example.timer` will backup `/path/to/Example/` to the
|
||||
`bucket-for-Example-backups` bucket.
|
||||
|
||||
# Next Steps
|
||||
|
||||
I would like to get some sort of metrics and dashboards setup to track backup
|
||||
status and statistics. It could be very useful to be notified if a backup ever
|
||||
fails.
|
||||
|
||||
Eventually, I'll upload this to a repository somewhere for ease of access and
|
||||
backup. When I do, I'll update this post.
|
|
@ -1,82 +0,0 @@
|
|||
---
|
||||
tabtitle: "Life in Progress: August, 2024"
|
||||
title: "Life in Progress: August, 2024"
|
||||
topics: [life]
|
||||
pub: 2024-08-19
|
||||
short_desc: "Life In Progress update for August"
|
||||
---
|
||||
|
||||
# Life In Progress, as of {{ page.pub }}
|
||||
|
||||
- Learning [Stan Rogers'
|
||||
_Bluenose_](https://www.youtube.com/watch?v=LZVpvJsqTMM) on mandolin and voice
|
||||
- Building a few games in the [TIC-80 fantasy console](https://tic80.com)
|
||||
- Deploying my own ["Pages" server](https://codeberg.org/Codeberg/pages-server/)
|
||||
- Building a Forgejo Action for deploying game builds to Itch.io using
|
||||
[butler](https://itch.io/docs/butler/)
|
||||
- Building a custom WordPress Docker container that uses SQLite
|
||||
- Starting my own business
|
||||
|
||||
## Music
|
||||
|
||||
Adam and I continue our semi-weekly jam sessions! We've settled on [Stan Rogers'
|
||||
_Bluenose_](https://www.youtube.com/watch?v=LZVpvJsqTMM) for our first piece. I
|
||||
normally pick up lyrics pretty quick, but this song eludes me. We worked on the
|
||||
chord progression last week, and I've been actually practicing!
|
||||
|
||||
## Game Dev
|
||||
|
||||
Still having a blast with [TIC-80](https://tic80.com/). I made a small farming
|
||||
experiment game, to learn [Fennel](https://fennel-lang.org) some more and also
|
||||
nail-down some basic design principles. Some of the ideas in that experiment,
|
||||
namely generating the map with a loop and `mset` instead of using the built-in
|
||||
map designer, gave me some insight for solving my darkness troubles in
|
||||
Nightgolf. I'm still wrapping my head around it, but I think this will be a
|
||||
solution.
|
||||
|
||||
The farming experiment game lives on
|
||||
[Itch.io](https://vagabondazulien.itch.io/farm-experiment-1) and the [TIC-80
|
||||
Webzone](https://tic80.com/play?cart=3965).
|
||||
|
||||
## Tech Dev
|
||||
|
||||
[Forgejo](https://forgejo.org/) continues to be rewarding, and I'm looking
|
||||
forward to expanding my deployment of it by deploying my own ["Pages"
|
||||
server](https://codeberg.org/Codeberg/pages-server/). This will allow me to
|
||||
deploy my static sites on my own infrastructure. I'm also working on an "Action"
|
||||
for leveraging [butler](https://itch.io/docs/butler/) to publish games I publish
|
||||
the source code for from my Forge to Itch.io.
|
||||
|
||||
In preparation for both my own use, and my business use, I need to learn more
|
||||
about Nextcloud. I'm also working on building a custom WordPress Docker
|
||||
container that relies on SQLite instead of MySQL.
|
||||
|
||||
Hovering about all this is backups and monitoring, both of which I sprinkle into
|
||||
my learning voyage. I'm looking forward to writing up some documentation about
|
||||
my implementation.
|
||||
|
||||
## Entrepreneurship
|
||||
|
||||
I'm happy to report I was accepted into New York's Self-Employment Assistance
|
||||
Program, [SEAP](https://dol.ny.gov/SEAP). I will be starting a business offering
|
||||
managed online services, such as website design and deployment, personal cloud,
|
||||
and email. I would like to offer these services to local small businesses and
|
||||
not-for-profits. I think of it as "Silicon Valley experience" at reasonable,
|
||||
local prices. I'm excited to dive into the parts I'm not very familiar with,
|
||||
namely the business side of things. I have extensive technical experience and
|
||||
mastery, but I lack any significant business experience.
|
||||
|
||||
## Gaming
|
||||
|
||||
I've started a new playthrough of [Darkest
|
||||
Dungeon](https://en.wikipedia.org/wiki/Darkest_Dungeon). It's mildly
|
||||
frustrating, but mostly fun. I have fun yelling at the game; it's like stress
|
||||
relief. I've been generally successful, but the Crimson Court has been very
|
||||
rough to me. It is a game about challenges and loss, though, so nothing
|
||||
unexpected.
|
||||
|
||||
I've continued my play-through of
|
||||
[Sundered](https://en.wikipedia.org/wiki/Sundered), though have put it down for
|
||||
a bit. I'm playing it on my Steam Deck using [Lutris](https://lutris.net/), and
|
||||
it works very well. Lutris continues to impress me, and I want to try writing an
|
||||
installer for a game.
|
|
@ -1,106 +0,0 @@
|
|||
---
|
||||
tabtitle: "Life in Progress: September, 2024"
|
||||
title: "Life in Progress: September, 2024"
|
||||
topics: [life, gaming]
|
||||
pub: 2024-09-24
|
||||
short_desc: "Life In Progress update for September"
|
||||
---
|
||||
|
||||
# Life In Progress, as of {{ page.pub }}
|
||||
|
||||
- New hardware: laptop, phone, and NAS
|
||||
- **TWO** game jams!
|
||||
- Finishing up Morrowind
|
||||
- SEAP/Self-Employment Progress
|
||||
|
||||
## New Hardware
|
||||
|
||||
### Framework Laptop
|
||||
|
||||
This new [Framework](https://frame.work) is great! I've only had it for a few
|
||||
weeks, but it is wonderful. I've been slowly sync'ing and migrating workflows
|
||||
from my various existing options to it. Being able to work for multiple hours
|
||||
without worrying about battery life is nice.
|
||||
|
||||
Previously, the Chromebook I have was my go-to remote personal macine.
|
||||
Considering its age, and the inherent limitations of a Chromebook, it served me
|
||||
better than I ever could have hoped. However, I knew it's time was drawing
|
||||
near, and the Dell I got as part of my work severance was not going to cut it.
|
||||
Considering I'm starting a business doing technology, I needed a reliable,
|
||||
"all-day" machine with Linux. The ARM-based Macs are incredibly tempting, but
|
||||
I am not a fan of Mac. I've been eyeing Framework for a bit now, and their
|
||||
newest 13-inch model with AMD components checked enough of the boxen for me to
|
||||
dive in.
|
||||
|
||||
### Phone
|
||||
|
||||
For a while I've been eyeing Mint Mobile. In the US, they have a plan offering
|
||||
unlimited text and talk, plus 5 GB of data, for $15 per month. I generally use
|
||||
less than 1 GB of streaming data, so this seemed like a clearly better option
|
||||
than the $30+ I was paying for Google Fi. When I decided to switch, they had an
|
||||
incredible deal offering a Google Pixel 9 plus a year's service for a great
|
||||
price, so I not only switched carrier, I also snagged a new phone! I had a
|
||||
Samsung S21, which was more than sufficient for my needs, so switching isn't
|
||||
quite as significant as with the laptop, but it's still a nice new experience.
|
||||
The OS and environment on the Pixel is much nicer than Samsung phones, so
|
||||
that's quite the plus!
|
||||
|
||||
### NAS
|
||||
|
||||
I bought a 2-bay Synology NAS from a friend a few months ago, and with the
|
||||
myriad other changes, decided to set it up proper. I setup
|
||||
[Navidrome](https://www.navidrome.org/) for audio, and [Jellyfin](
|
||||
https://jellyfin.org/) for video. I had previously used Navidrome, then
|
||||
switched to Jellyfin for both audio and video, but with the new phone comes a
|
||||
return to form. I like [Ultrasonic](https://gitlab.com/ultrasonic/ultrasonic),
|
||||
and Navidrome plays nicely with it.
|
||||
|
||||
The other big additions with the NAS is more backup scripts, and also pulling
|
||||
down some YouTube series I like for local copies. More details in a full post.
|
||||
|
||||
## Game Making
|
||||
|
||||
Two game jams! One for the entire month of September, [Clone
|
||||
Jam](https://itch.io/jam/clone-jam-game-a-month), and a
|
||||
[Mini-Jam](https://itch.io/jam/mini-jam-167-cyber). For the Clone Jam, I was
|
||||
working on building a ray-casting-based dungeon scavenger, similar to "Legend
|
||||
of Grimrock", but with less combat. However, while I have made great progress
|
||||
understanding how ray-casting works, and how to implement it, I won't have time
|
||||
to finish such a game. That knowledge won't go to waste, though! There's a
|
||||
game-jam at the end of October where I intend to make use of it. Instead, I'll
|
||||
be touching-up and submitting a clone of Minesweeper I made:
|
||||
[TICsweeper](https://vagabondazulien.itch.io/ticsweeper).
|
||||
|
||||
For the Mini-Jam, I decided to make a "runner" type game: you maneuver your
|
||||
sprite to collect and/or avoid certain projectiles. I also made this game in
|
||||
the [TIC-80](https://tic80.com). While I didn't pull any all-nighters, focusing
|
||||
on a single project for 72-hours with as little down-time as possible is still
|
||||
quite exhausting! My submission was called
|
||||
[RUNR](https://vagabondazulien.itch.io/runr). It ranked 48th out of 66
|
||||
submissions, which is honestly disappointing, but not enough to demotivate me
|
||||
from continuing my game-making journey!
|
||||
|
||||
## Game Playing
|
||||
|
||||
I finally finished my play-through of Morrowind, and one of its two expansions,
|
||||
Tribunal. (Note: before "DLC", new game content for existing games was
|
||||
distributed like the game itself, on a piece of data-storing media, such as a
|
||||
CD. These were called "expansion packs.") I have thoroughly enjoyed my time in
|
||||
The Elder Scrolls III, and I definitely understand why many claim it as their
|
||||
favorite. I will talk more about my experience in a full post, just like I did
|
||||
for my recent Fallout 3 replay (I mean, just like I _will_. I _WILL!_)
|
||||
|
||||
## Business Time
|
||||
|
||||
Alas, while game making and playing are great uses of my time, they do not get
|
||||
me the resources I need to pay my bills. I continue to work on starting my own
|
||||
business. I've met with two mentors, one business and one technology, to help
|
||||
get me started and provide guidance. In fact, this week marks what I would
|
||||
consider the proper beginning of my business. With some dedication, I'll have
|
||||
more exciting news to share about this next time!
|
||||
|
||||
## That's All For Now!
|
||||
|
||||
I think the original intention of a "Now" page is to be less verbose, but I
|
||||
find the monthly cadence of a somewhat comprehensive update to be more
|
||||
appealing! Until next month!
|
|
@ -1,110 +0,0 @@
|
|||
---
|
||||
tabtitle: "Life in Progress: January, 2025"
|
||||
title: "Life in Progress: January, 2025"
|
||||
topics: [life]
|
||||
pub: 2025-01-03
|
||||
short_desc: "A retrospective of 2024, up to the beginning of 2025"
|
||||
---
|
||||
|
||||
# Life in Progress: January, 2025
|
||||
|
||||
My [now page](/now) is growing too verbose. Instead, I'll leave that page as a
|
||||
summary of what this/these page(s) will explore. I'll start with a retrospective
|
||||
of 2024, up to now, the beginning of 2025. Maybe a bit of ambitions too.
|
||||
|
||||
## 2024 Retrospective
|
||||
|
||||
2024 was a significant year. The most notable change being that I was laid off
|
||||
in April. The remaining 8 months were quite nice. Before April, the year doesn't
|
||||
feel much different or significant. From what I remember, I was stressed,
|
||||
unhappy, and overall dissatisfied with my situation. I was in the process of
|
||||
saving money to leave, when I was laid off and paid a generous (enough)
|
||||
severance. It's nice when the universe solves problems.
|
||||
|
||||
Much of April and May was time spent decompressing. A bit too much drinking,
|
||||
from what I recall. I began receiving unemployment payments, and looking for
|
||||
jobs, though only half-heartedly. I was already decided I would start my own
|
||||
business. I also started my playthrough of **Fallout 3**.
|
||||
|
||||
At the end of May, I entered into a game jam, and made my first video game,
|
||||
[L4-N-DER Training Simulator](https://vagabondazulien.itch.io/lander). One thing
|
||||
I do remember from the beginning of the year was speaking with some friends
|
||||
about trying to publish a video game on Itch. I made the game using
|
||||
[Fennel](https://fennel-lang.org/) and the [LÖVE 2D game
|
||||
engine](https://www.love2d.org/). It was incredibly rewarding, and a great
|
||||
learning experience. This game would be the first of 5 that I published on my
|
||||
Itch page this year.
|
||||
|
||||
Much of the summer was spent procrastinating starting my own business, and
|
||||
golfing. At the beginning of summer, in June, my grandmother passed away. She
|
||||
was about 2 weeks from her birthday, and so we round up and say she lived to 98.
|
||||
I spent some time helping to clean and clear up her house too. In the beginning
|
||||
of July I traveled to New York City to see Rezz. I also started properly
|
||||
exploring WordPress, and working to understand better the business I was still
|
||||
going to start. Around August, I began playing **Morrowind** for the first time.
|
||||
|
||||
In the fall is when I "got serious" about my business. I signed up for the New
|
||||
York State Self-Employment Assistance Program (SEAP), and through them signed up
|
||||
with SCORE to speak with a mentor and begin some small business training. I made
|
||||
my first WordPress site, for a relative (and for free). I also entered into 3
|
||||
more game jams during this period, publishing
|
||||
[TICSweeper](https://vagabondazulien.itch.io/ticsweeper) (a Minesweeper clone
|
||||
mde with the TIC-80); [RUNR](https://vagabondazulien.itch.io/runr) (another
|
||||
TIC-80 game); and [Escape The
|
||||
Crash](https://vagabondazulien.itch.io/escape-the-crash). _Escape_ was based on
|
||||
some work of mine over the summer to better understand and implement ray-casting
|
||||
in the TIC-80, which I then translated for use in Fennel and LÖVE. At the end of
|
||||
fall, my remaining grandmother severely injured herself, placing her in town
|
||||
through the end of the year. For the second year in a row, much of the holidays
|
||||
would be spent visiting a rehabilitation center (the same one as my first
|
||||
grandmother's). Since the pandemic, I don't think I've had a "normal" holiday
|
||||
season.
|
||||
|
||||
At the end of the year, I formally started my business, [Niblock Technology
|
||||
Solutions](https://www.niblock.tech), and began working on websites for two
|
||||
additional clients. Exploring this new world has been exciting, and there are a
|
||||
lot of new challenges. I love working with others to solve problems, and I'm
|
||||
looking forward to it. I'm also beginning work on a second business idea for a
|
||||
game shop. I want to build a community space for people to play games, enjoy
|
||||
company, and relax. Rounding the year out was my first playthrough of **Deus
|
||||
Ex**.
|
||||
|
||||
## Now: January, 2025
|
||||
|
||||
Now. Plenty of plans and ambitions.
|
||||
|
||||
Easiest: I started a playthrough of **Oblivion**. Similar to **Fallout 3** and
|
||||
**Morrowind**, my goal is to complete the main story and all DLC's. This time
|
||||
around, I explored a new modding setup, using [Lutris](https://lutris.net/) to
|
||||
install and manage the game (from GOG), and all the modding tools. For all three
|
||||
of these games I want to write up a brief retrospective about my experiences and
|
||||
any of the setup required for playing them on Linux. I already have two articles
|
||||
for Oblivion ([Part 1](/2021/11/20/oblivion-linux.html), [Part
|
||||
2](/2021/12/09/oblivion-linux-2.html)) detailing using Steam and Proton. I think
|
||||
the Lutris approach is a bit nicer.
|
||||
|
||||
_Escape The Crash_ was fun to make, but it's not done yet. I want to add in a
|
||||
floor, sound effects, a skybox, and objectives. And an actual ending condition.
|
||||
|
||||
Game-making in general I want to continue. I've started looking into the
|
||||
[DragonRuby game engine](https://dragonruby.org/). I also want to learn (more)
|
||||
Godot. I have no shortage of ideas, only my regular struggles with motivation
|
||||
and focus.
|
||||
|
||||
I've fallen into a few bad habits, and my health is worse for them. Its absurdly
|
||||
easy for me to put on weight, and equally as difficult to lose it again. At my
|
||||
heaviest I was over 320 pounds, and I'm now at a much better 240. I want to
|
||||
bring that number down to 200, but I also want to remove as much significance
|
||||
from that number as I can. It should be a metric, not a grade.
|
||||
|
||||
I've also set for myself several music goals. I want to get better at
|
||||
sight-reading, and so I have a goal to read a new piece of music each week. I
|
||||
also want to explore music production, and try making my own 45-60 minute mix.
|
||||
|
||||
There are the business goals. I need to have an income that supports my
|
||||
lifestyle, which means more clients and (hopefully) more businesses!
|
||||
|
||||
Finally, I want to write more. I think about writing, but rarely follow-through.
|
||||
As all my other ambitions develop, sharing them with the world will help me
|
||||
formally catalog my successes. Plus, if I have something useful and helpful to
|
||||
share, then I want to!
|
|
@ -1,307 +0,0 @@
|
|||
---
|
||||
tabtitle: "Oblivion on Linux: Lutris Edition"
|
||||
title: "Oblivion on Linux: Lutris Edition"
|
||||
topics: [gaming]
|
||||
pub: 2025-01-09
|
||||
short_desc: "Modding Oblivion on Linux using Lutris and Wine, without Steam."
|
||||
---
|
||||
|
||||
# Oblivion on Linux: Lutris Edition
|
||||
|
||||
I love Oblivion. I've written before about setting up Oblivion on Linux using
|
||||
the Steam version, Proton and a handful of aliases: [Part
|
||||
1](/2021/11/20/oblivion-linux.html) covers most of the tooling setup, and [Part
|
||||
2](/2021/12/09/oblivion-linux-2.html) covers some mods I liked. This setup
|
||||
works, though it is a bit of a hassle to manage. It requires running the tools
|
||||
individually through aliases from a terminal, which can be intimidating and
|
||||
unfriendly. It also requires the Steam version of Oblivion.
|
||||
|
||||
When I recently decided to return to Cyrodiil and close some gates, I wanted to
|
||||
review my setup, and also my mod list. I discovered that Wrye Bash now does have
|
||||
a native Linux application (as does LOOT!). However, I opted to stick with using
|
||||
Wine and Windows versions of these applications due to a complication of modding
|
||||
Oblivion in general: the case-sensitive nature of the filesystem. On Linux, the
|
||||
filesystem is case-sensitive; on Windows, the filesystem is **not**
|
||||
case-sensitive. For modding, this means if you extract an archive with a
|
||||
`Data/meshes` folder, but your current setup has a `Data/Meshes` directory, on
|
||||
Linux you'll end up with two directories: `Data/Meshes` _and_ `Data/meshes`.
|
||||
There are solutions to this problem on Linux, namely using an EXT-4 filesystem.
|
||||
I don't feel like reformatting my disks, and so I'll let Wine handle it. It may
|
||||
mean a slight performance hit, but it's Oblivion - there are **always**
|
||||
performance hits. If there aren't performance hits, then you haven't modded the
|
||||
game enough yet.
|
||||
|
||||
## Setup: Game
|
||||
|
||||
I'll be using [Lutris](https://lutris.net) to handle installing and launching
|
||||
the game. No more terminal aliases! I'm also using the [GOG version of
|
||||
Oblivion](https://www.gog.com/en/game/elder_scrolls_iv_oblivion_game_of_the_year_edition_deluxe_the).
|
||||
Lutris allows you to link your GOG account, and easily install games using Wine
|
||||
(or native versions, if available!). In Lutris, I install the game to my
|
||||
preferred destination, using the default GOG Wine install script. After
|
||||
installation, I launch the game once to generate some initial configuration
|
||||
files, and verify things work as expected. Before the next steps, there is a
|
||||
significant change: the Wine version. In order to use the latest version of Wrye
|
||||
Bash through Lutris, I had to change the Wine version from my Lutris default,
|
||||
_wine-ge-8-26_, to my latest system version, 9.22. There seems to be a Windows
|
||||
API which Wrye Bash relies upon which isn't handled well in Wine versions
|
||||
previous to 9.
|
||||
|
||||
Lutris can also install from downloaded GOG installers, without having to link
|
||||
accounts. Make sure to download all the parts (for Oblivion, there are 3: a
|
||||
small EXE, and two BIN files). When installing, make sure all the downloaded
|
||||
files are in the same directory. In Lutris, click the `+` button to add a new
|
||||
game, and select "Install a Windows game from an executable." Name the game as
|
||||
you wish, and add identifier
|
||||
`the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe` for the GOG
|
||||
version. It'll pull down nice looking images. On the next screen, click the
|
||||
`Install` button next to "Setup file", choose your desired directory, and then
|
||||
select the EXE downloaded from the three files above. Lutris will create the
|
||||
Wine prefix, and load the GOG Installer. Make note of the directory you chose
|
||||
above for installation (default will be in the Lutris game library directory,
|
||||
`Lutris Hamburger Menu` -> `Preferences` -> `Storage` -> _Game Library_), and
|
||||
substitute it accordingly below.
|
||||
|
||||
Assuming everything is setup and running, the last step here is to note where
|
||||
Lutris installed the game. The path to the directory will differ, but the
|
||||
directory structure should be similar to the below. The Lutris "Directory"
|
||||
(Right-Click -> Configure) value will bring you to the Wine directory (with
|
||||
`drive_c`), and from there will be the `GOG Games` directory (or possibly
|
||||
renamed; this can be changed during the GOG install process), and then the
|
||||
`Oblivion` directory.
|
||||
|
||||
```
|
||||
Lutris
|
||||
|-> gog
|
||||
|-> the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe
|
||||
|-> drive_c
|
||||
|-> GOG Games
|
||||
|-> Oblivion
|
||||
|- Data
|
||||
|- Oblivion.exe
|
||||
|- ...
|
||||
```
|
||||
|
||||
### xOBSE
|
||||
|
||||
- [Project Link](https://github.com/llde/xOBSE)
|
||||
- [Nexus Links](https://www.nexusmods.com/oblivion/mods/37952)
|
||||
|
||||
The Oblivion Script Extender is required for many mods, and should be considered
|
||||
essential for anything beyond a strict vanilla playthrough. Download the latest
|
||||
version, and extract it to the `Oblivion` directory. When you launch Wrye Bash
|
||||
(covered next), in the lower-left corner, on the icon bar, should be a green
|
||||
checkbox. Hovering over it will notify you that OBSE is enabled. Clicking that
|
||||
box will toggle OBSE. Generally, make sure it is enabled (checked).
|
||||
|
||||
At this point, before any other tools, when you double-click/Play Oblivion, it
|
||||
will launch the purely vanilla Oblivion that was installed above. To use OBSE,
|
||||
right-click Oblivion in Lutris, choose _Configure_, and on the "Game Options"
|
||||
tab, change the _Executable_ by clicking the button with three dots (labeled
|
||||
"Select a file") to `obse_loader.exe`. Save the changes, and re-launch.
|
||||
|
||||
## Pre-Setup: Tools
|
||||
|
||||
Before setting up the modding tools, it is required to run Oblivion once. This
|
||||
will generate the INI file.
|
||||
|
||||
I also recommend adding the Wrye Bash `bash.ini` file detailed below before
|
||||
running Wrye Bash for the first time. By declaring where the executable for
|
||||
Oblivion is, Wrye Bash won't try to automatically find it, which can cause some
|
||||
troubles or confusion.
|
||||
|
||||
## Setup: Tools
|
||||
|
||||
I'll be using the following tools. When possible, download the stand-alone
|
||||
version of the tool. To make things easy, I use the `GOG Games` directory for
|
||||
all the tools.
|
||||
|
||||
```
|
||||
drive_c
|
||||
|-> GOG Games
|
||||
|- BethINI
|
||||
|- LOOT
|
||||
|- Mods
|
||||
|- Mopy
|
||||
|- Oblivion
|
||||
|- TES4Edit
|
||||
```
|
||||
|
||||
### Wrye Bash
|
||||
|
||||
- [Project Link](https://github.com/wrye-bash/wrye-bash)
|
||||
- [Homepage](https://wrye-bash.github.io/)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/22368)
|
||||
|
||||
Mod manager, and **everything else** launcher in this setup. One of the most
|
||||
exciting results of this setup is handling almost all modding management through
|
||||
the Wrye Bash UI. From the Project Link, download the stand-alone executable
|
||||
from the releases. I extract it to the `GOG Games` directory, which will create
|
||||
a `Mopy` directory. Within that will be the executable, `Wrye Bash.exe`. Next,
|
||||
in the `Mopy` directory, copy the `bash_default.ini` file to `bash.ini`. Make
|
||||
the following changes (or replace `bash.ini` with this information):
|
||||
|
||||
```ini
|
||||
[General]
|
||||
; -- Path to mod directory.
|
||||
; These are relative to the Oblivion directory.
|
||||
sOblivionMods=..\Mods
|
||||
sBashModData=..\Mods\Bash Mod Data
|
||||
sInstallersData=..\Mods\Bash Installers\Bash
|
||||
|
||||
; -- Path to the Oblivion directory.
|
||||
; "C:" here is drive_c on our filesystem.
|
||||
sOblivionPath=C:\GOG Games\Oblivion
|
||||
|
||||
; -- User directory stuff.
|
||||
; "C:" here is drive_c on our filesystem.
|
||||
; Make sure to replace YOUR-USERNAME with your username
|
||||
sUserPath=C:\users\YOUR-USERNAME
|
||||
sPersonalPath=C:\users\YOUR-USERNAME\Documents
|
||||
sLocalAppDataPath=C:\users\YOUR-USERNAME\AppData\Local
|
||||
|
||||
[Tool Options]
|
||||
; -- TES4Edit
|
||||
; Path is relative to the Oblivion directory.
|
||||
sTes4EditPath=..\TES4Edit\TES4Edit.exe
|
||||
|
||||
; -- TES4LODGen
|
||||
; Path is relative to the Oblivion directory.
|
||||
sTes4LodGenPath=..\TES4LodGen\Tes4LODGen.exe
|
||||
|
||||
; -- LOOT
|
||||
; Path is relative to the Oblivion directory.
|
||||
sLOOT=..\LOOT\LOOT.exe
|
||||
```
|
||||
|
||||
In this configuration, the relative paths are relative to the `Oblivion`
|
||||
directory (where the game executable is). For all remaining tool setup, modify
|
||||
the paths in this configuration to match the paths for the tool executable (or,
|
||||
rename the tool directories, which is what I prefer).
|
||||
|
||||
This is where the magic happens: within Lutris, right-click Oblivion and choose
|
||||
_Configure_. On the "Game Options" tab, change the _Executable_ by clicking the
|
||||
button with three dots (labeled "Select a file"), and choose the `Wrye Bash.exe`
|
||||
executable in the `Mopy` directory. Save the configuration, and
|
||||
double-click/Play Oblivion. This time, Wrye Bash will start up (**Remember:**
|
||||
This will not work on versions of Wine older than 9!).
|
||||
|
||||
At this point, when you want to play Oblivion, you will open Lutris, and launch
|
||||
"Oblivion." This will launch Wrye Bash. You can then click the Oblivion icon in
|
||||
the lower-left icon bar to launch the game. As additional tools are configured,
|
||||
they will appear in the lower-left icon bar (everything except BethINI). To use
|
||||
the tool, you'll run it from Wrye Bash.
|
||||
|
||||
### LOOT
|
||||
|
||||
- [Project Link](https://github.com/loot/loot)
|
||||
- [Homepage](https://loot.github.io/)
|
||||
|
||||
LOOT handles mod load order. Another application with a native Linux version. I
|
||||
had previous run into some bugs, but everything looks to work as expected now.
|
||||
Despite that, I still download and use the stand-alone Windows version (the
|
||||
archive from the releases, not the EXE). I extract it to my `GOG Games`
|
||||
directory, and rename the directory (or edit the `bash.ini` file) so the
|
||||
executable is where my Wrye Bash configuration expects it.
|
||||
|
||||
If setup properly, when you run Wrye Bash, in the lower-left corner will be a
|
||||
bar full of icons, one of which will be a little treasure chest. Clicking it
|
||||
will launch LOOT. From there, sort the order, and then close LOOT. Wrye Bash
|
||||
will refresh, and you can continue on. LOOT will also notify you of any "dirty"
|
||||
mods, which can be cleaned using TES4Edit (see below).
|
||||
|
||||
### TES4Edit
|
||||
|
||||
- [Project Link](https://github.com/TES5Edit/TES5Edit)
|
||||
- [Homepage](https://tes5edit.github.io/)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/11536)
|
||||
|
||||
I'm still not a mod creator, so my uses of TES4Edit are limited to "quick
|
||||
cleaning." From the project page or Nexus, download the latest version, and
|
||||
extract the archive to the `GOG Games` directory. Rename the directory or edit
|
||||
the `bash.ini` file so Wrye Bash can find it; restart Wrye Bash to verify. Wrye
|
||||
Bash doesn't include a dedicated short-cut for the "Quick Auto Clean" option,
|
||||
instead you have to right-click on the TES4Edit short-cut (or the TES4LodGen
|
||||
short-cut), and choose "Quick Auto Clean". Choose the mod to clean from the
|
||||
list, click OK, and let the program do its work.
|
||||
|
||||
### TES4LODGen
|
||||
|
||||
- [Project Link](https://github.com/TES5Edit/xLODGen)
|
||||
- [Homepage](https://tes5edit.github.io/docs/16-xLODGen.html)
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/15781?tab=description)
|
||||
|
||||
This will generate LOD files ahead of time, allowing for more distant objects to
|
||||
be shown as you adventure around Cyrodiil. Download the archive, and extract it
|
||||
to where Wrye Bash expects it, either changing the directory name or updating
|
||||
the `bash.ini` file accordingly. After mod installation is complete, click the
|
||||
icon from the icon bar to generate the LOD files.
|
||||
|
||||
### BethINI
|
||||
|
||||
- [Nexus Link](https://www.nexusmods.com/oblivion/mods/46440)
|
||||
|
||||
`BethINI` helps manage the "oblivion.ini" file, providing sane options and a
|
||||
wizard for configuration. This is the only tool that is not run from Wrye Bash.
|
||||
However, it's still pretty easy to work with. Download the stand-alone archive,
|
||||
extract it to the `GOG Games` directory.
|
||||
|
||||
To run the tool, in Lutris single-click on Oblivion. A bar should appear with
|
||||
some additional details about Oblivion, including some buttons: one will say
|
||||
"Play", and one will look like a wine glass; each will have a small button with
|
||||
an up-facing arrow. Click the arrow button next to the wine glass button, and
|
||||
select "Run EXE inside Wine prefix." Navigate into `drive_c`, then `GOG Games`,
|
||||
and into the directory you just set up for BethINI, and select `BethINI.exe`.
|
||||
|
||||
Wrye Bash does allow for custom application short-cuts, but it requires creating
|
||||
a Windows shortcut `.lnk` file, and I cannot figure out an easier way to do
|
||||
that than to just run it from Lutris.
|
||||
|
||||
## Post-Setup: Tools
|
||||
|
||||
Verify each tool runs as expected. Conveniently, all the Bethesda DLCs are
|
||||
"dirty," so LOOT will notify you, and then you can clean them. Run BethINI,
|
||||
generate LOD files, and run the game from Wrye Bash. Praise Todd.
|
||||
|
||||
## Mods
|
||||
|
||||
Wrye Bash on Windows can install mods from an archive, but with this setup that
|
||||
functionality is unreliable. Instead, I extract the mod archives manually before
|
||||
installing them with Wrye Bash. For each mod that I want to use, I'll create a
|
||||
directory in the `Mods -> Bash Installers` directory, and extract the mod
|
||||
archive into that directory. Then, within Wrye Bash, on the "Installers" tab, I
|
||||
can install mods as expected.
|
||||
|
||||
For actually using Wrye Bash, I recommend [laulajatar's
|
||||
guide](https://www.shrine-of-kynareth.de/wrye-bash-for-beginners-part-1-installation-and-installers-tab).
|
||||
Obviously, you can skip the installation steps for both Wrye Bash and OBSE.
|
||||
There is also the [Wrye Bash
|
||||
Manual](https://wrye-bash.github.io/docs/Wrye%20Bash%20General%20Readme.html).
|
||||
|
||||
## Lutris Setup: Problems
|
||||
|
||||
The significant problem with this setup is no way to alt-tab away from the game.
|
||||
To make things even more inconvenient, playing in a windowed mode also doesn't
|
||||
work, and shows only a black screen with audio. I haven't done an exhaustive
|
||||
trial of options and mods yet to try and fix this, because it isn't a major
|
||||
problem to me.
|
||||
|
||||
The second inconvenience is as I mentioned above, with Wrye Bash not installing
|
||||
mods directly from archives. Again, not a major problem to me.
|
||||
|
||||
I suspect that both of the problems can be resolved with some Wine tweaks.
|
||||
|
||||
## Lutris Setup: Benefits
|
||||
|
||||
What this setup gets right is ease of use, and ease of replication. All tools
|
||||
(except BethINI, for now) and the game are run from Wrye Bash. No juggling
|
||||
multiple application entries, aliases, or special setups. Plus, all tools, mods,
|
||||
and the game itself are all within the Lutris directory, making multiple setups
|
||||
a breeze: just copy the directory. In Lutris, you can then duplicate the entry
|
||||
(Right-Click -> Duplicate), and edit the executable (Right-Click -> Configure ->
|
||||
"Game options" tab -> _Executable_) to point to the new directory.
|
||||
|
||||
## Lutris Setup: Next-Steps
|
||||
|
||||
The most useful next step would be automating this process, by building a Lutris
|
||||
install script. Also, resolving the alt-tab and windowed problems above.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: all
|
||||
tabtitle: "All Posts"
|
||||
---
|
||||
|
||||
{% include all_posts.html %}
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: gaming
|
||||
tabtitle: "Gaming Posts"
|
||||
---
|
||||
|
||||
{% include topics.html %}
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: life
|
||||
tabtitle: "Life Posts"
|
||||
---
|
||||
|
||||
{% include topics.html %}
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: philosophy
|
||||
tabtitle: "Philosophy Posts"
|
||||
---
|
||||
|
||||
{% include topics.html %}
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: technology
|
||||
tabtitle: "Technology Posts"
|
||||
---
|
||||
|
||||
{% include topics.html %}
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: writing
|
||||
tabtitle: "Writing Posts"
|
||||
---
|
||||
|
||||
{% include topics.html %}
|
210
index.html
210
index.html
|
@ -1,18 +1,202 @@
|
|||
---
|
||||
layout: corrupt_index
|
||||
tabtitle: Home
|
||||
---
|
||||
|
||||
{% for post in site.posts limit:5 %}
|
||||
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Home</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
|
||||
<h1><a href="/2025/01/09/oblivion-lutris.html">Oblivion on Linux: Lutris Edition</a></h1>
|
||||
<div id="details">
|
||||
<div id="date">{{ post.pub }}</div>
|
||||
<div id="date">2025-01-09</div>
|
||||
<div id="tags">
|
||||
{% for topic in post.topics %}
|
||||
<a href="/topics/{{topic}}">{{topic}}</a>
|
||||
{% endfor %}
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">{{ post.short_desc }}</div>
|
||||
{% endfor %}
|
||||
<div id="desc">Modding Oblivion on Linux using Lutris and Wine, without Steam.</div>
|
||||
|
||||
<h1><a href="/2025/01/03/life-update.html">Life in Progress: January, 2025</a></h1>
|
||||
<div id="details">
|
||||
<div id="date">2025-01-03</div>
|
||||
<div id="tags">
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">A retrospective of 2024, up to the beginning of 2025</div>
|
||||
|
||||
<h1><a href="/2024/09/24/life-in-progress-september.html">Life in Progress: September, 2024</a></h1>
|
||||
<div id="details">
|
||||
<div id="date">2024-09-24</div>
|
||||
<div id="tags">
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Life In Progress update for September</div>
|
||||
|
||||
<h1><a href="/2024/08/19/life-in-progress-august.html">Life in Progress: August, 2024</a></h1>
|
||||
<div id="details">
|
||||
<div id="date">2024-08-19</div>
|
||||
<div id="tags">
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Life In Progress update for August</div>
|
||||
|
||||
<h1><a href="/2023/05/07/rclone-backups.html">Automatic Backups with RClone, systemd, and Backblaze</a></h1>
|
||||
<div id="details">
|
||||
<div id="date">2023-05-07</div>
|
||||
<div id="tags">
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">RClone is a command-line utility for interacting with an incredible number of cloud services. Backblaze is a reliable and inexpensive cloud storage provider. With systemd timer units, I setup a simple and reliable backup solution.</div>
|
||||
|
||||
<h6><a href="/topics/all">All Posts</a></h6>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
181
now.html
Normal file
181
now.html
Normal file
|
@ -0,0 +1,181 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Now</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/now.html" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<h1>Life In Progress, as of 2025-01-03</h1>
|
||||
<div class="author_info">
|
||||
Bill Niblock
|
||||
<a href="https://unlicense.org/"
|
||||
aria-label="Code dedicated to the public domain under Unlicense">
|
||||
<span class="fa fa-cc-pd" aria-hidden="true"
|
||||
title="Code dedicated to the public domain under Unlicense"</span>
|
||||
</a>
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/"
|
||||
aria-label="Published to the public domain under CC0">
|
||||
<span class="fa fa-cc-zero" aria-hidden="true"
|
||||
title="Content dedicated to the public domain under CC0"</span>
|
||||
</a>
|
||||
Last Updated: 2025-01-03
|
||||
<br />
|
||||
This is a <a href="https://nownownow.com/about" id="now">Now Page</a>
|
||||
inspired by <a href="https://sive.rs/" id="now">Derek Sivers</a>.
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<p>The Holiday Spirit made me a bit too jolly! After many cookies and cocktails,
|
||||
it’s time to get active, and fix some bad food habits. Again.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>My business, <a href="https://www.niblock.tech">Niblock Technology Solutions</a>,
|
||||
continues to move forward. I have a second client! Next, I want to work on
|
||||
expanding my offerings, and improve my coverage.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>I’ve begun a playthrough of one of my favorite games, <strong>The Elder Scrolls IV:
|
||||
Oblivion</strong>. I’m very happy with the modding setup I’ve got this time around,
|
||||
and look forward to writing up the details!</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>I have a goal to improve my music sight-reading skill, and plan to do so by
|
||||
reading a new piece of music each week. I’ve started off with some Bach, and
|
||||
will likely continue with him for a bit.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
21
now.md
21
now.md
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
layout: corrupt_now
|
||||
tabtitle: Now
|
||||
author: Bill Niblock
|
||||
pub: 2025-01-03
|
||||
---
|
||||
|
||||
- The Holiday Spirit made me a bit too jolly! After many cookies and cocktails,
|
||||
it's time to get active, and fix some bad food habits. Again.
|
||||
|
||||
- My business, [Niblock Technology Solutions](https://www.niblock.tech),
|
||||
continues to move forward. I have a second client! Next, I want to work on
|
||||
expanding my offerings, and improve my coverage.
|
||||
|
||||
- I've begun a playthrough of one of my favorite games, **The Elder Scrolls IV:
|
||||
Oblivion**. I'm very happy with the modding setup I've got this time around,
|
||||
and look forward to writing up the details!
|
||||
|
||||
- I have a goal to improve my music sight-reading skill, and plan to do so by
|
||||
reading a new piece of music each week. I've started off with some Bach, and
|
||||
will likely continue with him for a bit.
|
562
topics/all.html
Normal file
562
topics/all.html
Normal file
|
@ -0,0 +1,562 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: All Posts</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/topics/all" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
|
||||
<h1><a href="/2025/01/09/oblivion-lutris.html">Oblivion on Linux: Lutris Edition</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2025-01-09</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Modding Oblivion on Linux using Lutris and Wine, without Steam.</div>
|
||||
|
||||
<h1><a href="/2025/01/03/life-update.html">Life in Progress: January, 2025</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2025-01-03</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">A retrospective of 2024, up to the beginning of 2025</div>
|
||||
|
||||
<h1><a href="/2024/09/24/life-in-progress-september.html">Life in Progress: September, 2024</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2024-09-24</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Life In Progress update for September</div>
|
||||
|
||||
<h1><a href="/2024/08/19/life-in-progress-august.html">Life in Progress: August, 2024</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2024-08-19</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Life In Progress update for August</div>
|
||||
|
||||
<h1><a href="/2023/05/07/rclone-backups.html">Automatic Backups with RClone, systemd, and Backblaze</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2023-05-07</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">RClone is a command-line utility for interacting with an incredible number of cloud services. Backblaze is a reliable and inexpensive cloud storage provider. With systemd timer units, I setup a simple and reliable backup solution.</div>
|
||||
|
||||
<h1><a href="/2022/09/27/linode_funkwhale.html">Funkwhale on Linode with Object Storage</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2022-09-27</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Funkwhale is a cool project, building a federated music platform. I wanted to explore Funkwhale's ability to store music and associated files in object storage, and since I already use Linode for my VPS, leveraging their object storage offering makes a lot of sense.</div>
|
||||
|
||||
<h1><a href="/2022/07/04/steam_deck_syncthing.html">Setting up Syncthing on the Steam Deck (Updated!)</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2022-07-12</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Syncthing is an incredible tool that I use to keep pictures, music, notes, and games synchronized across multiple platforms. The form factor of the Steam Deck makes it a perfect emulation target, and Syncthing can help keep games and saves in-sync with other machines.</div>
|
||||
|
||||
<h1><a href="/2021/12/09/oblivion-linux-2.html">Oblivion on Linux, with Mods! Part 2 - Mods</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2021-12-09</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Elder Scrolls IV: Oblivion still has one of the more active modding communities. In this, part 2 of my journey to get Oblivion modded and running on Linux, I'll cover some of my favorite mods.</div>
|
||||
|
||||
<h1><a href="/2021/11/20/oblivion-linux.html">Oblivion on Linux, with Mods! Part 1 - Tools</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2021-11-28</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Elder Scrolls IV: Oblivion is one of my favorite games of all time. The vanilla game holds up, but mods take the game to an entirely new level. Getting it working on Linux requires a bit of configuration, bit is surprisingly accessible! This is part 1 of my journey.</div>
|
||||
|
||||
<h1><a href="/2020/10/23/gnome-cleric-wizard.html">Character Write-up: Dabbledop Humblebumple</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-10-23</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory of a Gnome cleric/wizard I played for a single session!</div>
|
||||
|
||||
<h1><a href="/2020/09/27/pathfinder-eldritch-knight.html">Pathfinder Characters: Eldritch Knight</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-09-27</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Eldritch Knight represents my favorite archetype of a fantasy character: sword and sorcery. Here's how I build mine.</div>
|
||||
|
||||
<h1><a href="/2020/09/06/pathfinder-druid.html">Pathfinder Characters: Let's Make a Druid</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-09-05</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">One of my favorite activities is creating characters. I love theory crafting, pouring through source material, and setting limits. While I've made many, many characters, one class I haven't touched is druid.</div>
|
||||
|
||||
<h1><a href="/2020/07/19/syncthing-part-1.html">Brief Exploration of Syncthing</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-07-19</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Syncthing is an incredible tool. In this post, I want to explore setting it up, and then some uses I've found for it.</div>
|
||||
|
||||
<h1><a href="/2020/07/10/crater-of-igrevor.html">Pathfinder One-Shot: The Crater of Igrevor</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-07-10</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The first of several one-shot adventures I ran for Pathfinder</div>
|
||||
|
||||
<h1><a href="/2020/06/19/jhoric_background.html">Character Write-up: Jhoric Stonehammer</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-19</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory of my proud cleric of Moradin, Jhoric Stonehammer.</div>
|
||||
|
||||
<h1><a href="/2020/06/18/gabriella_s-fall.html">Character Story: Gabriella's Fall</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-18</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">A story I wrote about the consequences of the actions of Gabriella, a paladin in D&D5e</div>
|
||||
|
||||
<h1><a href="/2020/06/14/setting-up-btrfs.html">Using BTRFS to setup a simple RAID, with subvolumes, snapshots and backups</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-14</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">BTRFS is a file system, and includes built-in functionality for RAID. I decided to use it for the storage disks in my desktop. Here is how I set it up, using subvolumes, with snapshots and backups.</div>
|
||||
|
||||
<h1><a href="/2020/06/03/post.html">It has been a while.</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-03</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">It has been a while. Here's an update, of sorts.</div>
|
||||
|
||||
<h1><a href="/2018/02/11/letter-to-lucilius-6.html">Seneca's Letter to Lucilius, Letter 6: On Sharing Knowledge</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-02-11</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Knowledge withheld is only partial. Sharing knowledge, and experiencing it, fosters improvement!</div>
|
||||
|
||||
<h1><a href="/2018/02/11/letter-to-lucilius-5.html">Seneca's Letter to Lucilius, Letter 5: On the Philosopher's Mean</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-02-11</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">In this letter, Seneca explores the concept of All Things in Moderation, but with a Stoic twist!</div>
|
||||
|
||||
<h1><a href="/2018/01/28/letter-to-lucilius-4.html">Seneca's Letter to Lucilius, Letter 4: On the Terrors of Death</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-20</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Letter 4 was the first letter I ever read. Seneca discusses death, life, and how to deal with both. I found it during a time of great anxiety and strife, yet even now I find it enlightening.</div>
|
||||
|
||||
<h1><a href="/2018/01/28/letter-to-lucilius-3.html">Seneca's Letter to Lucilius, Letter 3: On True and False Friendship</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-20</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Letter 3 deals with friends, and I don't mean the number shown on Facebook. True Friendship, to Seneca, is a place of honor!</div>
|
||||
|
||||
<h1><a href="/2018/01/28/letter-to-lucilius-11.html">Seneca's Letter to Lucilius, Letter 11: On the Blush of Modesty</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-28</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Letter 11 deals with accepting our faults, staring an unexpected quote from Epicurus.</div>
|
||||
|
||||
<h1><a href="/2018/01/27/halvar.html">Character Write-up: Halvar, Rune Bearer</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-27</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory for my first character in a new 5th Edition Dungeons and Dragons campaign. Meet Halvar, a brash young warrior looking for glory!</div>
|
||||
|
||||
<h1><a href="/2018/01/15/letter-to-lucilius-2.html">Seneca's Letter to Lucilius, Letter 2: On Discursiveness in Reading</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-15</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Seneca's second letter to Lucilius, On Discursiveness in Reading, covers the importance of focus. There's also a quote by Epicurus, which is apparently a feature of many of his letters to Lucilius.</div>
|
||||
|
||||
<h1><a href="/2018/01/15/letter-to-lucilius-1.html">Seneca's Letter to Lucilius, Letter 1: On Time</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-15</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Seneca's Moral Letters to Lucilius are regarded as one of the most prominent Stoic writings available. My friend Rob and I like to discuss them during a weekly meeting, and I'd like to record my response and thoughts as well. Here's letter 1, On Time</div>
|
||||
|
||||
<h1><a href="/2018/01/15/Letters-To-Lucilius.html">Seneca's Moral Letters to Lucilius</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-15</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">My friend Rob and I have recently been disucssing Seneca's Moral Letters to Lucilius. As a companion to those discussions, I'm documenting my responses to each letter.</div>
|
||||
|
||||
<h1><a href="/2018/01/11/Character-Azulien.html">Character Backstory: Azulien Blackblade</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-12</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
<a href="/topics/writing.html">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Here's the character backstory for one of my older characters from a game long since forgotten: Azulien Blackblade. Enjoy!</div>
|
||||
|
||||
<h1><a href="/2016/03/11/Random-Thoughts-1.html">Random Thoughts 1</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2016-03-11</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">I'm on vacation this week, which is pretty grand. Thus far I've accomplished one of the 4 rather meager goals I set for myself, played plenty of games, caught up on some reading and videos and feeds, and slept in far later than I should have.</div>
|
||||
|
||||
<h1><a href="/2016/01/30/Revelations-Stoic-Understanding.html">Developing Stoic Understanding</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2016-01-30</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Sherman J. Clark wrote a fantastic article on the Stoicism Today blog in December which really spoke to me. It approached some of the questions and problems I've had with Stoicism in an elegant and enlightening way, which has led to my significantly greater understanding of Stoicism.</div>
|
||||
|
||||
<h1><a href="/2015/11/10/TLS-Part-2.html">An Examination of TLS, Part 2</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-11-10</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">TLS, more often referred to as SSL, is the means by which a secure connection is established over a computer network. Part 1 examines how to establish a secure connection using TLS. This article examines further the techniques and technology that makes TLS secure. Specifically, a brief examination of certificates, cipher suites, and public-key authentication.</div>
|
||||
|
||||
<h1><a href="/2015/07/09/A-Friends-Father.html">A Good Friend's Father</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-07-09</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">A good friend's father died. What can I learn from this?</div>
|
||||
|
||||
<h1><a href="/2015/05/06/TLS-Part-1.html">An Examination of TLS, Part 1</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-05-06</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology.html">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">TLS, more often referred to as SSL, is a means by which a secure connection is established over a computer network. In this introductionary post, I layout the steps to establishing a secure connection.</div>
|
||||
|
||||
<h1><a href="/2015/05/04/Philosophy-of-Bill-1.html">The Philosophy of Bill, Abbreviated</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-05-04</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/philosophy.html">philosophy</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">I consider myself a very philosophical person. That doesn't mean I'm any good at philosophy, I just tend to think a lot about ethics, morality, and happiness. Recently I've been thinking more about my worldview, what I value as important, and how I achieve happiness in my daily life. I wanted to jot down what I feel is a brief examination of my basic tenants; the basic Philosophy of Bill.</div>
|
||||
|
||||
<h1><a href="/2015/04/28/Farewell-to-Windows-Tour.html">Farewell to Windows Tour 2015</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-04-28</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming.html">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">It has come time to bid Windows farewell. Once upon a time Windows was the only digital world I knew. It began when I was young, during the venerable 3.1 era. I remember booting up our family computer into DOS, and before starting Windows I could start Doom 2 or Keen's Dream, or any number of other games. That was my first interaction with a command line. My, my, how times have changed.</div>
|
||||
|
||||
<h1><a href="/2015/01/01/Ireland-Log.html">A Log of My Travels in Ireland</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-01-01</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/life.html">life</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Once upon a time, I traveled to Ireland. It was quite the experience. Me, my 3 friends Suf, Chris and Cary, Scion, shenanigans, Guiness, whiskey, and Thunderstruck.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
399
topics/gaming.html
Normal file
399
topics/gaming.html
Normal file
|
@ -0,0 +1,399 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The Internet Vagabond :: Gaming Posts</title>
|
||||
<link type="application/atom+xml" rel="alternate" href="https://www.theinternetvagabond.com/feed.xml" title="The Internet Vagabond" />
|
||||
<meta name="description"
|
||||
content="Rants of a wandering techy, in search of truth, knowledge, and a decent ping." />
|
||||
<meta name="author" content="Bill Niblock" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="canonical" href="https://www.theinternetvagabond.com/topics/gaming" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_layout.css" />
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://www.theinternetvagabond.com/src/styles/corrupt_typog.css" />
|
||||
<link rel="icon" type="image/x-icon"
|
||||
href="https://www.theinternetvagabond.com/src/images/favicon.ico" />
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||
crossorigin="anonymous">
|
||||
<script data-goatcounter="https://theinternetvagabond.goatcounter.com/count"
|
||||
async src="https://www.theinternetvagabond.com/src/scripts/goatcounter.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cor_page">
|
||||
|
||||
<header>
|
||||
<a href="/">
|
||||
<div>
|
||||
<span class="first">T</span>he
|
||||
<span class="first">I</span>nternet
|
||||
<span class="first">V</span>agabond
|
||||
</div>
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<h6>Gaming Posts</h6>
|
||||
|
||||
|
||||
<h1><a href="/2025/01/09/oblivion-lutris.html">Oblivion on Linux: Lutris Edition</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2025-01-09</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Modding Oblivion on Linux using Lutris and Wine, without Steam.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2024/09/24/life-in-progress-september.html">Life in Progress: September, 2024</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2024-09-24</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/life">life</a>
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Life In Progress update for September</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2022/07/04/steam_deck_syncthing.html">Setting up Syncthing on the Steam Deck (Updated!)</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2022-07-12</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Syncthing is an incredible tool that I use to keep pictures, music, notes, and games synchronized across multiple platforms. The form factor of the Steam Deck makes it a perfect emulation target, and Syncthing can help keep games and saves in-sync with other machines.</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2021/12/09/oblivion-linux-2.html">Oblivion on Linux, with Mods! Part 2 - Mods</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2021-12-09</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Elder Scrolls IV: Oblivion still has one of the more active modding communities. In this, part 2 of my journey to get Oblivion modded and running on Linux, I'll cover some of my favorite mods.</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2021/11/20/oblivion-linux.html">Oblivion on Linux, with Mods! Part 1 - Tools</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2021-11-28</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Elder Scrolls IV: Oblivion is one of my favorite games of all time. The vanilla game holds up, but mods take the game to an entirely new level. Getting it working on Linux requires a bit of configuration, bit is surprisingly accessible! This is part 1 of my journey.</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/10/23/gnome-cleric-wizard.html">Character Write-up: Dabbledop Humblebumple</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-10-23</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory of a Gnome cleric/wizard I played for a single session!</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/09/27/pathfinder-eldritch-knight.html">Pathfinder Characters: Eldritch Knight</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-09-27</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The Eldritch Knight represents my favorite archetype of a fantasy character: sword and sorcery. Here's how I build mine.</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/09/06/pathfinder-druid.html">Pathfinder Characters: Let's Make a Druid</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-09-05</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">One of my favorite activities is creating characters. I love theory crafting, pouring through source material, and setting limits. While I've made many, many characters, one class I haven't touched is druid.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/07/10/crater-of-igrevor.html">Pathfinder One-Shot: The Crater of Igrevor</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-07-10</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The first of several one-shot adventures I ran for Pathfinder</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/06/19/jhoric_background.html">Character Write-up: Jhoric Stonehammer</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-19</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory of my proud cleric of Moradin, Jhoric Stonehammer.</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2020/06/18/gabriella_s-fall.html">Character Story: Gabriella's Fall</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2020-06-18</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">A story I wrote about the consequences of the actions of Gabriella, a paladin in D&D5e</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2018/01/27/halvar.html">Character Write-up: Halvar, Rune Bearer</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-27</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">The backstory for my first character in a new 5th Edition Dungeons and Dragons campaign. Meet Halvar, a brash young warrior looking for glory!</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2018/01/11/Character-Azulien.html">Character Backstory: Azulien Blackblade</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2018-01-12</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
<a href="/topics/writing">writing</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">Here's the character backstory for one of my older characters from a game long since forgotten: Azulien Blackblade. Enjoy!</div>
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2016/03/11/Random-Thoughts-1.html">Random Thoughts 1</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2016-03-11</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/technology">technology</a>
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">I'm on vacation this week, which is pretty grand. Thus far I've accomplished one of the 4 rather meager goals I set for myself, played plenty of games, caught up on some reading and videos and feeds, and slept in far later than I should have.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1><a href="/2015/04/28/Farewell-to-Windows-Tour.html">Farewell to Windows Tour 2015</a></h1>
|
||||
<div class="" id="details">
|
||||
<div class="" id="date">2015-04-28</div>
|
||||
<div class="" id="tags">
|
||||
|
||||
<a href="/topics/gaming">gaming</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="desc">It has come time to bid Windows farewell. Once upon a time Windows was the only digital world I knew. It began when I was young, during the venerable 3.1 era. I remember booting up our family computer into DOS, and before starting Windows I could start Doom 2 or Keen's Dream, or any number of other games. That was my first interaction with a command line. My, my, how times have changed.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<nav>
|
||||
<div><a href="/">home</a></div>
|
||||
|
||||
<div><a href="/topics/all">all</a></div>
|
||||
|
||||
<div><a href="/topics/gaming">gaming</a></div>
|
||||
|
||||
<div><a href="/topics/life">life</a></div>
|
||||
|
||||
<div><a href="/topics/philosophy">philosophy</a></div>
|
||||
|
||||
<div><a href="/topics/technology">technology</a></div>
|
||||
|
||||
<div><a href="/topics/writing">writing</a></div>
|
||||
|
||||
</nav>
|
||||
|
||||
<hr />
|
||||
|
||||
<div><a href="https://www.theinternetvagabond.com/now">Life In Progress</a></div>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="h-card">
|
||||
<section class="footer_about" id="about">
|
||||
<div>The Site</div>
|
||||
<div>
|
||||
<a href="https://www.theinternetvagabond.com/feed.xml"
|
||||
aria-label="RSS feed for the site">
|
||||
<span class="fa fa-rss" aria-hidden="true"
|
||||
title="RSS Feed"</span>
|
||||
</a> |
|
||||
<a href="https://theinternetvagabond.goatcounter.com/"
|
||||
aria-label="GoatCounter statistics for the site">
|
||||
<span class="fa fa-bar-chart" aria-hidden="true"
|
||||
title="GoatCounter Statistics"</span>
|
||||
</a> |
|
||||
<a href="https://codeberg.org/VagabondAzulien/the-internet-vagabond-dot-com"
|
||||
aria-label="Source code repository for the site">
|
||||
<span class="fa fa-code" aria-hidden="true"
|
||||
title="Site Source Code"</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="u-url u-uid" href="https://theinternetvagabond.com"></a>
|
||||
<p>
|
||||
This site is a small slice of internet real-estate that I use for
|
||||
occasional writing. Nothing I say is visionary or profound. I
|
||||
focus on technology, gaming, and philosophy. All opinions my
|
||||
own.
|
||||
</p>
|
||||
<div>The Vagabond</div>
|
||||
<div>
|
||||
<a rel="me"
|
||||
href="mailto:bill@theinternetvagabond.com"
|
||||
aria-label="Email Bill at The Internet Vagabond dot com">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"
|
||||
title="Email bill at theinternetvagabond.com"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://matrix.to/#/@vagabondazulien:matrix.org"
|
||||
aria-label="Speak with me on Matrix">
|
||||
<span class="fa fa-matrix-org" aria-hidden="true"
|
||||
title="Speak with me on Matrix"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me"
|
||||
href="https://mastodon.social/@azulien"
|
||||
aria-label="Find me on the Fediverse">
|
||||
<span class="fa fa-mastodon" aria-hidden="true"
|
||||
title="Find me on the Fediverse"</span>
|
||||
</a> |
|
||||
<a class="u-url" rel="me" href="https://www.twitch.tv/vagabondazulien/profile"
|
||||
aria-label="Link to my Twitch channel">
|
||||
<span class="fa fa-twitch " aria-hidden="true"
|
||||
title="My Twitch channel"</span>
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
My name is <span class="p-name">Bill Niblock</span>. <span
|
||||
class="p-note">I'm a computer scientist by education, a technologist
|
||||
by trade, a gamer by hobby, and a philosopher by accident. I
|
||||
live in <span class="p-locality">Buffalo</span>, <span class="p-region">
|
||||
New York</span>, <span class="p-country-name">USA</span>.<br />
|
||||
<br />
|
||||
My PGP Key is <span class="u-key" id="key">CCE7 3682 331B 5614 9FAB
|
||||
7383 7359 80B2 6381 C91E</span>.
|
||||
</p>
|
||||
</section>
|
||||
<section style="display: none;">
|
||||
<span class="p-category">Gaming</span>
|
||||
<span class="p-category">Technology</span>
|
||||
<span class="p-category">Philosophy</span>
|
||||
<span class="p-category">Open Source Software</span>
|
||||
<span class="p-category">Self-Hosting</span>
|
||||
<span class="p-category">Coffee</span>
|
||||
<span class="u-email">bill@theinternetvagabond.com</span>
|
||||
</section>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue