Finish January dispatch
This commit is contained in:
86
static/archive/baty-net-bplhdp.txt
Normal file
86
static/archive/baty-net-bplhdp.txt
Normal file
@@ -0,0 +1,86 @@
|
||||
#[1]alternate
|
||||
|
||||
[2]Jack Baty
|
||||
|
||||
Director of Unspecified Services
|
||||
|
||||
[extra.png]
|
||||
|
||||
[3]Home [4]Posts [5]Journal [6]About [7]More
|
||||
|
||||
Ending my OpenBSD experiment (Almost)
|
||||
|
||||
I did [8]this fun thing from Derek Sivers because I wanted to play with
|
||||
[9]OpenBSD and with [10]Vultr for hosting.
|
||||
|
||||
Well, I played with it. It was fun. I got to see how [11]Dovecot works
|
||||
and I learned how to configure Relayd and the OpenBSD httpd server.
|
||||
|
||||
I think I'd end up liking it. BSD feels lighter and simpler and
|
||||
therefore probably more secure than the Ubuntu servers I'm running.
|
||||
|
||||
However, I don't need another server to manage. I don't need to run my
|
||||
own mail server or CalDAV server. My VPS at Digital Ocean has been
|
||||
running (::knocks wood::) smoothly for years and I've got the
|
||||
configuration down.
|
||||
|
||||
I'll be deleting the OpenBSD server once I've moved the few sites I'd
|
||||
migrated there back to Digital Ocean.
|
||||
|
||||
Remember, [12]Reduce and Simplify.
|
||||
|
||||
I may try again later with stock OpenBSD and Caddy, without all of the
|
||||
Sivers' stuff.
|
||||
|
||||
2 hours later: I was right. I spun up a fresh OpenBSD server at Vultr
|
||||
and configured it myself. No services running but relayd->httpd and so
|
||||
far the only site it's running is [13]jackbaty.com. I like the idea of
|
||||
BSD so much that I couldn't give up quite yet.
|
||||
|
||||
* [14]OpenBSD
|
||||
* [15]Tech
|
||||
|
||||
Published on 2024-01-04 12:05:00
|
||||
|
||||
[16]✍️ Reply by email
|
||||
|
||||
Keep on reading
|
||||
|
||||
The care and feeding of my system
|
||||
|
||||
03 Jan, 2024
|
||||
|
||||
Org-web-tools
|
||||
|
||||
08 Jan, 2024
|
||||
|
||||
Copyright © 2000-2024 Jack Baty
|
||||
|
||||
References
|
||||
|
||||
Visible links:
|
||||
1. file:///feed
|
||||
2. https://baty.net/
|
||||
3. https://baty.net/
|
||||
4. https://baty.net/posts
|
||||
5. https://baty.net/journal
|
||||
6. https://baty.net/about
|
||||
7. https://baty.net/page
|
||||
8. https://baty.net/journal/2023/12/29/running-an-openbsd-server
|
||||
9. https://www.openbsdfoundation.org/
|
||||
10. https://www.vultr.com/
|
||||
11. https://dovecot.org/
|
||||
12. file:///journal/2023/12/31/reduce-and-simplify
|
||||
13. https://jackbaty.com/
|
||||
14. https://baty.net/posts/tag:OpenBSD
|
||||
15. https://baty.net/posts/tag:Tech
|
||||
16. mailto:jack@baty.net?subject=[baty.net] Re: Ending my OpenBSD experiment (Almost)
|
||||
|
||||
Hidden links:
|
||||
18. file://localhost/search
|
||||
19. file://localhost/feed
|
||||
20. file://localhost/2024/01/the-care-and-feeding-of-my-system
|
||||
21. file://localhost/2024/01/org-web-tools
|
||||
22. https://social.lol/@jbaty
|
||||
23. https://instagram.com/jackbatyphoto
|
||||
24. file://localhost/feed
|
||||
365
static/archive/blog-testdouble-com-g9g5id.txt
Normal file
365
static/archive/blog-testdouble-com-g9g5id.txt
Normal file
@@ -0,0 +1,365 @@
|
||||
[1]Test Double The Test Double logo
|
||||
|
||||
Menu
|
||||
|
||||
(BUTTON) Menu Menu An icon that displays an illustration of a website
|
||||
menu
|
||||
* [2]Home
|
||||
* [3]Agency
|
||||
* [4]Services
|
||||
* [5]Careers
|
||||
* [6]Blog
|
||||
* [7]Contact
|
||||
|
||||
[8]Blog [9]Posts
|
||||
|
||||
Only you can give meaning to your career
|
||||
|
||||
How to mark moments that matter by planting a flag
|
||||
|
||||
An icon of a clock Publish Date
|
||||
January 2, 2024
|
||||
|
||||
An icon of a human figure Authors
|
||||
[10]Justin Searls
|
||||
|
||||
I have, for whatever reason, live-blogged my career. Posting technical
|
||||
tips I’ve learned. Complaining about bugs I’ve uncovered. Elaborating
|
||||
on struggles my teams have faced. Mixed in with the substantive stuff
|
||||
has been plenty of vain ephemera that many would rightly describe as
|
||||
“over-sharing.” My brother sent me [11]this last week and I felt
|
||||
personally attacked:
|
||||
|
||||
Everyone is fighting a battle you don’t know about. Except for me. I
|
||||
am complaining loudly about my battle. Everybody knows about it.
|
||||
|
||||
So if you’ve borne witness to how much of my life I have spewed
|
||||
indiscriminately onto the Internet: first, I’m sorry. And second,
|
||||
please know that my vocation as a limelight enthusiast is emphatically
|
||||
not what I’m encouraging when I say this: I really wish more people
|
||||
took the time to reflect on the moments that mattered most in their
|
||||
careers and did more to memorialize them.
|
||||
|
||||
Ask yourself: what experience in the Spring of 2019 had the greatest
|
||||
impact on how you go about your work today? Or 2017… what was 2017 all
|
||||
about? Think about the project you’re focused on right now. What will
|
||||
you remember about it a decade from now? In what ways are you reaching
|
||||
(or being stretched) beyond your comfort zone? If Walter Isaacson were
|
||||
writing a bullshit hagiography about your life instead of some
|
||||
[12]other schmuck, what would he have to say about you in your current
|
||||
chapter?
|
||||
|
||||
How does it feel to be asked these questions?
|
||||
|
||||
Early in my career, being asked those questions would have felt like a
|
||||
personal attack. But why? I had the tremendous privilege to have a job
|
||||
that paid me to use my mind instead of my hands, that afforded me the
|
||||
comfort of working behind a desk instead of out in a field, and that
|
||||
saw value in my continued growth instead of viewing me as a resource to
|
||||
be extracted and consumed. Those relative luxuries signaled that (by
|
||||
some definitions) I had “made it,” but nevertheless there I was:
|
||||
working overtime and shedding hair to deliver projects that meant
|
||||
nothing to me. As the years passed, I knew I was accomplishing
|
||||
something and growing somehow, but I found myself totally unable to
|
||||
articulate what or how.
|
||||
|
||||
Not unrelatedly, I grew to hate answering “what do you do?” at parties.
|
||||
|
||||
People tend to spend about a third of their lifespan at work, and
|
||||
that’s assuming they’re fortunate enough to retire at some point.
|
||||
That’s a big chunk of life to be rendered meaningless! So I decided to
|
||||
be someone whose work mattered—to myself, if no one else.
|
||||
|
||||
Deciding to take ownership over the meaning of my work has
|
||||
unquestionably changed my life for the better. This post is the first
|
||||
time I’ve shared my process publicly, and my hope is that others will
|
||||
benefit from reading it. Given how dissatisfied most people seem to be
|
||||
with their careers, maybe that’s you.
|
||||
|
||||
[13]Periodically plant a flag
|
||||
|
||||
Despite the fact that I live in Florida and I’m typing this sentence
|
||||
poolside in shorts and a t-shirt in mid-December, I conceptualize time
|
||||
with the passage of seasons. There are seasons when my life demands a
|
||||
lot from me and my career is forced to take a back seat. There are
|
||||
seasons when my work is particularly engaging and my life falls into a
|
||||
pleasant-but-unremarkable routine. There are, of course, seasons when
|
||||
both are challenging simultaneously, but hopefully not too many.
|
||||
Whatever the case, I find myself pausing every three or four months and
|
||||
pondering, “what from the last season of my life is worth remembering?”
|
||||
|
||||
It’s not like I have a reminder scheduled or anything. I don’t gather
|
||||
my colleagues and family for a standing meeting to review my
|
||||
achievements from the prior quarter. It’s more like an itch I’ve
|
||||
trained my brain to scratch whenever I go more than a few months
|
||||
without examining where my time has gone and what I have to show for
|
||||
it.
|
||||
|
||||
I often refer to this regular act of reflection as “planting a flag” to
|
||||
symbolize whatever I want to stand out when I look back on a period of
|
||||
my life. In my case, these flags usually take the form of creative work
|
||||
like a blog post, a conference talk, or an open source library, but
|
||||
however you choose to imbue meaning into your experiences is entirely
|
||||
up to you. The most important thing is that you sit with them long
|
||||
enough to associate your memories of those experiences with why they
|
||||
mattered. When useful artifacts shake out of my process that can help
|
||||
others along in their own journeys, that’s a happy accident as far as
|
||||
I’m concerned.
|
||||
|
||||
[14]How to plant a flag
|
||||
|
||||
So, how does one actually assign meaning to a heretofore meaningless
|
||||
experience? This is the process I’ve settled into over the years to
|
||||
identify and commemorate my life’s watershed moments:
|
||||
1. Reflect: spend some unstructured time—maybe on a walk or with a
|
||||
notebook—and let your mind wander through the previous season of
|
||||
your life. A lesson you learned. Feedback that encouraged you. An
|
||||
interaction that left an impact. A moment that inspired you. I’m
|
||||
especially drawn to memories where emotions ran high—maybe I was
|
||||
really worried before a hard conversation or relieved after a
|
||||
colleague helped me solve a hard problem. If I draw a blank, I scan
|
||||
my e-mail and calendar to jog my memory. If, nothing stands out
|
||||
after all that, I don’t force it; I’ll give the exercise a rest and
|
||||
come back to it a few days later
|
||||
2. Collect: considering the experiences that came to mind when
|
||||
reflecting, which ones were distinct and new to you? Anything new
|
||||
you learned is, by definition, novel, and would obviously qualify.
|
||||
It’s naturally harder to identify familiar-seeming experiences as
|
||||
novel, but perhaps there was something unique and interesting
|
||||
hiding in the otherwise banal UI control you shipped last month.
|
||||
Why do this? Because by filtering out everything you’ve seen and
|
||||
done before, whatever flag you plant will stand taller, and you
|
||||
won’t risk mistaking this moment and its meaning for another. If
|
||||
this step filters everything out because nothing seems sufficiently
|
||||
novel, widen the aperture a bit—surely something interesting
|
||||
happened in the last few months. And, try as you might, if you go
|
||||
long enough with nothing to show for it, the meaning you’re
|
||||
searching for may be that it’s time to make a change
|
||||
3. Connect: for each of the experiences you’ve collected, try to
|
||||
understand how they might connect to future situations. A new tool
|
||||
or technique might empower you to do something you couldn’t
|
||||
accomplish otherwise. A painful mistake might warn your future self
|
||||
to avoid try a different approach next time. Since I can’t see the
|
||||
future, I imagine what impact each such insight might have had if
|
||||
applied to experiences from my past. “If I’d had learned this years
|
||||
ago, how would it have changed other events in my life?” If I can
|
||||
think of several moments in my life that would have played out
|
||||
differently, that’s as good of evidence as any that it has the
|
||||
potential to make an impact on you going forward
|
||||
4. Protect: memory is fleeting, and the work you do to identify
|
||||
moments that matter will quickly fade away if you don’t do
|
||||
something to mark the occasion. Memories thrive in novelty and
|
||||
wither in predictability, so the only wrong answer would be to
|
||||
enshrine every life lesson in the exact same way. Because creative
|
||||
endeavors necessarily result in the creation of something new,
|
||||
they’re a great way to clarify meaning and cement memories. My
|
||||
go-to creative outlets are essays, videos, and code, but yours
|
||||
might be songs, recipes, or [15]Etch A Sketch portraiture
|
||||
|
||||
That’s it! Reflect, collect, connect, and protect.
|
||||
|
||||
(See what I did there? How all the steps rhyme. That’s the kind of
|
||||
thing you’ll be able to pull off with a decade of practice doing this.)
|
||||
|
||||
[16]This all happens in hindsight
|
||||
|
||||
If you’ve ever had a job that encouraged you to make quarterly or
|
||||
annual goals for yourself, you may have noticed that a lot of those
|
||||
goals go unfinished. By the time performance reviews roll around,
|
||||
people often feel forced to justify why they didn’t achieve this or
|
||||
that goal. Regardless of the reason—maybe learning some skill was no
|
||||
longer relevant or the business’s strategic priorities shifted—the
|
||||
failure to meet a goal is often rooted in a failure to predict the
|
||||
future. I’m sure managers hope people will feel inspired and
|
||||
accountable to pursue their goals creatively, but in my experience they
|
||||
more often instill procrastination and anxiety. If there’s any
|
||||
creativity exhibited in annual goal rituals, it’s usually when people
|
||||
feel forced to weave a narrative that kinda-sorta connects a stated
|
||||
objective to whatever mostly-unrelated work they actually did.
|
||||
|
||||
To wit, I’ve never accomplished anything I felt proud of by setting a
|
||||
goal. In fact, the surest way to ensure I don’t do something is to set
|
||||
a goal. When asked to set goals for myself, I’ve found that expressing
|
||||
the goal (as opposed to achieving it) becomes my overriding objective.
|
||||
The moment a manager approved my list of goals, I felt that I had
|
||||
completed the work asked of me and I would instantly lose all
|
||||
motivation to pursue the goals themselves.
|
||||
|
||||
This explains why planting flags can succeed where goal-setting fails.
|
||||
If what I’m searching for is meaning in my work, setting a goal creates
|
||||
an expectation of where, when, and how my future self should find that
|
||||
meaning. High pressure. Focusing on doing my job well and reflecting on
|
||||
whatever I did in retrospect, however, has allowed me to sift through
|
||||
my experiences, identify patterns, and give meaning to them. Low
|
||||
pressure.
|
||||
|
||||
Instead of studying something you think you might need in the future,
|
||||
wait for the need to arise and then immerse yourself in learning it.
|
||||
Instead of feeling stressed and distracted by the fear that you’ll run
|
||||
out of time before hitting an annual goal, do your work diligently and
|
||||
look forward to the next opportunity to reflect on the things you’ll
|
||||
achieve. Instead of reducing your existence at work into a series of
|
||||
boxes to check in a prescribed career plan, focus on being truly
|
||||
present and intentional at work and open to wherever that might lead
|
||||
you.
|
||||
|
||||
[17]Who, me? Yes, you!
|
||||
|
||||
There’s just one last thing to talk about: you, and why you don’t
|
||||
already do this.
|
||||
|
||||
It’s not like this retrospective process of imbuing meaning into one’s
|
||||
work is particularly clever or insightful. I don’t think I’m a genius
|
||||
for arriving at the following three-step formula to having a deeply
|
||||
meaningful career and leaving a memorable legacy:
|
||||
1. Work really damn hard
|
||||
2. Occasionally gather highlights
|
||||
3. Commemorate them somehow
|
||||
|
||||
But if it’s so obvious, why don’t more people do this?
|
||||
|
||||
I wonder if it’s because everything above might seem like the exclusive
|
||||
domain of the Thoughtleader™ class. “I don’t have (or necessarily want)
|
||||
an audience to read my blog posts or watch me speak, so this ain’t for
|
||||
me!” you might be thinking.
|
||||
|
||||
This line of thinking is reasonable, but it’s based on an assumption
|
||||
that doesn’t always hold.
|
||||
|
||||
It’s true: if you believe the purpose of creating something borne out
|
||||
of your career experience is for other people to see and appreciate it,
|
||||
then maybe it makes no sense for you to bother. Not everyone craves
|
||||
attention. Building a following inevitably attracts a certain number of
|
||||
trolls. And if you build it, odds are people won’t come. I can’t
|
||||
guarantee anyone will run your code, read your blog, or watch your
|
||||
talk.
|
||||
|
||||
But here’s the thing: I create these things for me and me alone. When a
|
||||
bunch of people read something I wrote or show up to one of my talks,
|
||||
do I find it encouraging and validating? Sure. But it’s not what drives
|
||||
me. I started creating things to punctuate my life’s sentences long
|
||||
before anybody took an interest in me and I wouldn’t stop even if
|
||||
everyone loses interest in me.
|
||||
|
||||
What’s more, a lot of (ugh) content creators are the same way. In the
|
||||
course of my travels, I’ve gotten to meet many of my heroes, and while
|
||||
a few have disappointed me spectacularly (don’t meet your heroes!),
|
||||
I’ve found that a surprising number of them got into the
|
||||
thought-leading racket for the same selfish reason I did. They create
|
||||
stuff to scratch their own intrinsic creative itches and to give
|
||||
meaning to their careers. If other people’s attention factors in at
|
||||
all, it’s usually to justify the time they spend making stuff.
|
||||
|
||||
[18]Justin Searls
|
||||
|
||||
An icon of a human figure Status
|
||||
Double Agent
|
||||
|
||||
An icon of a hash sign Code Name
|
||||
Agent 002
|
||||
|
||||
An icon of a map marker Location
|
||||
Orlando, FL
|
||||
|
||||
[19]Twitter [20]Mastodon [21]Github [22]LinkedIn [23]Website
|
||||
|
||||
Related posts:
|
||||
|
||||
[24]16 things you believe about software
|
||||
|
||||
Over 6 years ago, I made up an unscientific personality quiz as a
|
||||
joke…and people can't help themselves—they're still filling it out!
|
||||
Here's what they think
|
||||
|
||||
An icon of a clock Publish Date
|
||||
October 10, 2023
|
||||
|
||||
An icon of a human figure Authors
|
||||
[25]Justin Searls
|
||||
|
||||
An icon of a paper organzier Categories
|
||||
[26]Community
|
||||
|
||||
[27]Shared values can make the difference for your engineering team
|
||||
|
||||
Ever feel challenged in how to level up your engineering team's
|
||||
effectiveness? Apply values in day-to-day work. That's how you build
|
||||
great software and great teams. Here's how Test Double does that.
|
||||
|
||||
An icon of a clock Publish Date
|
||||
February 20, 2023
|
||||
|
||||
An icon of a human figure Authors
|
||||
[28]Cathy Colliver
|
||||
|
||||
An icon of a paper organzier Categories
|
||||
[29]Leadership
|
||||
[30]Teams
|
||||
[31]Our Company
|
||||
|
||||
Looking for developers? Work with people who care about what you care about.
|
||||
|
||||
We level up teams striving to ship great code.
|
||||
|
||||
[32]Let's talk
|
||||
|
||||
[33]Home [34]Agency [35]Services [36]Careers [37]Blog [38]Contact
|
||||
|
||||
|
||||
[39]Mastodon [40]GitHub [41]LinkedIn [42]Twitter
|
||||
|
||||
[43]614.349.4279
|
||||
[44]hello@testdouble.com
|
||||
[45]Privacy Policy
|
||||
Founded in Columbus, OH
|
||||
|
||||
[46]Test Double
|
||||
|
||||
References
|
||||
|
||||
1. https://testdouble.com/
|
||||
2. https://testdouble.com/
|
||||
3. https://testdouble.com/agency
|
||||
4. https://testdouble.com/services
|
||||
5. https://testdouble.com/careers
|
||||
6. file:///
|
||||
7. https://testdouble.com/contact
|
||||
8. file:///
|
||||
9. file:///posts/
|
||||
10. file:///authors/justin-searls/
|
||||
11. https://x.com/TheAndrewNadeau/status/1647622603698257921
|
||||
12. https://www.amazon.com/Elon-Musk-Walter-Isaacson/dp/1982181281
|
||||
13. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60667-6621TMP.html#periodically-plant-a-flag
|
||||
14. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60667-6621TMP.html#how-to-plant-a-flag
|
||||
15. https://www.etsy.com/shop/PrincessEtch
|
||||
16. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60667-6621TMP.html#this-all-happens-in-hindsight
|
||||
17. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60667-6621TMP.html#who-me-yes-you
|
||||
18. file:///authors/justin-searls/
|
||||
19. https://twitter.com/searls
|
||||
20. https://mastodon.social/@searls
|
||||
21. https://github.com/searls
|
||||
22. https://linkedin.com/in/searls
|
||||
23. https://justin.searls.co/
|
||||
24. file:///posts/2023-10-10-16-things-you-believe-about-software/
|
||||
25. file:///authors/justin-searls/
|
||||
26. file:///categories/community
|
||||
27. file:///posts/2023-02-20-shared-values-make-the-difference/
|
||||
28. file:///authors/cathy-colliver/
|
||||
29. file:///categories/leadership
|
||||
30. file:///categories/teams
|
||||
31. file:///categories/our-company
|
||||
32. https://link.testdouble.com/blog-cta-sales
|
||||
33. https://testdouble.com/
|
||||
34. https://testdouble.com/agency
|
||||
35. https://testdouble.com/services
|
||||
36. https://testdouble.com/careers
|
||||
37. file:///
|
||||
38. https://testdouble.com/contact
|
||||
39. https://mastodon.social/@testdouble
|
||||
40. https://github.com/testdouble
|
||||
41. https://www.linkedin.com/company/testdouble
|
||||
42. https://twitter.com/testdouble
|
||||
43. tel:+16143494279
|
||||
44. mailto:hello@testdouble.com
|
||||
45. file://testdouble.com/privacy-policy
|
||||
46. file://testdouble.com/
|
||||
217
static/archive/brainbaking-com-wbhgjj.txt
Normal file
217
static/archive/brainbaking-com-wbhgjj.txt
Normal file
@@ -0,0 +1,217 @@
|
||||
GoatCounter stats
|
||||
|
||||
[1]skip to main content
|
||||
|
||||
[2]Brain Baking (BUTTON) navigation toggle
|
||||
* [3] Brain Baking
|
||||
* [4] Archives
|
||||
* [5] Subscribe
|
||||
|
||||
* [6] Works
|
||||
* [7] About
|
||||
* [8] Links
|
||||
|
||||
Favorites of December 2023
|
||||
|
||||
[9]1 January 2024
|
||||
|
||||
Happy New Year! Hopefully 2024 will bring the needed peace and solace
|
||||
to everyone. 2023 was a very difficult year for us, with lots of what
|
||||
you might call “low lows” and a few “high highs”. We usually make fun
|
||||
of that saying, but this seems like the first time it’s appropriate to
|
||||
use it.
|
||||
|
||||
As far as blogging goes, 2023 was a great year. See the Brain Baking
|
||||
[10]blog post archive for 2023: with 90 posts last year, that’s on
|
||||
average 7.5 a month or 1.875 a week. The best part about 2023 in
|
||||
blogging was the feedback I got, and the new friends and e-mail pen
|
||||
pals I made. As frequently mentioned before, [11]blogging keeps on
|
||||
giving. If there’s one thing I never ever intend to give up, it’s
|
||||
blogging.
|
||||
|
||||
The following posts turned out to be the most popular of 2023:
|
||||
1. [12]FPGAs And The Renaissance of Retro Hardware
|
||||
2. [13]Overlooked Reasons To Still Buy Physical Media
|
||||
3. [14]Goodbye, ProtonMail
|
||||
4. [15]Phomemo Thermal Printing On MacOS
|
||||
5. [16]DOOM Turned Thirty
|
||||
|
||||
As for Jefklak’s Codex, the most popular article was the one on
|
||||
[17]Freaky Trip, a bizarre (and very buggy) single-screen
|
||||
adventure/puzzle game. That one got a few hits simply because I
|
||||
couldn’t find any reviews online myself! As far as visitor counts go,
|
||||
the Codex gets almost none, but I still have a lot of fun filling it.
|
||||
It’s my own thing, and I’ve pondered on that subject recently in [18]On
|
||||
Writing For Yourself In Public.
|
||||
|
||||
Previous month: [19]October 2023.
|
||||
|
||||
Books I’ve read
|
||||
|
||||
Not much this month. Read my [20]2023 in books overview post to find
|
||||
out about the 22 books I managed to finish last year.
|
||||
|
||||
The Malloreon chronicles by [21]David Eddings continues to be my go-to
|
||||
bed-time material. Books 1 and 2 are done and although the tension
|
||||
doesn’t exactly build up, I don’t mind to keep on reading as it’s a
|
||||
light read and entertaining enough.
|
||||
|
||||
Games I’ve played
|
||||
|
||||
After finishing Super Mario Bros. Wonder, I continued with the 2D Mario
|
||||
strike with the Mario Land Game Boy series that evolved into Wario Land
|
||||
and Wario Land II. The best is yet to come, though, as Wario Land 3 is
|
||||
on my [22]25 Best Games of All Time list! I know them all by heart but
|
||||
still breeze through these platformers once every few years.
|
||||
|
||||
My wife discovered a cheap Switch eShop code for Mario + Rabbids:
|
||||
Kingdom Battle and since I love tactical turn-based games, I eagerly
|
||||
dove in. It’s okay so far: the core gameplay is very solid, but
|
||||
everything slathered on top is not my cup of tea. I’m nearing the end
|
||||
and will have a review up shortly. Meanwhile, Kristien insists on
|
||||
playing [23]Railbound, a cosy railway puzzle game with sometimes
|
||||
devilishly difficult levels! Most of the time, I just don’t “see it”,
|
||||
but we’re having fun together nonetheless.
|
||||
|
||||
Selected (blog) posts
|
||||
|
||||
* Gibru writes several interesting articles on AI and LLM generation,
|
||||
including [24]Contextualizing the Artistic Process.
|
||||
* Jonas Downey is convinced that having [25]side projects is
|
||||
essential for creatives, and I agree. This could grow into a
|
||||
powerful manifesto.
|
||||
* Cory Zue provides an overview on his side projects and why
|
||||
[26]building publicly in private works for him.
|
||||
* Keith McNulty explains why [27]the MBTI tests are corporate
|
||||
astrology (Medum link).
|
||||
* Michael Klamerus explains his process on [28]finding small indie
|
||||
games.
|
||||
* This sobering article at Eurogamer reminds us that in the video
|
||||
game industry, 2023 was also the year of low lows and high highs:
|
||||
[29]You Can’t Talk About Games Without Talking About The Layoffs.
|
||||
* Glyph explains how to set up the best possible [30]Phython
|
||||
development environment for MacOS. Don’t use brew install like I
|
||||
did.
|
||||
* Speaking of Python, [31]why is Python so slow? Jake VanderPlas
|
||||
deciphers the Python internals to figure out why.
|
||||
* Vlad-Stefan Harbuz’s blog is great: it’s a combination between
|
||||
computing and philosophical work. Here’s his [32]overview on
|
||||
resources on the philosophy of work I still have to dig into.
|
||||
* Here’s an interesting piece on [33]Mickey Mouse and the Public
|
||||
Domain. As of today, one of the earliest versions of Mickey hits
|
||||
public domain in USA.
|
||||
* [34]You Don’t Need Statistics On Your Blog says William Woodruff.
|
||||
Perhaps I should take on the challenge and ditch GoatCounter in
|
||||
favor of a few grep scripts in access logs, if that?
|
||||
|
||||
Other random links
|
||||
|
||||
* [35]Déjà Dup Backups is a Gnome-powered UI-friendly backup tool for
|
||||
Unix.
|
||||
* Did you know you can [36]Scheme in Scheme on WASM in the browser?
|
||||
wait what now? The Spritely Institute also has cool info on Lisp
|
||||
hackatons if that’s your jam.
|
||||
* If you want to follow physical video game releases, look no further
|
||||
than [37]https://www.physicalreleases.com/
|
||||
* The [38]Into The Aether Podcast released a six-hour long episode on
|
||||
the 2023 Game of the Year. It’s great, but I have been slogging
|
||||
through it on and off all week and I’m still just over 03:21:00
|
||||
hours/minutes in! Who decided that three-plus hours of jabbering
|
||||
about video games is a good thing? Because it totally is!
|
||||
|
||||
I hope to keep up the blogging rhythm in 2024. That’s everything I wish
|
||||
for in 2024 besides the obvious ones.
|
||||
|
||||
[39]metapost
|
||||
|
||||
You Might Also Like...
|
||||
|
||||
* [40]2023 In Books 28 Dec 2023
|
||||
* [41]DOOM Turned Thirty 11 Dec 2023
|
||||
* [42]FPGAs And The Renaissance Of Retro Hardware 27 Nov 2023
|
||||
* [43]On Writing For Yourself In Public 06 Nov 2023
|
||||
* [44]Favorites of October 2023 02 Nov 2023
|
||||
* [45]Top 25 Best Games Of All Time (GOAT) 08 Oct 2023
|
||||
* [46]Overlooked Reasons To Still Buy Physical Media 25 Sep 2023
|
||||
|
||||
Bio and Support
|
||||
|
||||
[47]A photo of Me!
|
||||
|
||||
I'm [48]Wouter Groeneveld, a Brain Baker, and I love the smell of
|
||||
freshly baked thoughts (and bread) in the morning. I sometimes convince
|
||||
others to bake their brain (and bread) too.
|
||||
|
||||
If you found this article amusing and/or helpful, you can support me
|
||||
via [49]PayPal or [50]Ko-Fi. I also like to hear your feedback via
|
||||
[51]Mastodon or email. Thanks!
|
||||
JavaScript is disabled. I use it to obfuscate my e-mail, keeping
|
||||
spambots at bay.
|
||||
Reach me using: [firstname] at [this domain].
|
||||
|
||||
↑ [52]Top
|
||||
[53]Brain Baking | [54]Archives | [55]© CC BY 4.0 License.
|
||||
|
||||
References
|
||||
|
||||
Visible links:
|
||||
1. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L61518-8406TMP.html#top
|
||||
2. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L61518-8406TMP.html
|
||||
3. file:///
|
||||
4. file:///archives
|
||||
5. file:///subscribe
|
||||
6. file:///works
|
||||
7. file:///about
|
||||
8. file:///links
|
||||
9. file:///post/2024/01/december-2023/
|
||||
10. file:///post/2023/
|
||||
11. file:///post/2021/10/a-triumph-for-blogging/
|
||||
12. file:///post/2023/11/fpgas-and-the-renaissance-of-retro-hardware/
|
||||
13. file:///post/2023/09/overlooked-reasons-to-still-buy-physical-media/
|
||||
14. file:///post/2023/01/goodbye-protonmail/
|
||||
15. file:///post/2023/02/phomemo-thermal-printing-on-macos/
|
||||
16. file:///post/2023/12/doom-turned-thirty/
|
||||
17. https://jefklakscodex.com/games/switch/freaky-trip/
|
||||
18. file:///post/2023/11/on-writing-for-yourself-in-public/
|
||||
19. file:///post/2023/11/october-2023
|
||||
20. file:///post/2023/12/2023-in-books
|
||||
21. https://www.eddingschronicles.com/index.html
|
||||
22. file:///post/2023/10/top-25-best-games-of-all-time
|
||||
23. https://store.steampowered.com/app/1967510/Railbound/
|
||||
24. https://elusivewordsmith.com/posts/Playground/contextualizing/
|
||||
25. https://jonas.do/writing/2023-10-05-side-projects/
|
||||
26. https://www.coryzue.com/writing/building-in-private/
|
||||
27. https://medium.com/swlh/the-mbti-is-corporate-astrology-c132d93e684f
|
||||
28. https://virtualmoose.org/2023/12/13/finding-indie-games/
|
||||
29. https://www.eurogamer.net/you-cant-talk-about-2023-in-games-without-talking-about-layoffs
|
||||
30. https://blog.glyph.im/2023/08/get-your-mac-python-from-python-dot-org.html
|
||||
31. http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/
|
||||
32. https://vladh.net/wage-labour-resources/
|
||||
33. https://web.law.duke.edu/cspd/mickey/
|
||||
34. https://blog.yossarian.net/2023/12/24/You-dont-need-analytics-on-your-blog
|
||||
35. https://apps.gnome.org/en-GB/DejaDup/
|
||||
36. https://spritely.institute/news/scheme-in-scheme-on-wasm-in-the-browser.html
|
||||
37. https://www.physicalreleases.com/
|
||||
38. https://intothecast.online/
|
||||
39. https://brainbaking.com/tags/metapost
|
||||
40. file:///post/2023/12/2023-in-books/
|
||||
41. file:///post/2023/12/doom-turned-thirty/
|
||||
42. file:///post/2023/11/fpgas-and-the-renaissance-of-retro-hardware/
|
||||
43. file:///post/2023/11/on-writing-for-yourself-in-public/
|
||||
44. file:///post/2023/11/october-2023/
|
||||
45. file:///post/2023/10/top-25-best-games-of-all-time/
|
||||
46. file:///post/2023/09/overlooked-reasons-to-still-buy-physical-media/
|
||||
47. https://brainbaking.com/
|
||||
48. file:///about
|
||||
49. https://www.paypal.com/donate/?hosted_button_id=R2WTKY7G9V2KQ
|
||||
50. https://ko-fi.com/woutergroeneveld
|
||||
51. https://dosgame.club/@jefklak
|
||||
52. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L61518-8406TMP.html#header
|
||||
53. file:///
|
||||
54. file:///archives
|
||||
55. file:///copyright-and-tracking-policy
|
||||
|
||||
Hidden links:
|
||||
57. file://localhost/
|
||||
58. file://localhost/var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L61518-8406TMP.html#related
|
||||
59. file://localhost/var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L61518-8406TMP.html#bio
|
||||
703
static/archive/sive-rs-ssi9lg.txt
Normal file
703
static/archive/sive-rs-ssi9lg.txt
Normal file
@@ -0,0 +1,703 @@
|
||||
#[1]alternate
|
||||
|
||||
[2]Derek Sivers
|
||||
|
||||
Tech Independence
|
||||
|
||||
Contents:
|
||||
|
||||
0. [3]What?
|
||||
1. [4]Register a domain
|
||||
2. [5]Change DNS nameservers
|
||||
3. [6]Create storage
|
||||
4. [7]Create an SSH key
|
||||
5. [8]Create your server
|
||||
6. [9]SSH into root
|
||||
7. [10]Customize these instructions
|
||||
8. [11]Use your storage
|
||||
9. [12]Contacts and Calendar
|
||||
10. [13]Email sending
|
||||
11. [14]Email settings
|
||||
12. [15]Simple website
|
||||
13. [16]File sharing in /pub/
|
||||
14. [17]More indie tips
|
||||
15. [18]More storage?
|
||||
16. [19]Mutt = email in terminal
|
||||
17. [20]Upkeep
|
||||
18. [21]Certificate expired?
|
||||
19. [22]Trouble? Start over
|
||||
20. [23]Questions? Additions?
|
||||
__________________________________________________________________
|
||||
|
||||
What?
|
||||
|
||||
Tech independence is not depending on any particular company or
|
||||
software.
|
||||
|
||||
The only tools you need are the common open source basics built into
|
||||
any Linux or BSD operating system — free public-domain tools that are
|
||||
not owned by anyone, and can run on any computer.
|
||||
|
||||
Learn a few of these basic tools, and you can run your own private
|
||||
server on any computer forever, for the rest of your life. Host your
|
||||
own website and email. Keep your own contacts and calendars synced with
|
||||
your phone. Back up and sync your photos, movies, and music to your own
|
||||
private storage. No more subscriptions needed.
|
||||
|
||||
You can ignore all the companies offering “solutions”, even if they are
|
||||
free, because they take away self-reliance. The point is to know how to
|
||||
do it yourself, not to have somebody do it for you. It’s worth a little
|
||||
up-front work, like learning how to drive.
|
||||
|
||||
Below are simple step-by-step instructions that work. Instead of
|
||||
drowning you in options, it uses an operating system called [24]OpenBSD
|
||||
and a hosting company called [25]Vultr because I’ve used them for years
|
||||
and I know they are good and trustworthy. But you could do this same
|
||||
setup with any free Linux or BSD operating system, with any hosting
|
||||
company that gives you “root” access to your own private server. You
|
||||
could even do it on an old laptop in your closet.
|
||||
|
||||
So if a company turns evil or goes out of business, no problem! You can
|
||||
set up a new server anywhere else in an hour, point your domain name to
|
||||
the new IP address, and it’s done. That’s tech independence — never
|
||||
dependent on any particular provider or software. It’s very empowering.
|
||||
The instructions below will show you how.
|
||||
|
||||
Register a domain
|
||||
|
||||
1. Go to [26]Porkbun.com.
|
||||
2. Search for a domain name you like until you find one that’s
|
||||
available.
|
||||
3. Create a new account, and pay.
|
||||
4. Congratulations. You’ll use this domain name in many of the steps
|
||||
below.
|
||||
|
||||
Change DNS nameservers to vultr
|
||||
|
||||
1. Wherever you registered your domain name, log in there to change
|
||||
your domain’s DNS nameservers.
|
||||
2. It’s usually set by default to the company where you registered. So
|
||||
for example a domain registered at GoDaddy will have default
|
||||
nameservers of something.godaddy.com.
|
||||
3. Replace those defaults with these two:
|
||||
+ ns1.vultr.com
|
||||
+ ns2.vultr.com
|
||||
|
||||
Create storage
|
||||
|
||||
1. Go to [27]Vultr.com.
|
||||
2. Create an account and give it your credit card.
|
||||
3. [28]Click here for the “[29]Add Block Storage” page.
|
||||
4. Click “Block Storage (HDD)”, which says “Globally Available”
|
||||
5. Below that, a list of cities. Click the one closest to you.
|
||||
6. Below that, a slider lets you choose how much storage you need. If
|
||||
not sure, just leave it as $1 for 40 GB.
|
||||
7. Below that, in a subtle box that says “label” type the word
|
||||
encrypted.
|
||||
8. Below that, click the “Add Block Storage” button.
|
||||
|
||||
Create an SSH key
|
||||
|
||||
1. Open a terminal.
|
||||
+ Windows? Start → Windows PowerShell → Windows PowerShell
|
||||
+ Mac? Applications → Utilities → Terminal
|
||||
2. Type ssh-keygen -t ed25519 and hit [enter] or [return].
|
||||
3. When it says, “Enter file in which to save the key
|
||||
(/Users/yourname/.ssh/id_ed25519):”, hit [enter] or [return].
|
||||
4. When it says, “Enter passphrase (empty for no passphrase):”, hit
|
||||
[enter] or [return].
|
||||
5. When it says, “Enter same passphrase again:”, hit [enter] or
|
||||
[return].
|
||||
6. See the line that starts, “Your public key has been saved in” and
|
||||
ends in “id_ed25519.pub”? That’s the file you need for the next
|
||||
step.
|
||||
7. In a text editor, open “id_ed25519.pub”.
|
||||
+ Windows? Type notepad .ssh/id_ed25519.pub
|
||||
+ Mac? Type open -e .ssh/id_ed25519.pub
|
||||
8. It should be a single line like this:
|
||||
ssh-ed25519 AAAAC3Nz5AAAAIPIXO5icj4LUpqa2baqYQRmCZ1+NV4sBDr you@com
|
||||
puter
|
||||
9. You’ll use this in the next step: “[30]Create your server”.
|
||||
|
||||
Create your server
|
||||
|
||||
1. In your [31]Vultr.com account:
|
||||
2. [32]Click here for the “[33]Deploy New Instance” page.
|
||||
3. Click “Cloud Compute” (NOT “Optimized Cloud Compute”)
|
||||
4. Below that, click “Intel Regular Performance”
|
||||
5. Below that, IMPORTANT: click the same city you chose for your
|
||||
encrypted storage in the previous step.
|
||||
6. Below that, click “OpenBSD” (the yellow blowfish) then inside its
|
||||
box, click “7.4 x64”
|
||||
7. Below that, under Server Size, click “25 GB SSD $5/month”
|
||||
8. A blue pop-up appears underneath, up-selling “For only $1.00 more
|
||||
you can...”. Click “No thanks”.
|
||||
9. Scroll down to “SSH Keys”, click “Add New”, then under “Name” type
|
||||
mykey.
|
||||
10. From [34]the previous section, step 3, copy (⌘-C or Ctrl-C) the
|
||||
contents of “id_ed25519.pub” and paste it into this box called “SSH
|
||||
Key”. It should be a single line like this:
|
||||
ssh-ed25519 AAAAC3NzaC1XO5iclCcrHbGRPoj4LUpqa2baqYQRmCZ1+NV4sBDr
|
||||
you@computer
|
||||
11. After pasting it into the box, click [Add SSH Key].
|
||||
12. Under SSH Keys, click the box with the picture of the key called
|
||||
“mykey” to give it a tick mark in the top-right corner.
|
||||
13. Scroll up to “Enable Auto Backups”, click the “on” toggle button to
|
||||
turn it OFF.
|
||||
14. A scary pop-up says “Are you sure....”. Tick the box next to “I
|
||||
understand the risks”, then click the red button “Disable Auto
|
||||
Backups”.
|
||||
15. Under “Additional Features”, untick the box next to “Enable IPv6”,
|
||||
to disable it.
|
||||
16. Under “Server Hostname & Label”, type your domain name in both
|
||||
“server hostname” and “server label”.
|
||||
17. At the bottom, click the big blue button [“Deploy Now”].
|
||||
18. Stretch your legs for a minute while waiting for your server status
|
||||
to change from “Installing” to “Running”.
|
||||
19. Copy and save its IP Address on your computer.
|
||||
|
||||
SSH into root, and get my script
|
||||
|
||||
1. Copy (⌘-C or Ctrl-C) the IP Address from the last step of
|
||||
[35]Create Your Server.
|
||||
2. Open your terminal from the [36]Create an SSH key section.
|
||||
3. Whenever I say to type something into the terminal, hit your
|
||||
[return] or [enter] key afterwards.
|
||||
4. Type into the terminal: ssh root@YOUR-IP-ADDRESS. So for example:
|
||||
ssh root@123.45.67.89
|
||||
5. It should say something like:
|
||||
The authenticity of host '123.45.67.78 (123.45.67.89)' can’t be established.
|
||||
ED25519 key fingerprint is SHA256:OyiqVsjRX8U2f0UTUY4D0erdl6855YNRXyQk2D.
|
||||
This key is not known by any other names
|
||||
Are you sure you want to continue connecting (yes/no/[fingerprint])?
|
||||
6. Type yes
|
||||
7. It should say something like:
|
||||
Warning: Permanently added '123.45.67.89' (ED25519) to the list of known hosts.
|
||||
OpenBSD 7.4 (GENERIC.MP) #1396: Sun Oct 8 09:20:40 MDT 2023
|
||||
Welcome to OpenBSD: The proactively secure Unix-like operating system.
|
||||
8. Congratulations! You’re inside a remote computer!
|
||||
9. Type ftp https://sive.rs/ti.sh
|
||||
10. Type sh ti.sh
|
||||
11. Watch it install, answer its questions, and do what it says.
|
||||
12. Be ready to open a new terminal window, so you can leave this one
|
||||
logged-in.
|
||||
13. See below for help with its prompts.
|
||||
|
||||
Customize these instructions
|
||||
|
||||
Enter your domain name and the username that you create, below, and
|
||||
this will customize all following instructions for you.
|
||||
Your domain name? ____________________ Your username?
|
||||
____________________ customize
|
||||
|
||||
Now when you see this button: (BUTTON) 📋 click it to copy that line so
|
||||
you can paste it into your terminal, without error.
|
||||
|
||||
Use your encrypted storage
|
||||
|
||||
The [37]ti.sh script will eventually prompt you, “Now upload anything
|
||||
while I wait...”. Here’s how.
|
||||
|
||||
Mac
|
||||
|
||||
Type rsync -avz Documents yourusername@yourdomain.name:/mnt/ and you
|
||||
will see it uploading your Documents folder to your private encrypted
|
||||
storage. Use this same format to upload any other folders, replacing
|
||||
“Documents” in the command. If you are happy synchronizing on the
|
||||
command line like this, you can skip over the next FreeFileSync
|
||||
section.
|
||||
|
||||
[38]FreeFileSync
|
||||
|
||||
Everyone using Windows should use [39]FreeFileSync. Here’s how:
|
||||
1. [40]Download FreeFileSync and please give an optional donation
|
||||
there if you can afford to. Donating also unlocks more features.
|
||||
Thanks to Jon Lis for the recommendation.
|
||||
2. Install and open FreeFileSync.
|
||||
3. Top-center: click the grey [Browse] button and find the folder with
|
||||
the stuff you want to upload.
|
||||
4. Top-far-right: click the white cloud icon then SFTP at the top.
|
||||
5. Server name or IP address: yourdomain.name
|
||||
6. Left side: click (*) Key File
|
||||
7. Username: yourusername
|
||||
8. Browse to find your private key, called id_ed25519 from the
|
||||
“[41]Create an SSH key” section. (Not the file that ends in “.pub”,
|
||||
but the one next to it.) NOTE: Because the /Users/yourusername/.ssh
|
||||
directory is “hidden” by Windows and Mac by default, I find it
|
||||
easier to just type the path directly, like this:
|
||||
+ The username, for this next line, should be your username on
|
||||
your home computer, not your remote server.
|
||||
+ Windows? Type (BUTTON) 📋C:\Users\yourusername\.ssh\id_ed25519
|
||||
+ Mac? Type (BUTTON) 📋/Users/yourusername/.ssh/id_ed25519
|
||||
9. Directory on server: /mnt
|
||||
10. Click OK to go back to the main screen.
|
||||
11. Top-right: click the green gear wheel.
|
||||
12. Left button: click “MIRROR →”
|
||||
13. Click OK to go back to the main screen.
|
||||
14. Top-center: click “COMPARE”, and make sure your files are there.
|
||||
15. Top-right: click “SYNCHRONIZE Mirror →” then [Start]
|
||||
|
||||
Verify and unmount
|
||||
|
||||
1. When it’s done uploading, log in to your server again, from your
|
||||
terminal.
|
||||
2. Type find /mnt
|
||||
3. You should see a long list of the files you uploaded.
|
||||
4. Type m-x to detach your encrypted storage.
|
||||
5. Type find /mnt again, and now you should see nothing there!
|
||||
Congratulations! You now see how this will work in the future:
|
||||
1. Log in and type “m” to attach your encrypted storage.
|
||||
2. Upload your files with rsync or FreeFileSync.
|
||||
3. Log in and type “m-x” to detach the storage, for security.
|
||||
|
||||
Contacts and Calendar
|
||||
|
||||
Your phone currently keeps its contacts and calendars with Google or
|
||||
Apple. Now you can get them off the cloud and keep them privately on
|
||||
your own server.
|
||||
|
||||
My [42]ti.sh setup script installs a [43]CardDAV server for contacts,
|
||||
and [44]CalDAV server for calendars.
|
||||
|
||||
Here’s how to connect your phone.
|
||||
|
||||
Android phone
|
||||
|
||||
You need an app called “[45]DAVx⁵”, so [46]install it first. Then…
|
||||
1. Open the DAVx⁵ app
|
||||
2. Click the orange (+) in the bottom-right
|
||||
3. Click (·) “Login with URL and user name”
|
||||
4. Base URL: https://dav.yourdomain.name/
|
||||
5. User name: yourusername
|
||||
6. Password: the “easy to type on your phone” password you made
|
||||
7. Click “LOGIN” in the bottom-right corner.
|
||||
8. It should work and bring you to the “Create account” page, where
|
||||
“Account name” will be yourusername. Leave everything as-is and
|
||||
click “CREATE ACCOUNT” in the bottom-right corner.
|
||||
9. It brings you to the “CARDDAV” header. Tick the toggle to turn on
|
||||
next to your domain name.
|
||||
10. Click the ♻ arrows in the bottom-right corner to synchronize your
|
||||
contacts.
|
||||
11. Click the “CALDAV” header up top. Tick the toggle to turn on next
|
||||
to your domain name.
|
||||
12. Click the ♻ arrows in the bottom-right corner to synchronize your
|
||||
calendar.
|
||||
13. Go to your Calendar app, and in the top-right corner, click the
|
||||
round icon there. (Might be your face or a letter.) Then change it
|
||||
to the one with yourusername. After changing it, click the X in the
|
||||
top-left corner.
|
||||
14. To add a new Event, Click [+] in the bottom-right corner, and
|
||||
choose “Event” from the popup menu.
|
||||
15. There might be a warning, “Switch to a Google Account to take
|
||||
advantage blah blah…”. Click “dismiss”.
|
||||
16. Title this event something like “Test Delete”, and notice it should
|
||||
be saving to the calendar with your domain name and username. Click
|
||||
(Save) in the top-right corner.
|
||||
17. Check the terminal window where it should say “Calendar entry
|
||||
added!”
|
||||
18. Go to your Contacts app, and in the bottom-right corner, click “Fix
|
||||
& manage”.
|
||||
19. Click “Settings”
|
||||
20. Near the bottom, click “Default account for new contacts”, and
|
||||
change it to the DAVx⁵ Address book with your domain name.
|
||||
21. Click “< Settings” in the top-left corner.
|
||||
22. In the top-right corner, click the round icon there. (Might be your
|
||||
face or a letter.) Then change it to the DAVx⁵ Address book with
|
||||
your domain name. Then click X in the top-left corner.
|
||||
23. Click “Contacts” in the bottom-left corner. It should say “No
|
||||
contacts in this account”.
|
||||
24. Click + in the bottom-right corner to Create contact. Top of the
|
||||
next page should say “Save to” then your domain name.
|
||||
25. Add a New Contact with a name like “Test Delete”. Then click “Save”
|
||||
in the top-right corner.
|
||||
26. Check the terminal window where it should say “Contact added! Both
|
||||
work. Congratulations.”
|
||||
|
||||
Apple iPhone
|
||||
|
||||
1. Settings → Contacts → Accounts → Add Account → Other → (under
|
||||
“CONTACTS”:) Add CardDAV Account
|
||||
2. Server: dav.yourdomain.name
|
||||
3. User Name: yourusername
|
||||
4. Password: the “easy to type on your phone” password you made
|
||||
5. Click “next” in the top right corner, and it should bring you to
|
||||
your “Accounts” page, where you see it listed, saying “Contacts”
|
||||
underneath.
|
||||
6. Click Add Account → Other → (under “CALENDARS”:) Add CalDAV Account
|
||||
7. Server: dav.yourdomain.name
|
||||
8. User Name: yourusername
|
||||
9. Password: the “easy to type on your phone” password you made
|
||||
10. Click “next” in the top right corner, and it should bring you to a
|
||||
“CalDAV” page, showing Calendars and Reminders. Un-tick Reminders.
|
||||
11. Click “save” in the top right corner, and it should bring you to
|
||||
your “Accounts” page, where you see it listed, saying “Calendars”
|
||||
underneath.
|
||||
12. Click “< Contacts” in the top-left corner, to go back to settings
|
||||
for your Contacts app.
|
||||
13. At the bottom change Default Account to the one with
|
||||
yourdomain.name.
|
||||
14. Click “< Contacts” then “< Settings”, both in the top-left corner,
|
||||
then scroll down to Calendar settings and click it.
|
||||
15. In Calendar settings, 2nd from the bottom should say “Default
|
||||
Calendar”. Tap to change it to the one with yourdomain.name.
|
||||
16. Go to your Calendar app and click the + in the top-right corner.
|
||||
17. Add a New Event with a Title like “Test Delete”. Then click “Add”
|
||||
in the top-right corner.
|
||||
18. Check the terminal window where it should say “Calendar entry
|
||||
added!”
|
||||
19. Go to your Contacts app and click the + in the top-right corner.
|
||||
20. Add a New Contact with a name like “Test Delete”. Then click “Done”
|
||||
in the top-right corner.
|
||||
21. Check the terminal window where it should say “Contact added! Both
|
||||
work. Congratulations.”
|
||||
|
||||
Email sending
|
||||
|
||||
1. Go to [47]Mailjet.com and sign up for their free account.
|
||||
2. Go to [48]this page for API keys and [Generate secret key]
|
||||
3. Give the [49]ti.sh script your API key and Secret key, and it will
|
||||
do the rest.
|
||||
|
||||
Email settings
|
||||
|
||||
To do email from your phone, computer, or anywhere else, you now have
|
||||
an [50]IMAP server, called [51]Dovecot. So on any device, you can add a
|
||||
new IMAP Mail account, with these settings:
|
||||
* Account type: IMAP
|
||||
* Email address: yourusername@yourdomain.name
|
||||
* Username: yourusername
|
||||
* Password: the password you made for your username on your server
|
||||
* Incoming mail server: yourdomain.name
|
||||
* Outgoing mail server: yourdomain.name
|
||||
* Connection security: SSL
|
||||
* Authentication type: Basic authentication
|
||||
|
||||
Simple website
|
||||
|
||||
1. On your home computer, in your main home directory, make a
|
||||
directory/folder called “htdocs”
|
||||
2. [52]Download this file called “template.html” and save it in your
|
||||
“htdocs” directory.
|
||||
3. [53]Download this file called “style.css” and also save it in your
|
||||
“htdocs” directory.
|
||||
4. Make a copy of the “template.html” file, and name the copy
|
||||
“index.html”. This will be your home page.
|
||||
5. Edit the index.html file in a text editor (NotePad or TextEdit) and
|
||||
change my default text to whatever you want.
|
||||
6. When you need to add a new page, just copy the template again, call
|
||||
it “about.html” or whatever, and make a link to it from the home
|
||||
page. The header of each page will link back to index.html : your
|
||||
home page.
|
||||
7. If you want to change the look of your site, just edit the
|
||||
style.css file. [54]Search the web for “CSS tutorial” if needed.
|
||||
8. To upload it to your public server, do one of the next two steps:
|
||||
9. Apple Mac? Open a new terminal window on your computer, type
|
||||
rsync -avz htdocs yourusername@yourdomain.name:/var/www/
|
||||
10. Windows? [55]FreeFileSync again, but now change the “Directory on
|
||||
server” to /var/www/ (you can find it by clicking [browse] or
|
||||
typing it directly) then upload this htdocs directory there.
|
||||
11. Go to https://yourdomain.name in your web browser, refresh the
|
||||
page, and you should see your updated website.
|
||||
12. Any trouble, just know that the goal is to get that index.html file
|
||||
into this location on your server: /var/www/htdocs/index.html
|
||||
because that’s where the web server is expecting it to be. That’s
|
||||
where we put the original test file, so your new index.html file
|
||||
should replace that one.
|
||||
13. If you want [56]short URLs, without the .html, you can (for
|
||||
everything except index.html) because I set the default type to be
|
||||
HTML. Just remove the “.html” from your HTML filenames, update your
|
||||
links, and voilà!
|
||||
|
||||
It’s important to know how to make a simple website by hand, and not
|
||||
let people sell you on complex solutions that are the equivalent of
|
||||
saying you need a jumbo jet when you really need a bicycle. For real
|
||||
tech independence, start by typing your HTML files yourself. Only
|
||||
later, after you have many many pages, consider a more complicated
|
||||
solution.
|
||||
|
||||
File sharing in /pub/
|
||||
|
||||
Your website is configured to list all files in the /pub/ directory of
|
||||
your website. So basically anything in /var/www/htdocs/pub/ is public.
|
||||
Upload any files you want to share.
|
||||
|
||||
It replaces Dropbox and similar services for sending big files. Just
|
||||
upload the file to /var/www/htdocs/pub/ then find it in your web
|
||||
browser, copy its URL, and send someone the URL.
|
||||
|
||||
If the files you want to share are already on your computer, then just
|
||||
make a pub/ directory inside htdocs/ (so, htdocs/pub/), put your files
|
||||
in there, then use FreeFileSync or rsync to upload them as you did in
|
||||
the previous section called “[57]Simple website”. Consider them part of
|
||||
your website.
|
||||
|
||||
Or if you have a URL from somewhere else online that you want to
|
||||
download to your server, just do it as we did in the numbered steps
|
||||
above. Then use FreeFileSync or rsync to download from your server to
|
||||
your computer first, before your next upload sync.
|
||||
|
||||
More indie tips
|
||||
|
||||
1. Use [58]Firefox.
|
||||
2. Install [59]uBlock Origin in Firefox and Chrome.
|
||||
3. In Firefox settings, under “Privacy and Security”, choose “[X]
|
||||
Delete cookies and site data when Firefox is closed”, then close
|
||||
Firefox often to erase all your cookies and logins. Browse the web
|
||||
anonymously, not logged-in.
|
||||
4. Replace Google Authenticator with [60]Aegis on Android or [61]Raivo
|
||||
on iPhone.
|
||||
5. If you use Windows, replace it with [62]Ubuntu Linux. (Use both at
|
||||
first, then slowly transition.)
|
||||
6. Keep your new email address as a [63]private email account that you
|
||||
only give to those few people who you really want to hear from.
|
||||
Then your old gmail/yahoo/outlook/etc address can be just
|
||||
low-priority junk, and your new private email account won’t need
|
||||
spam protection.
|
||||
7. Or if you don’t want to run your own email server, use
|
||||
[64]Mailbox.org or [65]Fastmail but only by using your own domain
|
||||
name. Be yourusername@yourdomain.name from now on. Don’t depend on
|
||||
anyone else’s domain for your email or you’ll be stuck with them.
|
||||
|
||||
More storage?
|
||||
|
||||
If you need hundreds of gigabytes, or even terabytes of storage, I
|
||||
recommend Hetzner’s “[66]Storage Box”. It’s the best storage value I’ve
|
||||
found. Also consider [67]Backblaze Personal Backup.
|
||||
|
||||
I personally use Vultr’s storage (as described above) for sensitive
|
||||
information I definitely want completely encrypted. Then I use
|
||||
Hetzner’s Storage Box for all my photos, videos, music, and other big
|
||||
files that don’t absolutely need to be encrypted.
|
||||
|
||||
Mutt = email in the terminal
|
||||
|
||||
Unless you want to read email directly on your server, skip this step.
|
||||
1. ssh in to your server, then type mutt
|
||||
2. You should see the subject headers, with the first email
|
||||
highlighted. Type j and k a few times to go down and up the list of
|
||||
emails.
|
||||
3. To read an email, hit [enter] or [return] when it is highlighted.
|
||||
4. To go back to the list, type i (for “index”)
|
||||
5. To reply, hit r then:
|
||||
+ It shows “To:” so you can edit or add recipients. Hit [enter]
|
||||
or [return] to leave it.
|
||||
+ It shows “Subject:” so you can edit the subject. Hit [enter]
|
||||
or [return] to leave it.
|
||||
+ It asks “Include message in reply? ([yes]/no/?):”. Hit [enter]
|
||||
or [return] for the usual norm of echoing someone’s email back
|
||||
at them below your reply. Or n for not.
|
||||
+ Now you are inside the [68]vi text editor which is not
|
||||
self-explanatory, so I’ll walk you through a simple reply:
|
||||
+ Hit i (no [return] or [enter]) to go into “insert mode” and
|
||||
type your message. You’ll notice it’s on the same line as some
|
||||
other text, so you might want to start by hitting [return] or
|
||||
[enter] a few times, then up-arrow to go back to the first
|
||||
line again.
|
||||
+ When done typing your message, hit your [esc] key in the very
|
||||
top-left corner of your keyboard. Nothing will change on the
|
||||
screen, yet.
|
||||
+ Type :wq (the “:” at the beginning is important) then [enter]
|
||||
or [return].
|
||||
+ Then you’ll see the “Compose Menu” which I think of as the
|
||||
“last chance before sending” screen. Hit y to send it.
|
||||
6. To send a new email, hit m then repeat those steps like you did for
|
||||
a reply, except now the “To:” and “Subject:” are blank and waiting
|
||||
for you to create. (For “To:”, type the email address of the person
|
||||
you’re emailing.)
|
||||
7. To quit, hit q
|
||||
|
||||
[69]Mutt is a great program for reading and sending email on the
|
||||
command line. It’s been my email client for 20 years. [70]Read its
|
||||
manual here if you want to go deeper. It does everything.
|
||||
|
||||
The [71]vi text editor is a useful tool to edit text on a server. It
|
||||
takes a few minutes to learn, but it’s worth learning because it’s
|
||||
installed by default on every Linux/BSD server.
|
||||
|
||||
Upkeep
|
||||
|
||||
You honestly don’t have to do anything to maintain your server. It will
|
||||
just work as-is for decades! But if you like to keep it up-to-date, it
|
||||
only takes a minute, so run these next steps any time.
|
||||
1. Log in to your server, if you are not already.
|
||||
2. Type (BUTTON) 📋doas su
|
||||
3. Type (BUTTON) 📋syspatch
|
||||
4. Type (BUTTON) 📋fw_update
|
||||
5. Type (BUTTON) 📋pkg_add -u
|
||||
6. Type (BUTTON) 📋sysupgrade
|
||||
7. Type exit; exit to log out.
|
||||
|
||||
If that last “sysupgrade” step did not give an “Error retrieving … 404
|
||||
Not Found” error, that means your OpenBSD operating system is upgrading
|
||||
itself. They release an upgrade every 6 months. In that case, [72]go to
|
||||
this OpenBSD page and follow the link at the top that says “Upgrading
|
||||
to (7.4, etc)” to see if there’s anything else you should know.
|
||||
|
||||
If the “sysupgrade” step updated your operating system and your server
|
||||
rebooted, then there is just one more step:
|
||||
1. Log in to your server, if you are not already.
|
||||
2. Type (BUTTON) 📋doas su
|
||||
3. Type (BUTTON) 📋sysmerge
|
||||
4. Follow any instructions. Don’t worry about messing up because you
|
||||
can always start over, as described below.
|
||||
5. Re-do the syspatch ; fw_update ; pkg_add -u steps, above.
|
||||
6. Type exit; exit to log out.
|
||||
|
||||
Secure certificate expired?
|
||||
|
||||
1. Log in to your server, if you are not already.
|
||||
2. Type (BUTTON) 📋doas su
|
||||
3. Type (BUTTON) 📋domain=yourdomain.name
|
||||
4. Type (BUTTON) 📋acme-client -v $domain
|
||||
5. Type (BUTTON) 📋rcctl restart relayd
|
||||
6. That should fix it. Confirm it in your web browser. [73]Let me know
|
||||
if not.
|
||||
7. IMPORTANT: Copy-paste this next line to make it renew automatically
|
||||
from now on:
|
||||
8. (BUTTON) 📋(crontab -l 2>/dev/null; echo
|
||||
"11\t3\t*\t*\t5\tacme-client $domain \&\& rcctl reload relayd") |
|
||||
crontab -
|
||||
9. Hit [enter]. Type exit; exit to log out.
|
||||
10. [74]Let me know if it happens again. (It shouldn’t.)
|
||||
|
||||
Trouble? Start over
|
||||
|
||||
I’ve tested the steps above very carefully and repeatedly. They work.
|
||||
So if you hit a major problem, something not happening like it says it
|
||||
should, please do this:
|
||||
1. Type “cd ; m-x ; exit” in any terminals you still have open, until
|
||||
they are all closed.
|
||||
2. Go to [75]your Vultr account.
|
||||
3. See your server instance? See to the far right, a subtle ···? Click
|
||||
that.
|
||||
4. From its pop-up menu, click the last option: “Server Destroy”.
|
||||
5. Tick the box next to “[X] Yes, destroy this server.”
|
||||
6. Click the big red [Destroy Server] button.
|
||||
7. This will not destroy your encrypted storage. That’s another reason
|
||||
we kept it separate from the start. So if you already uploaded a
|
||||
bunch of your files and want to save them, they should still be
|
||||
there.
|
||||
8. On your own computer, in the terminal, type: rm .ssh/known_hosts
|
||||
9. Go back to the section called “[76]Create your server” and try
|
||||
again.
|
||||
|
||||
Questions? Additions?
|
||||
|
||||
To learn more about your new server, just log in and type: [77]help
|
||||
It will teach you the basics. Then for each command or file you want to
|
||||
know more about, type [78]man followed by the command or filename. So
|
||||
for example, log in and type…
|
||||
* man [79]adduser
|
||||
* man [80]ssh
|
||||
* man [81]doas
|
||||
* man [82]rcctl
|
||||
* man [83]pkg_add
|
||||
* man [84]ftp
|
||||
* man [85]httpd.conf
|
||||
|
||||
Hit your [space] bar to scroll the page, then q to quit.
|
||||
|
||||
It’s one of the most wonderful things about OpenBSD: everything you
|
||||
need to know is in those man pages! No need for YouTube, Google,
|
||||
ChatGPT, or any other advertising-driven sources of information.
|
||||
|
||||
I will constantly improve this page, so [86]get on my private email
|
||||
list for updates.
|
||||
|
||||
Until then, ask any questions. If something went wrong, please give me
|
||||
a very specific description of exactly what went wrong at what step,
|
||||
what it was supposed to do, and what exactly it actually did. [87]Click
|
||||
here to email me.
|
||||
|
||||
Requests for what to add? Again, just [88]email me.
|
||||
|
||||
References
|
||||
|
||||
1. file:///en.atom
|
||||
2. file:///
|
||||
3. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#why
|
||||
4. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#register
|
||||
5. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#dns0
|
||||
6. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#storage1
|
||||
7. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#ssh
|
||||
8. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#server1
|
||||
9. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#server2
|
||||
10. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#custom
|
||||
11. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#storage4
|
||||
12. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#radicale
|
||||
13. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#mailjet
|
||||
14. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#mail3
|
||||
15. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#web1
|
||||
16. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#web2
|
||||
17. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#indie
|
||||
18. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#storage5
|
||||
19. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#mutt
|
||||
20. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#upkeep
|
||||
21. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#cert
|
||||
22. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#redo
|
||||
23. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#questions
|
||||
24. file:///openbsd
|
||||
25. https://www.vultr.com/?ref=9541378-8H
|
||||
26. https://porkbun.com/
|
||||
27. https://www.vultr.com/?ref=6930328
|
||||
28. https://my.vultr.com/blockstorage/add/
|
||||
29. https://my.vultr.com/blockstorage/add/
|
||||
30. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#server1
|
||||
31. https://www.vultr.com/?ref=6930328
|
||||
32. https://my.vultr.com/deploy/
|
||||
33. https://my.vultr.com/deploy/
|
||||
34. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#ssh
|
||||
35. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#server1
|
||||
36. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#ssh
|
||||
37. file:///ti.sh
|
||||
38. https://freefilesync.org/
|
||||
39. https://freefilesync.org/
|
||||
40. https://freefilesync.org/download.php
|
||||
41. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#ssh
|
||||
42. file:///ti.sh
|
||||
43. https://en.wikipedia.org/wiki/CardDAV
|
||||
44. https://en.wikipedia.org/wiki/CalDAV
|
||||
45. https://www.davx5.com/
|
||||
46. https://www.davx5.com/download
|
||||
47. https://app.mailjet.com/signup?lang=en_US
|
||||
48. https://app.mailjet.com/account/apikeys
|
||||
49. file:///ti.sh
|
||||
50. https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
|
||||
51. https://www.dovecot.org/
|
||||
52. file:///file/template.html
|
||||
53. file:///file/style.css
|
||||
54. https://duckduckgo.com/?q=css+tutorial
|
||||
55. https://freefilesync.org/
|
||||
56. file:///su
|
||||
57. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#web1
|
||||
58. https://www.mozilla.org/firefox/
|
||||
59. https://ublockorigin.com/
|
||||
60. https://getaegis.app/
|
||||
61. https://raivo-otp.com/
|
||||
62. https://ubuntu.com/desktop
|
||||
63. file:///pe
|
||||
64. https://mailbox.org/
|
||||
65. https://www.fastmail.com/
|
||||
66. https://www.hetzner.com/storage/storage-box
|
||||
67. https://www.backblaze.com/cloud-backup/personal
|
||||
68. https://duckduckgo.com/?q=vi+editor
|
||||
69. http://mutt.org/
|
||||
70. http://mutt.org/doc/manual/
|
||||
71. https://duckduckgo.com/?q=vi+editor
|
||||
72. https://www.openbsd.org/faq/
|
||||
73. file:///contact
|
||||
74. file:///contact
|
||||
75. https://my.vultr.com/
|
||||
76. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L60154-995TMP.html#server1
|
||||
77. https://man.openbsd.org/help
|
||||
78. https://man.openbsd.org/man.1
|
||||
79. https://man.openbsd.org/adduser.8
|
||||
80. https://man.openbsd.org/ssh.1
|
||||
81. https://man.openbsd.org/doas.1
|
||||
82. https://man.openbsd.org/rcctl.8
|
||||
83. https://man.openbsd.org/pkg_add.1
|
||||
84. https://man.openbsd.org/ftp.1
|
||||
85. https://man.openbsd.org/httpd.conf.5
|
||||
86. file:///contact
|
||||
87. file:///contact
|
||||
88. file:///contact
|
||||
359
static/archive/vladh-net-lmumqo.txt
Normal file
359
static/archive/vladh-net-lmumqo.txt
Normal file
@@ -0,0 +1,359 @@
|
||||
A logo showing a blue circle
|
||||
Vlad-Stefan Harbuz
|
||||
Menu
|
||||
* [1]About
|
||||
* [2]Music
|
||||
* [3]Photos
|
||||
* [4]Books
|
||||
* [5]RSS
|
||||
|
||||
Philosophy
|
||||
* [6]Resources: Philosophy of Work
|
||||
* [7]Alternatives to Wage Labour
|
||||
* [8]The Epistemic Implications of AI Assistants
|
||||
* [9]Our Schools Should Teach Communication
|
||||
* [10]Voting Regardless of Citizenship
|
||||
* [11]Effective Apologies
|
||||
|
||||
Programming
|
||||
* [12]The Caring Programmer's Manifesto
|
||||
* [13]The Hare Programming Language
|
||||
* [14]Hare Regex Implementation
|
||||
* [15]Peony Game Engine
|
||||
* [16]Skeletal Animation
|
||||
* [17]clumsy computer
|
||||
* [18]Submodule GB01
|
||||
* [19]vegvisir
|
||||
* [20]pstr
|
||||
* [21]Dithering
|
||||
|
||||
Languages
|
||||
* [22]Japanese Recommendations
|
||||
* [23]German Noun Genders
|
||||
|
||||
Fun
|
||||
* [24]Most Minimal UK Address
|
||||
|
||||
* [25]About
|
||||
* [26]Music
|
||||
* [27]Photos
|
||||
* [28]Books
|
||||
* [29]RSS
|
||||
|
||||
Philosophy
|
||||
* [30]Resources: Philosophy of Work
|
||||
* [31]Alternatives to Wage Labour
|
||||
* [32]The Epistemic Implications of AI Assistants
|
||||
* [33]Our Schools Should Teach Communication
|
||||
* [34]Voting Regardless of Citizenship
|
||||
* [35]Effective Apologies
|
||||
|
||||
Programming
|
||||
* [36]The Caring Programmer's Manifesto
|
||||
* [37]The Hare Programming Language
|
||||
* [38]Hare Regex Implementation
|
||||
* [39]Peony Game Engine
|
||||
* [40]Skeletal Animation
|
||||
* [41]clumsy computer
|
||||
* [42]Submodule GB01
|
||||
* [43]vegvisir
|
||||
* [44]pstr
|
||||
* [45]Dithering
|
||||
|
||||
Languages
|
||||
* [46]Japanese Recommendations
|
||||
* [47]German Noun Genders
|
||||
|
||||
Fun
|
||||
* [48]Most Minimal UK Address
|
||||
|
||||
Resources on the Philosophy of Work
|
||||
|
||||
04 August 2022
|
||||
|
||||
Wage labour is when you get paid a salary by a company to do work,
|
||||
thereby renting out your time. It’s not a good system because it forces
|
||||
employees to be exploited by manager-owners. This exploitation can be
|
||||
financial, for example if you get paid less than you produce, but it
|
||||
can also be something more than that. One often ends up in a situation
|
||||
where one finds one’s work meaningless, because one cannot connect to,
|
||||
own and direct one’s work in a hierarchical managerial workplace.
|
||||
Additionally, because wage labour is by far the most widespread method
|
||||
of organising work, one might feel powerless to attempt to connect to
|
||||
their work without having someone else own and direct it.
|
||||
|
||||
Worse, even when one works 8 hours per day, the remaining hours are
|
||||
often dedicated to recovering from work and restoring one’s energy so
|
||||
that one may be productive on the next workday. All of these things
|
||||
come together to form something called “alienation” — our work is
|
||||
important to us, and we should have a positive connection to it, but we
|
||||
end up having a deficient and corrupted connection to it, which is an
|
||||
injustice.
|
||||
|
||||
Some might say that this is unavoidable, but this is not true. In fact,
|
||||
the very idea of this system being unavoidable is a result of a bad way
|
||||
of looking at things called “reification”, which means taking something
|
||||
that us humans have made up, such as our economic system, and saying
|
||||
that it is actually real and inevitably has power over us. This is not
|
||||
the case because it is us who structured society in this way, and we
|
||||
could have done it any other way.
|
||||
|
||||
Indeed, we know that it is possible to be creative without being
|
||||
oppressed. Most people can contrast alienated wage labour (what some
|
||||
simply sweepingly call “work”) with playful creation, where someone is
|
||||
compelled by passion and interest to put a lot of effort into creating
|
||||
something. In fact, we know that, ironically, we are usually more
|
||||
productive in this passionate state, than when we are managed and
|
||||
disciplined into doing something we do not care about.
|
||||
|
||||
One might object that this view is naïve because it is not possible to
|
||||
simply do what we’re passionate about — there are many jobs that must
|
||||
be done and that are simply not fun. But the fact of the matter is that
|
||||
a very large amount of today’s jobs are entirely pointless and
|
||||
unneccesary. Instead, they only exist to provide a reason to perpetuate
|
||||
the status quo of wage labour.
|
||||
|
||||
Imagine someone doing a job we knew to be completely useless, and
|
||||
receiving a salary for it every month. How would we respond to the
|
||||
proposal of paying this person their salary, but allowing them to
|
||||
simply stop doing their work? Many would react negatively and say that
|
||||
this person would be getting paid for nothing. But is it not concerning
|
||||
that we would want someone to waste their life away doing something
|
||||
which is never useful to anyone, just so that we can feel that they
|
||||
have thereby somehow earned their right to exist?
|
||||
|
||||
Gradual change is possible, and a big part of this change is cultural.
|
||||
This means first realising all the harmful things that gross inequality
|
||||
of income and power does, then changing our values to say that everyone
|
||||
deserves to direct their own life and earn a fair living. This does not
|
||||
necessarily mean that everyone actually will be able to do these
|
||||
things, but the first step is recognising the current state of affairs
|
||||
as unjustifiable.
|
||||
|
||||
Here are some beginner-friendly books and articles on this topic that I
|
||||
have loved, and are both eloquent and fun to read. I have also included
|
||||
some quotes that I feel explain these concepts well.
|
||||
|
||||
Introductory Essays and Books
|
||||
|
||||
[49]“In Praise of Idleness” Bertrand Russell [50]“Bullshit Jobs” David
|
||||
Graeber [51]“The Tyranny of Merit” Michael J. Sandel [52]“The Abolition
|
||||
of Work” Bob Black
|
||||
|
||||
The absolute best place to start is “In Praise of Idleness”, a short
|
||||
and very accessible essay by Russell that explains some of the most
|
||||
basic problems with our conception of work. “Bullshit Jobs” is a
|
||||
classic in which Graeber describes how many of the jobs we are
|
||||
currently doing are simply not useful to anyone. In “The Tyranny of
|
||||
Merit”, which I have found life-changing, Sandel describes how our
|
||||
conceptions of “merit” do not align with reality, and that our
|
||||
blindness to this affects our lives significantly. Lastly, “The
|
||||
Abolition of Work” is a classic and emotionally powerful essay by Bob
|
||||
Black in which he very clearly describes many of the problems with
|
||||
“work”, but this essay can also be too polemical and antagonising.
|
||||
|
||||
More In-Depth Books
|
||||
|
||||
[53]“Another Now” Yanis Varoufakis [54]“Talking to my Daughter About
|
||||
the Economy” Yanis Varoufakis
|
||||
|
||||
People often ask me what a system that abolishes wage labour and
|
||||
capitalism would look like. In “Another Now”, former Greek finance
|
||||
minister Yanis Varoufakis tells a fictional story that describes what
|
||||
such a parallel world would look like, and he goes into significant
|
||||
economic detail. Similarly, “Talking to my Daughter About the Economy”
|
||||
is an easy to read and light-hearted description of today’s economy.
|
||||
|
||||
Philosophical Background
|
||||
|
||||
[55]“Alienation” Rahel Jaeggi [56]“Free Time” Theodor W. Adorno
|
||||
|
||||
Perhaps you have read the more accessible material above, but would
|
||||
like to get more into the philosophical details. In “Alienation”, Rahel
|
||||
Jaeggi describes the history of the concept of alienation, and
|
||||
describes a modern and analytic way to look at it, which I find very
|
||||
useful. Her description really makes one wonder about the aspects of
|
||||
alienation that transcend the financial, such as its impact on our
|
||||
epistemic agency. Adorno’s “Free Time” is an amazingly insightful look
|
||||
at how work has profound effects on us not only during our time at the
|
||||
workplace, but also during our so-called “free time”, which the
|
||||
employer nonetheless deeply affects and controls.
|
||||
|
||||
You can also read my somewhat amateurish essay, [57]“Alternatives to
|
||||
Wage Labour”.
|
||||
|
||||
Explanatory quotes
|
||||
|
||||
Here are some quotes that I feel explain the ideas I have referenced
|
||||
above quite well. I do not necessarily directly endorse all of these
|
||||
perspectives, but rather find it useful to illustrate how philosophers
|
||||
describe these issues.
|
||||
|
||||
We should do away with the absolutely specious notion that everybody
|
||||
has to earn a living. It is a fact today that one in ten thousand of
|
||||
us can make a technological breakthrough capable of supporting all
|
||||
the rest. The youth of today are absolutely right in recognizing
|
||||
this nonsense of earning a living. We keep inventing jobs because of
|
||||
this false idea that everybody has to be employed at some kind of
|
||||
drudgery because, according to Malthusian Darwinian theory he must
|
||||
justify his right to exist. So we have inspectors of inspectors and
|
||||
people making instruments for inspectors to inspect inspectors. The
|
||||
true business of people should be to go back to school and think
|
||||
about whatever it was they were thinking about before somebody came
|
||||
along and told them they had to earn a living.
|
||||
|
||||
— Buckminster Fuller
|
||||
|
||||
The ‘positive’ sense of the word ‘liberty’ derives from the wish on
|
||||
the part of the individual to be his own master. I wish my life and
|
||||
decisions to depend on myself, not on external forces of whatever
|
||||
kind. I wish to be the instrument of my own, not of other men’s,
|
||||
acts of will. I wish to be a subject, not an object; to be moved by
|
||||
reasons, by conscious purposes, which are my own, not by causes
|
||||
which affect me, as it were, from outside. I wish to be somebody,
|
||||
not nobody; a doer—deciding, not being decided for, self-directed
|
||||
and not acted upon by external nature or by other men as if I were a
|
||||
thing, or an animal, or a slave incapable of playing a human role,
|
||||
that is, of conceiving goals and policies of my own and realizing
|
||||
them. (…) I wish, above all, to be conscious of myself as a
|
||||
thinking, willing, active being, bearing responsibility for my
|
||||
choices and able to explain them by references to my own ideas and
|
||||
purposes. I feel free to the degree that I believe this to be true,
|
||||
and enslaved to the degree that I am made to realize that it is not.
|
||||
|
||||
— Isaiah Berlin
|
||||
|
||||
The fact that the vast majority of the population accepts, and is
|
||||
made to accept, this society does not render it less irrational and
|
||||
less reprehensible.
|
||||
|
||||
— Herbert Marcuse, “One-Dimensional Man”, p. xliv
|
||||
|
||||
The things of everyday life [must be] lifted out of the realm of the
|
||||
self-evident. (…) That which is “natural” must assume the features
|
||||
of the extraordinary. Only in this manner can the laws of cause and
|
||||
effect reveal themselves.
|
||||
|
||||
— Bertolt Brecht, “Schriften zum Theater” (Berlin and Frankfurt,
|
||||
Suhrkamp, 1957), p. 7, 9.
|
||||
|
||||
The Story of the Mathematician
|
||||
|
||||
This is a very short story used as an example by Rahel Jaeggi in
|
||||
“Alienation” which I find a stunningly good illustration of the
|
||||
problems I refer to.
|
||||
|
||||
A young academic takes up his first position. At the same time he
|
||||
and his girlfriend decide to marry. That makes sense “because of the
|
||||
taxes.” A short time later his wife becomes pregnant. Since large
|
||||
apartments in the city are expensive and hard to find, they decide
|
||||
to move to a suburb. After all, life outside the city will be
|
||||
“better for the child.” The man, a gifted mathematician, who until
|
||||
then has led a slightly chaotic life, oscillating between too much
|
||||
night life and an obsessive immersion in work, is now confronted
|
||||
with a completely new situation. All of a sudden, and without him
|
||||
having really noticed it, his life is now, as it were, “on track.”
|
||||
One thing seems to follow ineluctably from another. And in a
|
||||
creeping, almost unnoticeable process his life acquires all the
|
||||
attributes of a completely normal suburban existence. Would he, who
|
||||
earlier ate fast food most of the time and relied on convenience
|
||||
stores for picking up milk and toilet paper as the need arose, ever
|
||||
have thought that he would one day drive every Saturday morning to
|
||||
the shopping mall to buy supplies for the week and fill the freezer?
|
||||
Could he ever have imagined that he would hurry home from work on
|
||||
Friday because the lawn needed to be mowed before the barbecue? At
|
||||
first he and his wife hardly notice that their conversations are
|
||||
increasingly limited to their child and the organization of
|
||||
household chores. Sometimes, however, he is overcome by a feeling of
|
||||
unreality. Something is wrong here. While many envy him for the
|
||||
beautiful suburban house he lives in, he is not really at home in
|
||||
this situation. The life he leads, which, as it seems to him, has so
|
||||
suddenly tightened around him—one could almost say “rearranged”
|
||||
him—seems, in a strange way, not to be his own life. Everything is
|
||||
as if it could not be any other way; everything happens with a
|
||||
certain inevitability. And in spite of this—or perhaps precisely
|
||||
because of it—it remains in a crucial respect alien to him. To what
|
||||
extent is this life “not really” his own? To what extent is he, in
|
||||
this life that he leads, alienated from himself?
|
||||
|
||||
Each individual aspect of his life (…) has not really been decided
|
||||
on. Thus, his situation is in fact “out of control” in a certain
|
||||
sense, and (…) it is a situation for which no one can genuinely be
|
||||
held responsible. This does not merely mean that he has not acted,
|
||||
or has not availed himself of his possibilities for acting, but that
|
||||
he has not even understood his situation as one in which action is
|
||||
called for or possible; it does not merely mean that he has not
|
||||
decided something for himself, or has not led his life himself, but
|
||||
that he has been incapable of understanding or regarding it as
|
||||
something he can or must lead.
|
||||
|
||||
— Rahel Jaeggi, “Alienation”
|
||||
|
||||
[58]XXIIVV webring © 2010 Vlad-Stefan Harbuz. Article text and media is
|
||||
[59]CC-BY-SA 4.0 unless otherwise specified. All other rights reserved.
|
||||
|
||||
References
|
||||
|
||||
Visible links:
|
||||
1. file:///about
|
||||
2. file:///music
|
||||
3. file:///photos
|
||||
4. file:///books
|
||||
5. file:///index.xml
|
||||
6. file:///wage-labour-resources
|
||||
7. file:///alternatives-to-wage-labour
|
||||
8. file:///the-epistemic-implications-of-ai-assistants
|
||||
9. file:///our-schools-should-teach-communication
|
||||
10. file:///voting-regardless-of-citizenship
|
||||
11. file:///apologies
|
||||
12. file:///manifesto
|
||||
13. file:///hare
|
||||
14. file:///implementing-regular-expressions-in-hare
|
||||
15. file:///peony
|
||||
16. file:///game-engine-skeletal-animation
|
||||
17. file:///clumsycomputer
|
||||
18. file:///submodule
|
||||
19. file:///vegvisir
|
||||
20. file:///pstr
|
||||
21. file:///dithering
|
||||
22. file:///japanese-recommendations
|
||||
23. file:///german-nouns
|
||||
24. file:///most-minimal-uk-address
|
||||
25. file:///about
|
||||
26. file:///music
|
||||
27. file:///photos
|
||||
28. file:///books
|
||||
29. file:///index.xml
|
||||
30. file:///wage-labour-resources
|
||||
31. file:///alternatives-to-wage-labour
|
||||
32. file:///the-epistemic-implications-of-ai-assistants
|
||||
33. file:///our-schools-should-teach-communication
|
||||
34. file:///voting-regardless-of-citizenship
|
||||
35. file:///apologies
|
||||
36. file:///manifesto
|
||||
37. file:///hare
|
||||
38. file:///implementing-regular-expressions-in-hare
|
||||
39. file:///peony
|
||||
40. file:///game-engine-skeletal-animation
|
||||
41. file:///clumsycomputer
|
||||
42. file:///submodule
|
||||
43. file:///vegvisir
|
||||
44. file:///pstr
|
||||
45. file:///dithering
|
||||
46. file:///japanese-recommendations
|
||||
47. file:///german-nouns
|
||||
48. file:///most-minimal-uk-address
|
||||
49. https://harpers.org/archive/1932/10/in-praise-of-idleness/
|
||||
50. https://www.goodreads.com/book/show/36531574-bullshit-jobs
|
||||
51. https://www.goodreads.com/book/show/50364458-the-tyranny-of-merit
|
||||
52. https://theanarchistlibrary.org/library/bob-black-the-abolition-of-work
|
||||
53. https://www.goodreads.com/book/show/49098225-another-now
|
||||
54. https://www.goodreads.com/book/show/36490332-talking-to-my-daughter-about-the-economy
|
||||
55. https://www.goodreads.com/en/book/show/19144936
|
||||
56. http://xenopraxis.net/readings/adorno_freetime.pdf
|
||||
57. file:///alternatives-to-wage-labour
|
||||
58. https://webring.xxiivv.com/#vladh
|
||||
59. https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
Hidden links:
|
||||
61. file://localhost/
|
||||
Reference in New Issue
Block a user