Niklas Anderson's Blog

My Personal Echo Chamber

I used to think my own mind was at least interesting.

Not smart. Not brilliant. But at least interesting to be within.

You can only live with a million thoughts if you can, in at least brief moments, condense them into smaller, encapsulated thoughts.

The genius and thrill that results from living with ADHD is the demand that you push through insistent thoughts and self produced distractions by putting them to rest. By taking these impositions of the mind and pressing them into something into a singular, satisfying summary.

Some insightful, self satisfying idea that calms the god damn demons that flicker like flies inside your brain.

The emotion, the impulse, the insistent pulsing of images that at each moment take you away from world in front of you at each moment. Fighting to stay in the world right now is like fighting to keep your feet on the floor without gravity or anything in reach to hold on to. I want to be here, need to be here, need to live life, but these fucking worlds that pull me, toss me, swing me around their orbit. How did I live this long, through all these years with my mind?

My mind flattened by strattera, I know what a normal, boring life is like. I know what it is like to go a day without a fascinating or intriguing, possibly original thought. I know what its like to have a job, pay bills, and function like a modern human being: without any of the things that made my childhood so horrible but also memorable. I now know what this departure from meaning: functional adulthood, is like.

I am here. And I can follow your words as you speak to me. Now that strattera has taken my mind away,

I can live.

This blog is also available to Tor users here: http://writeas7pm7rcdqg.onion/niklasanderson

I used to have my blog hosted by Netlify running Jekyll. But I found it all cumbersome and annoying, so I have swapped to While does not offer all the features I would like, it is more or less in line with my expectations of privacy. It is also simple enough for my simple mind.

I apologize if you have found this blog. I occasionally write here, but I do not accept any responsibility for any damage caused by me writing here.

I have these categories which you can sort my posts by:

#MyIgnorantViews #MeaninglessAphorisms #TechnoPosts #IsThisCreative

The ego's highest moments, in the feeling of being invincible and uncritical of ones own behavior, are equally possible in the lowest moments of ones life as their highest. If not more so.

Moments of highness are moments of otherness, in which an immediate sense of self is forgotten in the absorbing experience of something outside ones self. Of being swept up or taken into an emotion.

Moments of lowness are marked by an overbearing self-centered awareness of the world as it is. The experiencing of pain is the experience of ones self, or of another as if they are ones self. Pain in all forms is to made starkly aware of ones body or ones self.

People of ego are often never spared a moment without some pain that draws them inward. Too much time inward breeds delusion, a loss of any frame of reference on which acts are oriented, acts that are extreme and ignore what surrounds us.

These moments of ego are a source of shame. They are a stain. both because they are forced upon us by desperate circumstances, but also because they perpetuate and deepen them.

In towards ones self is something of great gravity, and I desire nothing more than to be forgiven of these spiraling, inward collapses that have resulted in my most disastrous and public acts.

I comfort myself with this lie: These moments were imposed on me, by something outside myself.

#OpenSMTPd Quest: 3 – Relaying Email Out & Domains

This configuration adds the ability to relay email out if it originates from an "authenticated" smtp connection, meaning a configured user can use this server to send email out to the world.

Notice that "submission" is an option, this makes an alternative port available to senders at smtp is often filtered from household connections by ISP's

I had to remind myself when looking back on this version of the config that a password file is not needed because OpenSMTPD is reverting to local users, so we can require authentication but not yeat refer auth to a file with credentials

Still no anti-spam features or IMAP or anything like that. Please dont use this for production, this is a config provided for demonstration purposes.

##### Aliases ##### ext_if = "fxp0" table aliases db:/etc/mail/aliases.db table domains file:/etc/mail/domains ##### Pki ###### pki key "/etc/letsencrypt/live/" pki cert "/etc/letsencrypt/live/" ##### Basic Functions ##### listen on $ext_if tls pki auth-optional listen on $ext_if smtps pki auth listen on $ext_if port submission tls-require pki auth action "local" maildir alias action "outbound" relay ##### Matching rules required for anything to happen ###### match from any for local action "local" match auth from for any action "outbound" ##### More complex rules for relay control options ###### smtp max-message-size 50M

A wild "domains" appeared! Here's what that looks like:

