All posts by Firdaus Aris

How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking by Sönke Ahrens

This book changed the way I take notes and read books. It reminded me that what you gain from a book is more important than how many books you read in a year.

The book explores the Zettelkasten method in a tool-agnostic way, which I find especially valuable. Rather than promoting specific apps or platforms that may not stand the test of time, the book focuses on timeless principles of thinking, connecting ideas, and building lasting knowledge.




View all my reviews

Ten Timeless Lessons from “The Greatest Salesman in the World”

Og Mandino’s classic The Greatest Salesman in the World is built around ten short scrolls, each meant to be read daily for thirty days until its message becomes instinct rather than intention. Though written as guidance for salespeople, the ideas underneath are really about how anyone builds a life of discipline, resilience, and purpose. Here’s what each scroll teaches, and why the lessons still hold up.

1. Change Starts with a Decision, Not a Circumstance

The first scroll frames transformation as a deliberate act rather than something that happens to you. The core idea is that habits, not talent, not luck, not even experience, separate those who succeed from those who don’t. Mandino goes so far as to suggest that too much “experience” can calcify into stale assumptions, while good habits, deliberately built through repetition, become the real engine of growth. The practical takeaway: pick the behaviors you want to define you, and repeat them until they no longer require willpower.

2. Approach People with Genuine Warmth

The second scroll makes an unusual claim for a book about sales: that love, approaching every person and every circumstance with goodwill, is the most powerful tool available. Rather than treating warmth as naive, it’s framed as strategic and durable, a way of disarming hostility and building trust that raw persuasion never could. It extends inward too: treating yourself with the same care you’d extend to others, guarding your body, mind, and spirit from neglect.

3. Persistence Beats Talent

The third scroll is essentially a meditation on not quitting. It uses vivid imagery, a woodsman’s repeated axe blows eventually felling a massive tree, a single raindrop wearing down a mountain, to argue that consistent, unglamorous effort compounds into results that look impossible from the outside. Failure isn’t treated as a signal to stop; it’s treated as data that brings you statistically closer to success. The scroll also pushes back against the instinct to quit early in the day: the extra effort made right before stopping is often what separates outcomes.

4. You Are Irreplaceable, Act Like It

Scroll four is about individuality as an asset, not a liability. No one else has your exact combination of experience, voice, and perspective, and trying to imitate others wastes the one thing that actually makes you valuable. It also introduces a practical boundary: keeping personal and professional life separate enough that neither one erodes the other, while still drawing on the same underlying sense of purpose in both.

5. Treat Today Like It’s the Only Day You Get

The fifth scroll is a call to stop living for yesterday’s regrets or tomorrow’s plans. Since neither the past nor the future can actually be acted on right now, the only rational use of attention is the present day. This isn’t about recklessness; it’s about urgency. If today were truly your last chance to work, love, or connect with the people around you, what would you stop postponing?

6. Master Your Moods Instead of Being Ruled by Them

Scroll six acknowledges something most self-help advice glosses over: emotions cycle naturally, and some days will simply feel worse than others. Rather than pretending otherwise, it offers a practical countermeasure: deliberately acting opposite to a negative feeling (forcing energy when tired, projecting confidence when afraid) so that behavior leads mood instead of the other way around. It also warns against the opposite failure mode: unchecked overconfidence, which is just as destabilizing as despair.

7. Keep a Sense of Humor About It All

The seventh scroll argues that taking yourself too seriously is its own kind of trap. Nearly everything that feels urgent today will be irrelevant in a decade, so there’s real value in a phrase repeated throughout the scroll: this too shall pass. That applies equally to setbacks and to victories; neither should be allowed to distort your sense of proportion.

8. Set Goals Bigger Than What Feels Comfortable

Scroll eight is about deliberately setting ambitious targets rather than modest, “safe” ones, the idea being that aiming high and falling short still lands further than aiming low and succeeding. It also emphasizes stating goals publicly, since accountability to others tends to sharpen commitment in a way private intentions rarely do.

9. None of It Matters Without Action

