Posts

Email trifecta: SPF, DKIM, and DMARC with AWS SES

To be honest, based on my experiences, sending email is hard. Sometimes the email we expect goes to inbox, it is not. Internet is a weird place we love. For this reason, I am delegating email wroks to 3rd party, like AWS SES. But's also not like simple setup for using it. Whenever setup email on AWS SES, basically we need to setup: Create configuration set Verify domain ownership Setup correct SPF, DKIM, and DMARC Configuration set Think of a configuration set as a "sending profile" for your emails. By default, when you send an email with SES, it's like sending it into a black box. You know it was sent, but you don't know what happened next. Did it get delivered? Did it bounce? Did the user mark it as spam? A configuration set allows you to apply a specific set of rules and, most importantly, get detailed feedback on the outcome of your emails. For example: noreply email .  With noreply email , you're not expecting a reply, but you abso...

Upcloud dev vps benchmark

This is 3 EUR VPS plan from UpCloud. Basic System Information: --------------------------------- Uptime : 0 days, 0 hours, 1 minutes Processor : AMD EPYC 7542 32-Core Processor CPU cores : 1 @ 2894.560 MHz AES-NI : ✔ Enabled VM-x/AMD-V : ❌ Disabled RAM : 864.4 MiB Swap : 0.0 KiB Disk : 9.8 GiB Distro : Debian GNU/Linux 13 (trixie) Kernel : 6.12.38+deb13-amd64 VM Type : KVM IPv4/IPv6 : ✔ Online / ✔ Online IPv6 Network Information: --------------------------------- ISP : UpCloud Ltd ASN : AS202053 UpCloud Ltd Location : Madrid, Madrid (MD) Country : Spain fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda2): --------------------------------- Block Size | 4k (IOPS) | 64k (IOPS) ------ | --- ---- | ---- ---- Read | 39.85 MB/s (9.9k) | 409.00 MB/s (6.3k) Write | 39.95 MB/s (9.9k) | 411.15 MB/s (6.4k) Total | 79.80 MB/s (19.9k) | 820.16 MB/s (12.8...

Unlearning for true growth

"It ain't so much the things we don't know that get us into trouble. It's the things we know that just ain't so." "Bukan hal-hal yang tidak kita ketahui yang membuat kita bermasalah. Melainkan hal-hal yang kita tahu, padahal sebenarnya tidak begitu" This isn't just a clever saying; it's a profound truth. Often, our biggest obstacles are not our areas of ignorance, but our stubbornly held false beliefs. We act upon these "truths" as if they are gospel, only to find ourselves in a bind. The key to unlocking great performance, or even just getting out of a rut, often begins with a crucial first step: identifying what we know for sure that just ain't so. But, what does this really mean? Imagine you're trying to improve a skill, whether it's learning a new language, getting better at a sport, or excelling in your career. You've been following a certain approach because "everyone knows" it's the right way. Bu...

Better Tmux and Neovim integration

One moment you're fluidly navigating your Neovim splits with Ctrl + h/j/k/l, the next you're fumbling with Ctrl + b and the arrow keys to get to the next pane in Tmux. It's a classic case of split-personality disorder, but for your terminal workflow. The goal? A single, unified set of keybindings that just works, whether you're inside a code file or in a new shell. Before we can use any fancy plugins, we need a way to manage them. Tmux Plugin Manager (TPM) is the de facto standard for this. It's like having a package manager for your Tmux configuration. The Vim-Tmux-Navigator Plugin The Vim-Tmux-Navigator is the perfect solution. It's an intelligent plugin that knows when you're in Neovim and when you're not. Without this plugin, Ctrl + h in a Neovim session is just a backspace. But outside of Neovim, you want it to move to the pane on the left. The Vim-Tmux-Navigator solves this by using a small shell script check to see what application is runni...

Introducing IPM Poqer: a planning poker tool

Image
In software development world, effective project management and accurate estimation of tasks are crucial for delivering successful products. One popular technique that has emerged to facilitate this process is Planning Poker . This collaborative estimation method not only enhances accuracy but also fosters team engagement and communication. The goal of this method is to estimate the effort or complexity of tasks, a consensus-based technique used in software development. It help teams reach a shared understanding of the work involved in a project. The software we used to do planning poker named pointing poker .Once a consensus is achieved, the final estimate is recorded for the user story or task, and the team moves on to the next item. As a web developer, I want try to re-create this software. It simple enough to create and can be finished with no much time. The problem are: Communication Challenges Before the session, the team prepares a list of user stories or tasks that need estimat...

Setup automatic backup scripts

Imagine this scenario, we have one or more database servers, one backup server. How do we setup automatic backup server? Let's try with this stupid strategy. It not stupid if this work, right? Use pg_dump for logical backups (better for smaller databases and easier to restore selectively) Include timestamp in backup names Compress the backup to save space Handle error logging Clean up old backups This is the script we will use. Please change the credential and adjust the host. Since I am using docker, you might need to adjust it also. #!/bin/bash # Backup configuration BACKUP_DIR="/path/to/local/backup" POSTGRES_CONTAINER="your-postgres-container-name" DB_USER="" DB_PASSWORD="" DB_NAME="your_database_name" BACKUP_RETENTION_DAYS=7 # Remote backup configuration REMOTE_USER="backup_user" REMOTE_HOST="your.backup.server" REMOTE_DIR="/path/to/remote/ba...

First thing you need to do after purchase VPS

This is note for me as a noob. After purchasing VPS, there are a lot of thing to do. Hardening the box is the most important thing to do. Still after managing a lot of servers, I am always nervous. In this post I am using Ubuntu. I never try another distro beside debian based distro. Add public ssh key Yes, it must. Don't make a room for attacker. Unless your ssh-key is stolen, it impossible for attacker to log on to your box.   Craete ssh-key from your computer. Please follow this awesome guide from Github: how to generate ssh-key . Then, the .ssh will created from your home directory. .ssh ├── authorized_keys ├── id_ed25519 ├── id_ed25519.pub ├── known_hosts ├── known_hosts.bak └── known_hosts.old Keep the id_ed25519 and id_ed25519.pub to the safest bunker you have. After that, to login to your VPS box without password, you have to upload the id_ed25519.pub to the box. ssh-copy-id -i ~/.ssh/id_rsa.pub YOUR_USER_NAME@IP_ADDRESS_OF_THE_SERVER Yes, of course. You c...