hostname.domain.tld domain.tld

This will simplify expanding the list of domains hosted from this server later.


This version of OpenSMTPd adds TLS authentication and user aliases for Postmaster, Webmaster, and Security. This way an encrypted tunnel with pki authentication is possible, NOT GUARANTEED, and the administrator can receive email from external sources at addresses like ""

Please note that you need a valid PKI Certificate for TLS to work, these can be attained by adding a HTTP server to your setup open on 80 and 443, then installing and configuring LetsEncrypt. After you have a webserver for LetsEncrypt to talk to, you can tell OpenSMTPd to use it too through the config below. Be aware that this setup still does not have Spam filtering, or any additional security that would be necessary for production, or really any public, servers.

To add or change user aliases, which is not the same thing as virtual users (which will be added later), edit /etc/mail/aliases and make the changes, then convert aliases to aliases.db. For OpenBSD: >doas makemap /etc/mail/aliases

Here's an overview of whats in aliases, "adminuser" should be swapped with your account:

# # $OpenBSD: aliases,v 1.67 2019/01/26 10:58:05 florian Exp $ # # Aliases in this file will NOT be expanded in the header from # Mail, but WILL be visible over networks or from /usr/libexec/mail.local. # # >>>>>>>>>> The program "newaliases" must be run after # >> NOTE >> this file is updated for any changes to # >>>>>>>>>> show through to smtpd. # # Basic system aliases -- these MUST be present #MAILER-DAEMON: postmaster postmaster: adminuser # General redirections for important pseudo accounts daemon: root ftp-bugs: root operator: root www: root # Redirections for pseudo accounts that should not receive mail _bgpd: /dev/null _dhcp: /dev/null _dpb: /dev/null _dvmrpd: /dev/null _eigrpd: /dev/null _file: /dev/null _fingerd: /dev/null _ftp: /dev/null _hostapd: /dev/null _identd: /dev/null _iked: /dev/null _isakmpd: /dev/null _iscsid: /dev/null _ldapd: /dev/null _ldpd: /dev/null _mopd: /dev/null _nsd: /dev/null _ntp: /dev/null _ospfd: /dev/null _ospf6d: /dev/null _pbuild: /dev/null _pfetch: /dev/null _pflogd: /dev/null _ping: /dev/null _pkgfetch: /dev/null _pkguntar: /dev/null _portmap: /dev/null _ppp: /dev/null _rad: /dev/null _radiusd: /dev/null _rbootd: /dev/null _relayd: /dev/null _rebound: /dev/null _ripd: /dev/null _rstatd: /dev/null _rusersd: /dev/null _rwalld: /dev/null _smtpd: /dev/null _smtpq: /dev/null _sndio: /dev/null _snmpd: /dev/null _spamd: /dev/null _switchd: /dev/null _syslogd: /dev/null _tcpdump: /dev/null _traceroute: /dev/null _tftpd: /dev/null _unbound: /dev/null _unwind: /dev/null _vmd: /dev/null _x11: /dev/null _ypldap: /dev/null bin: /dev/null build: /dev/null nobody: /dev/null _tftp_proxy: /dev/null _ftp_proxy: /dev/null _sndiop: /dev/null _syspatch: /dev/null _slaacd: /dev/null sshd: /dev/null # Well-known aliases -- these should be filled in! root: root # manager: # dumper: # RFC 2142: NETWORK OPERATIONS MAILBOX NAMES abuse: adminuser # noc: root security: adminuser # RFC 2142: SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET ERVICES hostmaster: adminuser # usenet: root # news: usenet webmaster: adminuser # ftp: root

Now, here's whats in opensmtpd.conf.local:

##### Aliases ##### ext_if = "fxp0" table aliases db:/etc/mail/aliases.db ##### PKI ###### pki key "/etc/letsencrypt/live/" pki cert "/etc/letsencrypt/live/" ##### Basic Functions ##### listen on $ext_if tls pki auth-optional listen on $ext_if smtps pki auth listen on $ext_if port submission tls-require pki action "local" maildir alias ##### Matching rules required for anything to happen ###### match from any for local action "local" ##### More complex rules for relay control options ###### smtp max-message-size 50M


