I think that ARM (or some other RISC) is going to be the way forward
for the near/mid future. x86 is too bloated and attempts at power
effiency are like trying to fit a square peg in a round hole. A reduced
instruction set computer (RISC) isn't going to use as much power as a complex
ISC like x86. Hardware optimization can go a long way and I think that
is a large part of the sucess of ARM. RISC-V is just not as mature as
ARM and I think that comparing them at this stage is not productive in
the actual argument between the two instruction sets. If you're interested,
here is a study on the power efficiency of x86
vs. ARM vs. RSIC-V. The ARM chip is very comparable to the x86 chip
that they chose and they go neck and neck in most of the tests. I think
that a fault of this study is that the RISC-V SOC that they chose was
severely underpowered, however as noted in the conclusion,
RISC-V architecture implementations are still in a relatively
nascent stage compared to their more established counterparts. As RISC-V
continues to evolve and undergo optimization, further enhancements can
be anticipated in both performance and energy efficiency in the
future.
I think that this sums it up pretty nicely. Anyways, on the consumer
front the RISC-V space is pretty sparse. The market leader seems to be
Milk-V however their boards are not (as of July 2025) supported by the
Linux kernel and I think that this hurts the performance in tests like
Geek Bench. They have plans for mainline support in the Linux kernel by
Q4 2026 so I am still hopeful that RISC-V can become more popular. Also
from Milk-V their Titan board looks promising with an alleged 64 cores
but there has not been much discussion online about it as far as I can
tell.
Personally I think that I am going to buy an OrionO6 from Radxa in the
next year or so because (1) I need a new PC, (2) it's fairly
inexpensive, (3) I can hop on the ARM bandwagon, and (4) it won't suck
up as much power. Right now I have a AMD FX-6100 that used to heat up my
bedroom before I started using powerd.
Quick digression: how to set up powerd.
In your /etc/rc.conf set:
powerd_enable="YES"
The next step depends on your personal preference and whether you are using a laptop or desktop computer. For my desktop I use adaptive and I used minimum for my laptop when it was on battery power.
# for laptop powerd_flags="-a adaptive -b minimum" # for desktop powerd_flags="-a hiadaptive"
hiadaptive favors higher frequencies and will stay at a higher frequency
for longer. I don't personally find it more useful than regular
adaptive, however it really depends on the use case.
This reduced my coretemps from around 35C to room temperature. Its truly
amazing what its done. It even showed up on my power bill! My power
compay shows graphs with usage levels and I saw a difference between
before and after using powerd.
Anyways, back to ARM. The O6 is really promising. The GeekBench scores
place it at 4x faster than my current desktop and about 25% slower than
Apple M1 performance for only $330 for the 16GB version! I can only
expect performance to get better as drivers mature so I anticipate that
it will eventually reach scores at or just under the M1 for a third of
the price. It is marketed as a "AI" PC but I think it would be a great
fit for a capable home workstation.
I think that energy usage should be a bigger concern going forward. We
are getting more and more powerful devices however the software is
making it so that we see energy usage at or worse than previous
hardware. Especially today with energy becoming more of a concern with
regards to climate change, geopolitical conflict, etc. I think that
developers, both hardware and software, and consumers need to be more
mindful about how much energy they are using. A react app is going to
use easily 1000x more power than what could have been a CLI. It doesn't
really matter because of the current AI hype-train and just general
wastefulness in society. Sadly the U.S and the rest of the Western world
has fallen behind in terms of technical innovation so all the real
progress happening is in China. I doubt that any amount of funding could
restart silicon manufacturing and even if/when it happens rumor has it
(i.e. I don't want to find the article) that American made chips are 25%
more expensive than Taiwanese ones. I suspect that the purpose of
tariffs are to level the playing field but that will only handicap
manufacturing gains. No pain no gain, right?
From now on the posts are going to be less formal. I had some mental
model of what a blog should be (looking at you Hacker News...) and it
was really keeping me from writing. I wanted each blog post to be nice
and contained and provide some sort of intellectual value. But then I
realized, its my blog and I can do whatever I want. So here we are. I
still want to maintain some formality so that posts don't read like faux
corporate garbage or like Twitter/Reddit. I suppose that this really
means that the content not the style of posts will change. Anyways, I'm
not one to go back and rewrite things so earlier posts will have to
stand on their own.
I'd been putting off learning tmux because I have been using tiling
window managers for a while, and whats the point of using a multiplexer
in a tiling window manager? Well, when you have a remote system. I
found myself (embarrassingly) opening multiple terminals and
authenticating on my server each time. It really wouldn't have bugged
me except that I found myself doing this almost every time I had to do
something remotely. There were two of options for terminal multiplexers
that were common: screen and tmux. screen is the simpler of the two,
however it doesn't have as many features like the built in status bar
and being able to split windows in half horizontally or vertically like
a tiling window manager. I was leaning more towards screen initially
because I had used it before, but after about a day of using I got tired
of only having one shell per window. This could only lead to one thing...tmux!
Its kind of a headache trying to learn the keybindings. tmux is genuinely
the first program I've used in a while that has keybindings that give vi a
run for it's money. I took a look at the man page and it seems like its
almost the opposite of vi in terms of ergonomics. The most common
commands, like splitting windows, use keys like " or % and there seems to
be a bit of feature creep with features like sessions. It really is a
GNU type program. I would say the learning curve is definitely steeper
than screen, however it pays off to split the windows, plus tmux can do
anything that screen can. The only downside is that tmux is less
standard than screen, however that's not really an issue nowadays as both
can be easily installed from standard repositories.
Speaking of vi, when I'm writing prose it drives me nuts that I can't
use the ( or ) commands because I'm not used to using two spaces after a
period. Supposedly two spaces is a artifact from the days of typewriters
so that the period would stand out from the rest of the text. I don't
have a source so do with it what you will. I didn't learn to type with it
and it hasn't been standard for ages, but vi is the one program that is
holding on to it. I don't know if its worth making myself seem older so
that I can use those sweet, sweet motion commands. I'll give it a try in
the meantime.
I think that the idea that bloat is harmless is not sustainable. If you load a bloated site that loads 8 Mb of ads and other junk along with it it will inherently consume 400x more data than a static site that is only 20Kb. The bloat sites will go through 1Gb of data in 125 sites, over 30 days, thats about 4 sites per day. The more minimal sites would take around 50,000 to consume 1Gb of data, or 1700 sites per day, well more than humanly possible. While I cannot quantify the environmental impact, the economic impact would be huge. Just off of numbers from the last time I checked, a 1Gb/month phone plan in the U.S. runs you around $15/month. On the other hand, an unlimited plan costs upwards of $50/month. A 3x difference, or $400 per year difference. I find it ironic that many websites that advocate for climate change and cutting personal use take a whole 5Mb just to put some text on my screen. 5Mb doesn't seem like a lot util you write in plaintext. 5Mb = 5 million characters = a whole lot of text.
This is not the be-all-end-all list of TUI mail clients available for *nix.
This is just meant to be a light-weight guide so that it is easier to pick
through the many options available. Mail has been around for a long time
and this longevity has made it so there are more mail clients than minutes
in the day. The ones that I have chosen to look at are aerc, alpine/pine,
mailx, and mutt.
aerc is the most modern of the five and feels most similar to mutt. It uses
vi-like keybinds for folder and message navigation. The configuration is
very easy and there is a form that you complete on the first run. I like
this as you can get up and running quick, however this becomes an issue
once you have to change details, and then you are better off just learning
the config file anyways. The configuration style itself is nothing
special.
alpine/pine is an older client and it shows. The interface feels more
dated than aerc or mutt, however I found it more intuitive than mutt and
much more than aerc. Alpine is aimed more at novices and as such has all
the keybinds displayed on screen. I'll be honest, I sort of rolled my eyes
at it the first time I used it. However I'm not a huge email user so not
having to check the man pages for the keybind to reply or change
folders or move mail etc. is valuable. Ultimately what was a
dealbreaker for me was that the folder support is not perfect. It is
definitely usable, however for whatever reason the folders were not
pulled down correctly and there was a sort of double image next to each
folder that would not show anything. I don't know how to fix it and
didn't bother so it may or may not be a non issue. Alpine was a bit more
effort to set up with SSL owing to the fact that it hails from so long
ago. It was not a huge effort to get ssl set up, however the
configuration is more verbose than the mutt or aerc.
mutt feels very much like a combination of aerc and alpine, although it
uses movement keys like vi it also displays some keybinds for email
specific commands. This works really nicely and makes it easy for vi
knowledge to transfer to it without having to learn a whole new set of
keys. The configuration is similar to aerc, however there is no wizard
to create it so you are left to rely on external examples. This turned
out to not be an issue as simple configs are easy to come by.
mailx is the simplest of the four and is the least customizable. It is
native to FreeBSD but is easily installed on most other systems. By far
the most lightweight and is the perfect choice for reading system mail.
The interface is similar to ex with simple one letter commands. It is
not a complete mail client in itself and for a desktop needs a program
to deliver the mail like fetchmail and a program like sendmail for
outgoing mail. I have not tried configuring sendmail, only fetchmail,
and it worked without a hitch.
I tend to lean towards programs that are simpler and have a lower
install size/less dependencies. The winner for simplicity is by far
mailx, however with this you have to do more heavy lifting yourself.
Then comes alpine, then mutt, then aerc. My personal choice is mutt.
I've used all of theses and mutt is the only one that I can still
remember how to use after a week. aerc is too complicated, alpine is
just clunkier, and I can't be bothered with mailx. Anyways, that about
wraps it up. Maybe I'll get mailx set up and see how that holds up.
I am finally Linux free! I have a desktop that is running FreeBSD and a
laptop that has always been confined to Linux, most recently Void Linux,
however the most recent release of FreeBSD (14.3) has finally made it
possible for me to use my laptop. I was waiting until the rtw89 drivers
got support for the RTL8852BE chip thats in my laptop. Although the
speeds are still pretty dismal, the best I saw on speedtest.net was 15mb/s
up/down, the connection has been much more stable than NetworkManager on
Void. It was probably something with musl that was causing the WiFi to
lose connection from the AP every fifteen minutes or so. Nothing crazy,
just a little inconvenient. The FreeBSD drivers have proven much more
reliable. It looks like I'll be stuck with wpa_supplicant, its good
enough for now.
Contrary to what I expected, the drivers worked right away. The install
went flawlessly and I was quickly greeted with a login prompt. The real
issues began with Xorg. Turns out my laptop does not have an external
graphics card and is just using integrated graphics. I wasn't especially
suprised however this turned into a nightmare for getting the Xorg
config right. It took me several hours to find the right drivers and
configuration files to get Xorg to start. I would share my config
however I don't think I would be able to properly explain it without
adding more noise to the already confusing mess that is graphics
drivers. Anyways, after much travail I did manage to get the graphics
card working after much travail I did manage to get the graphics card
working.
In terms of battery usage, I haven't been able to test it to see how it
stacks up against Linux. I am using powerd to control the CPU frequency
and this has been great so far at extending battery life and more
imporantly making it run much cooler. There seems to be some material
out there documenting how to increase battery life however it will
definitly be more involved than installing tlp on Linux which was
practically set-and-forget. Once I get the chance I'll nail down some
more concrete numbers and methods.
Sound was another thing that gave me more trouble than expected. Getting
pulseaudio installed and using the speakers was no issue at all. The
real battle is in getting the headphone jack to work. No matter what
I've tried, audio just doesn't want to come out of the headphone jack.
Its not the end of the world, but not something that I expected.
A little known feature of most shells is that there is a command line
editing mode so that you can use the command line with the same keybinds
as vi or emacs. I never thought much of this before I started using
pretty much only vi for my day-to-day editing but now I find it
inconvienent to have to mash arrow keys for shell history.
Right now im split between using tcsh on FreeBSD and bash on Void Linux,
but luckily since the keybinds are derived from vi there isn't any
difference in the actual usage, just in the configuration. With tcsh you
just add
to your .tcshrc or add
to your .bashrc. Now you can use vi (or emacs) to navigate your history
or edit the command line. A helpful feature, in bash at least, is that your prompt will
change with whatever number you are using for motion commands.
I'm reallly a sucker for the vi keybinds wherever they may pop up. Even
in leetcode they have them and they don't go unnoticed.
Continuing on my journey into productivity tools the next program that I wanted to
make was a agenda/todo list. Of course with Xaw.
The first major roadbump that I encountered was getting text boxes for input to
work. The program had to have a feature to insert new events so I really
couldn't skip this. Even after looking at the documentation I couldn't make
heads or tails out of how to get it to work so I took a look at the source code
for xedit and it was
enough to get some simple text boxes working.
Another feature that was a must have was a scroll bar for the output window.
There was just no way I could excuse an infinitely growing window. This wasn't
so bad at first but how it interacted with it's children proved much much more
difficult to debug than expected.
If the container box and the viewport did not have the same width it would just
decide to not render. If the viewport did not have it's width updated every time
its children were re-rendered it would shrink down, which is great, until you
try to add more contents and the viewport is far too tiny.
I settled on a linked list for all the posts and individual box widgets with
contained controls so that you could for example delete an individual post.
However for some reason this caused the parent box that was directly a child of
the viewport (the scrolling widget) to grow horizontally and this would cause
all the widgets inside the box to disappear unless the flag allowHoriz
was set, but that would in turn cause a horizontal scroll bar which was quite
ugly. In addition to the ugly scroll bar, by having extra wrapper boxes around
the insides the scroll just didn't work! After a hour or two (or three) of
trying to fit a square peg in a round hole I decided to just have a label
on the inside and modify the contents to display events.
This finally got me the results desired and I'm fairly happy with how it turned
out. Email for the source.
I'm a big fan of the Pomodoro method. For those who don't know, its a
method of time management where you work for 20-30 minutes then take a
short break for 5-10 minutes. After repeating this work-break cycle four
times you take a long break. The most common intervals I've seen are 25
minutes of work and 5 minutes of rest with a long break of 35 minutes so
that everything wraps up into a nice 2.5 hour block.
The most important aspect of the technique is the timer. While there are
plenty of good apps for mobile that do this, there are not a lot of
options when it comes to desktop. There were essentially three options
that I saw.
While just using whatever JS app that someone farms advertising revenue
off of was a real option, I don't always have/need a browser open when
I'm using my desktop and because it would be in the browser it would be
hard to leave it on top of my other windows.
I did not want to download a 70MB timer. Simple as that. I mean it's a
timer, does it really need to look that good?
The terminal options looked good, however they were definitely limited
by the constraints of the terminal. Because the clock has to run
asynchronously from user input that pauses or otherwise interacts with
the program input buffering is really not condusive to a good user
experience.
While a solution would be to run a daemon for the timer, is that not
hammering a screw? I don't think its necessary for a timer to be
multithreaded or require IPC.
This lead me on a search for a simple X11 pomodoro app. Even Qt would
have been fine. Alas, it seems that somehow pomodoro timers attract the
type of users that change their config files all day. Maybe a pomodoro
to help them concentrate on retheming hyprland and neovim for the second
time today. The problem looked simple enough, so rolling my own was
really the only option that was going to leave me satisfied.
This led me down the rabbit hole of X11 development. I use xcalc quite a
bit and this led me to Xaw (X athena widgets). Xaw is a libarary of
widgets that you can use to build apps on top of Xt, which lets you
build apps on top of X11 (with Xlib and XCB). The wikipedia article does
a great job of explaining the hierarchy and relationship of libararies
like Xaw and Xm more modern ones like GTK and Qt to X11. Its interesting
to note the "GUI Wars" between Motif and OpenLook and how it mirrors the
seemingly never ending debates between text-editors, browsers,
programming languages, etc. Xaw is noresource intensive and looks good
enough for a simple timer so it was a no brainer to pick it.
Ok, so I have a library picked out, now its time to get maybe a example
project and go off of that right? Nope. The most advanced program with
source that wasn't a full blown app was a hello world. So looks like the
docs will do most of the heavy lifting. Except that some functions are
only docuented in HPUX in a man page archive. Thankfully although the
docs are scattered, the coverage is wide enough that with a little
persistence you can figure out whats going on.
I won't drag about the details but here are some things that I picked up
that might help you if you decide to make something with Xaw.
Thats it for this article. If you're interested, email me for the source.
No major spoilers but some
characters will be referenced.
Nothing outside of the first 10
minutes though.
I recently decided to watch Dr.
Strangelove off of a
recommendation from a friend.
Apparently this movie is up
there with films like
Citizen Kane in the
greats of American film. It's a
very approachable film lasting
just under 100 minutes (1:38)
and is set in Cold War America.
It is definitely more relevant
than ever and the insanity of
the whole situation is a little
frightening especiallly the
parallels between Gen. Ripper
and RFK Jr. While it is a tad
crude with the many references
to "precious bodily fluids" it
does feel eerily familiar to
a certain someone's thoughts on
Autism... The plot really shines
in moments like these where it
is so close to reality that there
are moments where you forget that
its a comedy.
No other film that I have
watched has done such a good job
of capturing all the various
stereotypes and really the state
of life of the sixties.
Although outdated and WASPy, the
film really captures the essence
of what it was like in the
1960's in the "room where it
happens". The film has it all,
the ditsy secretary, the
acedemic (Dr. Strangelove), the
suburban middle aged man (Gen.
Turgidson), the texan (Major
Kong), and the upper middle
class "soft?", I don't exactly
know what to call it, guy (Pres.
Muffley). From talking to some
folks that were around back then,
I got the sense that they lived,
not exactly in constant fear, but
more aware of the effects of total
war and had to come to terms
with their mortality in a way
that is lost on us today.
Between their fathers
and maybe mothers serving in WWII and
conflicts like the Cuban Missile
Crisis, these issues were
perpetually at the forefront
of people's minds. I hope that
we do not have to go through
something like WWII again, but
facing those issues definitely
make a huge positive change in
how you live your life and
sadly war seems to be the only
way that people will come to
terms with them
While the film is still relevant
even today, I think that it
would be hasty to draw direct
connections between the nuclear
crisis and say Trump's tarrifs
or threats of war. The world has
changed tremendously in the last
sixty years and I don't know if
the dynamics at play then are
even remotely comparable to
today. Then they had only two
superpowers, the U.S. and
U.S.S.R. but now with China
being the main threat to the
U.S.'s power but with Russia
still being "in the game"
there's somewhat of a awkward
"love" triangle between them and
Europe and the rest of the world
stuck in the middle. Yikes!
All in all, its a great movie I
would whole-heartily recommend
it. I would say more but I don't
want to spoil it.
wmx is a cute little window manager that has changed my mind on floating
window managers and has really captured my heart. Heres the quick notes, then a longer
review below.
type - floating
installation - from source
configuration - through source or symlinks
keybinds - kind of
resource usage - 20kb (irrelavant)
I was expecting a really dated experience however due to the design
choices it has really stood the test of time. I wouldn't go as far as to
call it timeless, however it still passes as semi-modern because of the
lack of skeumorphism. Personally skeumorphism was a cool concept, but it
has not aged well.
A distinctive part of the window manager is that the window titles are
positioned vertically on the left side of the window. This actually
works really well when you have a lot of windows overlapping. On the average
laptop/desktop screen, most windows tend to get crowded
vertically instead of horizontally, so veritical titles work a lot
better at identifiying windows than horizontal ones. A great feature that
I find lacking in other floating window manager is a good implementation
of virtual workspaces. Something that bugs me with window managers is
that they are reliant on a external bar to identify the current
workspace. Even window managers like dwm don't display something
indicating which workspace is selected. The way that wmx implements it
is a digit in the top right corner that appears when you change
workspace and disappears after a delay. This is the perfect touch to
make the barless experience work. Of course if you aren't a fan you can
disable it in Config.h
I was a little intimidated at first after the initial build by the lack
of documentation on configuring it, however, the source code is one of
if not the best examples of self documenting code. Config.h (the main
way of configuring wmx) is well structured and comments lay out every
paramater that could be configured. It is truly a shining example of
what code should be. I don't feel that I need to go into much detail of
building and installing it, the README is more than enough to get you
started.
I don't feel that I need to go into more detail concerning configuration
as the source does a better job than I could. If you want to download
it, the source can be found here.
Thanks for reading!
I've noticed that I've been spending too much time on hacker news and youtube so I looked into some options for when my self restraint isn't enough. the first would be to add some sort of extension for the browser but these are too easy to get around, just a simple right click and delete extension. I opted to go for a more robust solution. In /etc/hosts there are some ips bound to hostnames like 127.0.0.1 to localhost. although this is useful for setting hostnames, it can also be used to block certain sites. The format is
ip-address hostname 127.0.0.1 localhost
If you put 127.0.0.1 (localhost) as the ip and any domain you want to block as the hostname, all traffic will be rerouted to localhost and will be rejected unless you are running a http server locally. Could be used to remind yourself if you go to those sites out of habit. Anyways heres a list of social media domains that could be time drains.
127.0.0.1 news.ycombinator.com 127.0.0.1 www.reddit.com 127.0.0.1 old.reddit.com 127.0.0.1 youtube.com 127.0.0.1 www.youtube.com 127.0.0.1 www.instagram.com 127.0.0.1 x.com 127.0.0.1 ifunny.co 127.0.0.1 www.tumblr.com 127.0.0.1 bsky.app 127.0.0.1 mastodon.social 127.0.0.1 tenor.com 127.0.0.1 www.facebook.com
Another application could be for adblocking with minimal browsers like
surf.
On a different note, I'm probably going to redesign the site, I'll try
to keep the css simple and light on network but its hard to get a
balance between design and size. Also maybe a media dump?
I use xterm because its simple, lightweight, and comes default with
many distros. Xterm is a terminal emulator simple as that. Just a no
frills terminal emulator. Although there is no gpu acceleration like in
Kitty or Alacritty, it doesn't really matter. A terminal emulator's job
is to display text on your screen not play games. In my experience with
all three i haven't noticed a difference performance wise between them.
side note for tiling window managers. Why use a terminal emulator with
tabs/tiling if you're going to use it in a twm anyways?
The installed size is about a fourth of Alacritty or Kitty and it has
about half as many dependencies as Kitty, and a tenth of Alacritty.
Kitty and xterm both share many dependencies with the default X11
libraries, however Alacritty has significantly more dependencies to
install because it is built on rust. Kitty also depends on python, for
better or worse. I do not have any definite numbers on memory usage of
Alacritty or Kitty, however the memory usage of xterm is trivial, using
about 16kb of memory.
The best however, is that xterm is the default for most distros' X11
package. Ultimate ease of use. The main downside of using xterm is that
background transparency is not well implemented (external tool) and blur
is not possible. The default theme is also pretty ugly, but it is not
any more difficult to change than any other emulator. There are decades
worth of .xresources to choose from. Just remember to merge the changes
to the x resources database. Besides eyecandy, xterm is a great option
if you are looking for low memory/storage footprint, simplicity, and
ease of use.
Foreword: When I was looking for the DNS entries for DKIM, SPF, and DMARC I
didn't find any info online about how to do it for FreeDNS, so I thought
I would share what I found worked.
This post will only cover setting up the DNS entries for email
verification, NOT the server side configuration. That will be more
specific to whatever SMTP server you use. More advanced configuration
options will not be covered, this is just a basic overview. The guide I
used: [set up postfix + dovecot with DKIM, SPF, and DMARC]
On my quest to set up a mail server I came across DKIM in the tutorials
I found, but I put it off because it required messing with your DNS
entries. However when sending to any other email service with spam
protection (basically all of them) the mail would go straight to junk
and a warning would come up complainging that it couldn't verify the
authenticity of the message (what DKIM does). Having your mail go
straight to junk defeats the point of having it and telling people to
check their spam folder is annoying and might not always be possible. So
I bit the bullet and set it up.
When going to add DNS entries for you subdomain that have underscores in
them (required for DKIM and DMARC) FreeDNS will not let you and you
will have to contact support to enable it for you. Don't let this
discourage you! the support is super friendly and if you don't have a
history of abuse they will unlock it for you.
SPF:
Just a TXT entry. Select TXT from the dropdown. For the subdomain use
whatever the subdomain for the A (or MX) entry that you use. Now the
destination will be:
"v=spf1 a:[YOUR FULL DOMAIN NAME] -all"
This basically declares that the entry is a SPF entry and says that all
mail should come from the DNS entry. Use a for an A entry, mx for a MX
entry, etc.
DKIM:
Also a TXT entry. For the subdomain it will be
default._domainkey.[YOUR SUBDOMAIN]
provided the marker for you DKIM key is default. Only use the subdomain because when the entry is created the rest of the domain will be appended to the name. The destination will be
"v=DKIM1; h=sha256; k=rsa; p=[INSERT YOUR KEY]"
It is almost certain that your key will be too long to hold in a single
set of quotation marks, so you can break the key up into two or three
separate blocks. The hash and algorithim can be adjusted, however this
should cover the most common combination.
DMARC:
DMARC is not immediately important, however by having it you make your
mail server look less sketchy and you are notified when mail fails DKIM
and SPF checks. You may as well do it while you are setting up the other
two. Another TXT entry. This time the subdomain is
_dmarc.[YOUR SUBDOMAIN]
And the destination is
"v=DMARC1;p=quarantine;pct=100;rua=mailto:[YOUR EMAIL]"
This will put messages that fail SPF and DKIM into the "junk" or "spam"
folder of the recipient and mail 100% of the reports to the specified
address. When testing I recommend setting p to none so that your mail
will go through, however after you confirm that it is working setting
it to quarantine or reject would be safer.
Hope you got some value from this. Thanks for reading!
I never realized how terrible it is to set up a mail server. talk about a
headache. Email was a mess as is before encryption, however what makes it so bad
is that the old ports and services are still used on top of the new encrypted
channels.
Anyways, I decided to set up Postfix and Dovecot on the server to do some small
email hosting. It didn't seem to difficult and I looked up a tutorial and got to
work. Getting plaintext mail was trivial, however thats not really great for any
real usage. Most tutorials I saw recommended setting up DKIM alongside
encyrption, but I decided to save that headache for another day. Dovecot and
IMAP/IMAPS was relatively easy to setup, pretty much just copy paste some
configuration and fill in SSL keys, but the real issues came from Postfix. I was
initially testing the server using BSD mailx, but that came to be the source
of a fair bit of confusion. It wasn't until deep into the process that i
realized it was prefixing my hostname onto the target domain and the fix didn't
seem easy so I had to abandon that. Moving onto aerc I was finally able
to connect to the server but wasn't able to send any mail. This was because nowhere
in the tutorials did they explain that SMTPS had to be configured alongside
SMTPd. So I changed the configuration thinking that SMTPS was a drop in
replacement with encryption. Not that easy. Turns out that SMTP is needed
between servers (why?) and SMTPS submission needs a seperate port as well.
Just a side note, but using a SMTP/IMAP mail server uses five ports for what
could seemingly be done in two. Im probably not smart enough to think of a
better solution but just my two cents.
Thats the end of this post. Look for more soon!
For the new site I decided what better way then to make a static site generator! how it works is you have a file about.txt that has your about section, a directory posts with the posts in seperate files, and a directory templates with a template for the home page and post sections. The go executable basically just fills in the posts and links them back to the home page. My previous page was just not a whole lot of fun because I had to manually copy over each post and fill in a template, now I can make the computer do the boring work. I might release the source soon, but its not ready for the public yet. Look for more posts soon!