The ninth scroll is the shortest conceptual leap but arguably the hardest to live by: ideas, plans, and even the best intentions are worthless until they’re acted on. Procrastination is treated as a form of fear, and the antidote is simply immediate motion: acting before hesitation has time to set in, over and over, until action itself becomes the default response to any opportunity or obstacle.

10. Ask for Guidance, Not Just Outcomes

The final scroll shifts from self-discipline to humility. Rather than a prayer for wealth or success directly, it’s framed as a request for the wisdom and strength to earn those things: help in becoming someone equal to the opportunities that arise, rather than a shortcut around the work required to get there.


Why it still resonates: Strip away the sales-training framing, and the ten scrolls read as a fairly complete operating system for personal discipline: habit formation, emotional regulation, resilience, humility, and a bias toward action. That’s likely why the book has stayed in print for decades and continues to be referenced far outside the sales profession it was originally written for.

Getting n8n Running Locally with SSL: The Port 443 Dilemma and How I Solved It

Setting up n8n to run locally with SSL sounds like it should be straightforward. After all, it’s just a matter of pointing to some certificate files and changing a port, right? Well, what I thought would be a quick 10-minute task turned into an hours-long debugging session that taught me some valuable lessons about n8n’s configuration quirks.

I needed this setup specifically for Telegram bot webhooks, which have strict requirements: HTTPS only, and the webhook URL must use one of Telegram’s supported ports: 80, 88, 443, or 8443. N8n’s default port 5678 simply won’t work for Telegram webhooks, making this SSL configuration a necessity, not just a nice-to-have. The challenge was further complicated by running this in my homelab with a dynamic IP from my ISP, requiring me to use a subdomain from my hosting provider to make the service accessible from the internet.

In this post, I’ll walk you through my experience, the mistakes I made, and the eventual solution that got everything working smoothly using proper HTTPS that satisfies Telegram’s webhook requirements in a homelab environment.

The Goal: Telegram API Webhook Requirements

My objective wasn’t just about having a “nice” SSL setup—it was a hard requirement. I needed to set up a Telegram bot webhook, and Telegram’s API has specific requirements for webhook URLs:

– Must use HTTPS (not HTTP

– Must use one of the supported ports: 80, 88, 443, or 8443 (other ports won’t work)

– Must have a valid SSL certificate

– Must be accessible from the internet (no localhost URLs)

This meant n8n’s default port 5678 was completely unusable for my use case. Adding to the complexity, my server runs in my homelab with a dynamic IP issued by my ISP, so I needed to use a subdomain from my hosting provider that points to my home network.

I needed to run n8n on my local server using HTTPS with a valid domain name, accessible via:

Must be accessible from the internet (no localhost URLs)

https://example.yourdomain.net:443

or

https://example.yourdomain.net:8443

I set this up inside a Proxmox LXC container and wanted to run n8n directly with SSL enabled, no reverse proxy, no complicated routing, just clean and simple HTTPS that would satisfy Telegram’s webhook requirements while working with my dynamic IP homelab setup.

First Attempt: The Port 443 Disaster

Before diving into the SSL configuration, I had to solve the dynamic IP challenge. Since my homelab runs on a dynamic IP from my ISP, I set up a subdomain (example.yourdomain.net) through my hosting provider that points to my home network. This involved configuring dynamic DNS updates to keep the subdomain pointing to my current IP address.

With the DNS sorted, I started by obtaining an SSL certificate using certbot in manual mode via DNS challenge. After updating the TXT record and getting the certificates, I had the familiar files:

/etc/letsencrypt/live/example.yourdomain.net/fullchain.pem
/etc/letsencrypt/live/example.yourdomain.net/privkey.pem

Confident this would work, I configured my systemd service like this:

[Service]
Environment="N8N_PORT=443"
Environment="N8N_SSL_CERT=/etc/letsencrypt/live/example.yourdomain.net/fullchain.pem"
Environment="N8N_SSL_KEY=/etc/letsencrypt/live/example.yourdomain.net/privkey.pem"
ExecStart=n8n start

Everything looked perfect on paper. But when I tried to access the URL, I was greeted with frustrating SSL errors:

  • Chrome: ERR_CERT_AUTHORITY_INVALID
  • curl: (35) SSL routines:ssl3_get_record:wrong version number

I spent way too much time rechecking DNS records, reissuing certificates, and even considering falling back to plain HTTP on port 80. Nothing worked.

The Eureka Moment: The Missing Protocol

After hours of troubleshooting, I discovered the real culprit. Despite providing certificates and configuring SSL, n8n wasn’t actually serving HTTPS at all. The missing piece was this single environment variable:

ini

Environment="N8N_PROTOCOL=https"

Here’s the key insight: Without explicitly setting N8N_PROTOCOL, n8n defaults to HTTP, regardless of what port or certificates you configure. The SSL certificate files were essentially being ignored.

Switching to Port 8443: Telegram-Compatible Alternative

Since I’d already spent considerable time wrestling with port 443 and wanted to avoid conflicts with other services that might need that port, I decided to use port 8443 instead. Fortunately, Telegram’s webhook API accepts both 443 and 8443, making this a perfect alternative.

Here’s my final working systemd service configuration:

ini

[Service]
Environment="N8N_PORT=8443"
Environment="N8N_PROTOCOL=https"
Environment="N8N_SSL_CERT=/etc/letsencrypt/live/example.yourdomain.net/fullchain.pem"
Environment="N8N_SSL_KEY=/etc/letsencrypt/live/example.yourdomain.net/privkey.pem"
ExecStart=n8n start

After reloading and restarting the service:

bash

sudo systemctl daemon-reload
sudo systemctl restart n8n

Finally, accessing https://example.yourdomain.net:8443 worked flawlessly. The SSL handshake succeeded, browsers were happy, and curl returned actual data instead of cryptic errors.

Key Lessons Learned

Through this experience, I learned several important things:

1. Always Set the Protocol Explicitly If you’re serving over HTTPS, you must define N8N_PROTOCOL=https. This isn’t optional or implied—it’s required.

2. Telegram Webhook Requirements Are Strict If you’re setting up Telegram bot webhooks, you must use HTTPS on one of the supported ports: 80, 88, 443, or 8443. No other ports will work, and HTTP is not accepted. This makes proper SSL configuration mandatory, not optional.

3. Homelab Dynamic IP Solutions Work Well Running webhooks from a homelab with dynamic IP is totally feasible using a subdomain from your hosting provider. The key is ensuring your dynamic DNS updates are reliable and your port forwarding is correctly configured.

4. Port 443 Requires Extra Considerations Running on port 443 may require additional steps:

  • Ensuring the port is free from other services
  • Dealing with potential conflicts with web servers

5. DNS-01 Challenge Works Great for Homelab The DNS-01 challenge with Certbot is particularly good for homelab setups since you don’t need to expose port 80 for validation. Just remember that certificates issued this way won’t automatically renew without proper hooks.

6. Error Messages Can Be Misleading If you see “wrong version number” errors from curl or SSL-related browser errors, suspect a protocol mismatch between what you think you’re serving and what’s actually being served.

Final Thoughts

While it’s technically possible to serve n8n on port 443 with valid SSL, using an alternative port like 8443 is often more practical, especially in development environments where you might have multiple services running.

The real lesson here is that n8n’s SSL configuration requires both the certificate files and the explicit protocol setting. Miss either one, and you’ll find yourself debugging SSL errors that don’t actually indicate SSL problems.

Hopefully, this saves someone else from spending hours debugging what turned out to be a single missing environment variable. Sometimes the simplest solutions are the ones that elude us the longest!


Have you run into similar configuration gotchas with n8n or other self-hosted tools? Share your experiences in the comments below.

Book Review: The Motive: Why So Many Leaders Abdicate Their Most Important Responsibilities by Patrick Lencioni

The Motive: Why So Many Leaders Abdicate Their Most Important Responsibilities by Patrick Lencioni

My rating: 4 of 5 stars


“The Motive” by Patrick Lencioni argues that many leaders fail because they view leadership as a reward rather than a responsibility. The book contrasts two types of leaders: those who are responsibility-centered, willing to do the hard, often uncomfortable work of managing people, holding others accountable, and providing claritty, and those who are reward-centered, who avoid these tasks and focus on status or perks. Through a fictional story about a struggling CEO named Shea, Lencioni shows that real leadership requires humility, courage, and the commitment to serve others, not just enjoy the benefits of the title.



View all my reviews

Book Review: Twelve Pillars by Jim Rohn

Twelve Pillars by Jim Rohn

My rating: 5 of 5 stars


Twelve Pillars by Jim Rohn is a hidden gem that delivers powerful life lessons through a simple yet profound story. I really liked how the book blends storytelling with practical wisdom, making each of the twelve pillars easy to understand and apply. It reminded me that success isn’t just about ambition or hard work, it’s about character, discipline, relationships, and continual growth. Every chapter felt like a conversation with a wise mentor, and by the end, I felt genuinely inspired to reflect and take action in my own life.



View all my reviews

Book Review: How to Write Best-Selling Fiction by James Scott Bell

How to Write Best-Selling Fiction by James Scott Bell

My rating: 5 of 5 stars


James Scott Bell offers a practical guide to writing fiction that connects with readers and sells. The book covers essential elements like strong story structure, character-driven plots, and emotional stakes — all framed through the “LOCK” system: Lead, Objective, Confrontation, and Knockout. Bell walks writers through planning, writing, and editing a novel with clear examples, actionable checklists, and advice from a commercial fiction perspective. He also dives into the habits of professional writers, the psychology of the reader, and how to make your writing market-ready without losing your unique voice. It’s a toolbox for serious fiction writers who want to turn ideas into compelling, publishable novels.



View all my reviews

Book Review: How To Write Your First Book: Tips On How To Write Fiction & Non Fiction Books And Build Your Author Platform by Stefanie Newell

How To Write Your First Book: Tips On How To Write Fiction & Non Fiction Books And Build Your Author Platform by Stefanie Newell

My rating: 4 of 5 stars


A quick, beginner-friendly guide by Stephanie Newell for anyone stuck on starting their first book. Whether fiction or nonfiction, it gives simple tips to help you focus, write, and think about your author platform. No fluff, just enough to get you moving.



View all my reviews

Book Review: Key Performance Indicators: Developing, Implementing,and Using Winning KPIs by David Parmenter

Key Performance Indicators: Developing, Implementing,and Using Winning KPIs by David Parmenter

My rating: 4 of 5 stars


This book cuts through the noise and gets straight to what KPIs should be tools that drive behavior and align with strategy. Parmenter’s key point is that not all metrics are KPIs. Real KPIs are non-financial, measured frequently, and tied to team actions.
The 12-step model for implementation is practical and detailed. It’s not a one day fix, but it gives you a clear roadmap. I found it especially useful for structuring KPI tracking in software project I currentlty working on.
If you’re in charge of performance at any level, this book helps you stop tracking what’s easy and start measuring what matters. Definitely worth reading.



View all my reviews

Book Review: The Deep Learning Revolution by Terrence J. Sejnowski

The Deep Learning Revolution by Terrence J. Sejnowski

My rating: 4 of 5 stars


The Deep Learning Revolution by Terrence J. Sejnowski is a great book for anyone new to deep learning. It helped me understand the basic ideas behind how computers can learn, like how neural networks and algorithms such as backpropagation work. The book also tells the story of how deep learning developed over time, from early ideas that were ignored to the powerful tools we use today. Sejnowski shares real examples, key people, and major breakthroughs in a way that’s easy to follow. It also touches on how deep learning is used in things like speech recognition and self-driving cars, and why we need to think carefully about its impact on society.



View all my reviews

Book Review: Computer Vision by Jean-Jacques Reibel

Computer Vision by Jean-Jacques Reibel

My rating: 4 of 5 stars


Computer Vision (Computer Science) by Jean-Jacques Reibel is an accessible and concise introduction for anyone curious about how machines perceive and interpret visual information. Designed as a starting point for beginners, this book breaks down the complex world of computer vision into understandable concepts, covering its history, core techniques, and real-world applications—from facial recognition to autonomous vehicles. Whether you’re a student, a tech enthusiast, or a professional exploring AI, this guide offers a solid foundation to help you begin your journey into the fascinating field of computer vision.



View all my reviews