I have been volunteering for a non profit for a couple months now. It is run by a very experienced man who outright offered to mentor me as Linux Systems Admin. The opportunity to get direct production experience early in my career with technologies that fascinate me, under the guidance of someone experienced, is worth the lack of pay.

One of the many projects we've been working on is the building of a self hosted email server, using OpenSMTPd on OpenBSD. I have been instructed to works different levels of complexity in its configuration, receiving help and guidance as needed.

A major frustration in this project has been the lack of examples that demonstrate different concepts/configurations in OpenSMTPD. Many guides and configurations exist, but all are for woefully outdated versions of OpenSMTPd that can no longer be used by beginners as a reference. You know if they are out of date when they include many opensmtpd.conf lines containing "accept for ..." [The following can be used as a reference for older versions](

accept from any for domain “” alias deliver to mbox

To help others with this problem. I will be trying to leave example configurations as I work through this project, so that others can see how to work through similar projects themselves.


This configuration allows local users, ones that you can manage with useradd and passwd, to send and receive email from eachother and external emails via telnet with the received mail being deposited in ~/Maildir

Users can receive email if the server has a correct MX record, and the username is used as the user @ that domain:


ext_if = “fxp0”

Basic Functions

listen on $ext_if

action “local” maildir

Matching rules required for anything to happen

match from any for local action “local”

More complex rules for relay control options

smtp max-message-size 50M


Proton by Valve has greatly increased the number of playable games on Linux, but almost all games running in proton break when Steam is run from firejail.

A couple fixes can be introduced to allow Proton games to run, the errors referred to here come from running Steam from a terminal and watching the feed (just type "steam" into a terminal and hit 'Enter').

#/usr/bin/env: 'python3': Permission denied

Edit /etc/firejail/steam.profile and add the line:

noblacklist /usr/bin/python*


ERROR: home '/home/user/.local/share/Steam/ubuntu1232/' from LDPRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored

Edit /etc/firejail/steam.profile and comment out "seccomp" with "#", like so:


This will expose a lot of kernel surface area, reducing the effectiveness of Firejail in protecting the remainder of the operating system from a compromised steam client or a game launched within it. You have to decide if it is worth the games you are playing.

Also consider not playing games on a machine that needs security, you can always buy a chromebook for banking or shopping.

A more open seccomp filter could be generated by running strace on steam, but I am too lazy to do this myself. I once tried, but the syntax of Firejail was undocumented and a lot of syscalls I tried to add to a whitelist from strace were considered invalid to firejail.

Additional problems can sometimes be fixed by removing the steam overlay for a game.

Hope this helps someone; Glory to Linux


In developing an awareness of what God is, Nietzsche thought we could reach a stage of emancipation in which endowed our own image of God, our own image of ourselves, with our own morality.

But Nietzsche had deceived himself into thinking we could somehow let go of society's expectations. Society's morality is dictated by the pain of our ancestors, generally our weaker ancestors, and their attempts restrain the stronger who trample them. We are raised to not be a singular and focused will, but a will burdened by the wills our ancestors, and ultimately our neighbors.

He believed we could evaluate and uproot the morality that society pushes upon us, unburdening our core and unique self which was formed by the pain that we exclusively experienced. He believed we could become our own Gods, standing outside ourselves and judging ourselves with our morality as God would, thereby directing ourselves as our own masters.

Herein Nietzsche became emancipatory beyond reason and evidence. He somehow believed we were not deeply entrenched in the traditions of our forefathers, and that we could remake ourselves with exclusive reference to the here and now.

What is here and now, is what our forefathers left us. God, and morality, starts as an embodiment what our ancestors experienced and learned from pain in the world around us.


I do not regret what I have written.

I regret you having read it.


God is the ultimate other.

The full embodiment of how we see ourselves from the perspective of others.

Society is our imagined audience, as we act in our daily lives.

But our imagined audience is different throughout our day. And in private life, we can sometimes partake in actions with no audience.

When we reflect on our private actions, we do so from a more God-like perspective. Imaging all the moral judgements that could be made about us, with no particular person or persons in mind.

God is the totality of expectations, "morality," laid upon us by those around us.