### Teknikal's_Domain

#<NTA:NnT:SSrgS:H6.6-198:W200-90.72:CBWg>

# Email Filtering With Sieve

2021-02-09 5 min read Unable to load comment count

Sieve, defined in RFC 5228, is a programming language constructed for the express purpose of filtering email messages. And, fun fact, on a Sieve-enabled server, it can do a lot of work.

Continue reading

# Shortening My URLs With tekdmn.me

2021-02-08 6 min read Unable to load comment count

Has anyone noticed that I’ve been giving out URLs of the form tekdmn.me and not teknikaldomain.me? Well, not only did I buy another domain that’s just a shorter version of this one, but it’s also, at the moment, the singular domain I have that’s 100% serverless. How? Cloudflare, obviously.

Continue reading

# AbuseIPDB Checking With Postfix

2021-01-28 11 min read Unable to load comment count

So if you’ve not heard, there’s this website called AbuseIPDB, which, no affiliation, is a website where webmasters can submit reports of abusive IP addresses, and then query those reports, either manually, or using their REST API. And this is how I did exactly that, to help cut down some of the spam on my email server. Let’s get started.

Continue reading

# Temperatures as You Like

2021-01-27 4 min read Unable to load comment count

So here’s a short one for you: Do you like your temperatures expressed as °F, or °C?1

Well, there’s one fundamental issue with me writing like this. I can put, say, “I decreased temperatures by 20°F by cleaning the fans,” but if you’re a °C person, then you need to take a quick detour to convert that to units that you’re more familiar with. A common way to do this would be to notate that as “20°F (11.11 °C)", which works, but I’m effectively stating myself twice, and hoping that I actually got my numbers right. Plus that opens up the possibility for writing °F (°C) one time, and °C (°F) another. So for basically no benefit except me getting to be proud of myself, let’s improve on that.

Continue reading

# Improving My Site With Cloudflare Workers and Amazon S3

2020-04-05 16 min read Unable to load comment count

So as of now, anything much more over 1 MB I’m not going to take up space on all my devices hosting — I’ll just offload it to someone else. And how do I get it back? JavaScript.

No wait, I’m actually serious. As of now, I essentially have Cloudflare as a CDN that’s backed by the Amazon S3 storage service. Posts such as the one about light balance have everything but the featured image… not here anymore.

Continue reading

# Today I Discovered: Graph Databases

2020-03-19 4 min read Unable to load comment count
So if you’re used to databases, you know what SQL is, most likely, and the most common SQL (relational) databases. If you’re a little more advanced, maybe you’ve heard of or even messed around with NoSQL databases. Well today, I just found something cool: graph databases — a cross between a database, and mathematical graph theory. SQL / Relational Databases SQL, or Structured Query Language, is a language that allows you to perform operations on a database, more or less independent of the database itself, the file format on disk, etc. Continue reading

# TCP, UDP, and SCTP

2020-03-18 6 min read Unable to load comment count

Now I know that if you’ve been on the internet long enough, you’ve at least heard the term TCP thrown around. Maybe UDP too, and to any networking people here, you should be very familiar with what they are and how they compare. Well today, I bring the unheard third layer 4 protocol into the spotlight: SCTP

Continue reading

# My Quick Peek Into Redis

2020-03-16 2 min read Unable to load comment count

Yeah, it’s definitely been somthing of a journey, alright. Redis, for those unaware, is, essentially an in-memory key-value store. At the most pasic level, this seems fine. Start looking into the documentation, and.. well it just seems to do everything really.

Continue reading

# Automating Algolia Search Indexing

2020-02-14 5 min read Unable to load comment count

If you haven’t noticed by this point, there’s a brand new search bar at the top of this blog now, and you can even get to it anywhere by pressing “s”, isn’t that neat! Anyways, there’s a bit of a story behind that, because getting those results in place, well… isn’t exactly the easiest.

Continue reading

# Python: Multithreading, Multiprocessing, and the GIL Explained

2020-02-08 3 min read Unable to load comment count

One of the many things that make Python such a popular and powerful language is that you can easily divide your code into multiple concurrent threads rather easily, take this for example:

from threading import Thread

def thread_func(n):
print(f"I'm thread number {n}!")

for t in range(4):
t = Thread(target=thread_func, args=[t])
t.start()


4 threads! Easy, right?

Well, not exactly.

Continue reading