Forwarding large RTP port ranges to Freeswitch in Docker

tl;dr If you run Freeswitch in Docker and need to forward a RTP port range, you'll run into problems. You can try using the iptable solution explained here. (Exactly the kind of manual setup mess that container deployment is there to solve.)


How do you forward a large number …

Goroutines at Baker's Day, a deep dive

Recently, I've interviewed a bunch of Gophers, as more and more of the engageSPARK platform is moving over to Go. One thing I noticed is that there is quite a bit of confusion around goroutines, and how they're different/better/faster than OS-threads. That's a bit worrisome, because as a …

Org-mode Everywhere with Orgzly and Syncthing!

tl;dr: Read your org-files on your Android device with Orgzly and keep them in sync with your laptop and other devices with Syncthing.

Org-mode is amazing. You know this, or should.

I've a hundred org files that remember things for me, about articles I read or ideas I had …

Why NGINX returns 405 for a POST with a 504 GATEWAY TIMEOUT, and other Gotchas around its error page directive

NGINX' error_page directive keeps me busy, again. This week at engageSPARK we noticed a seemingly weird behavior by NGINX: On POST requests, NGINX would sometimes return a 405 METHOD NOT SUPPORTED response. This is weird, to say the least: Either your web application (the upstream server) supports POST or it …

Notes on the course “RITx's CYBER501x: Cybersecurity Fundamentals on edx”

My notes from the Cybersecurity Fundamentals course on edX.

For whom?

In large parts, the fundamentals were really basic—what's a port, what's a hash?—so I skipped them. Generally, I recommend the course for people that need a refresher on networking and administration, and want to start getting an …

Reading Code: Python's requests library

In preparation for the latest PizzaPY I browsed the code of Python's requests library. (You've got to love open source.) I'm of the opinion that must read lots of code in order to be able to write decent code yourself. The more diverse you read, the better for you. Basically …

How to Fix Nginx Soft 404: When a 404 Error Page Returns 200

Looking at Google Webmaster's Search Console, I noticed a crawl error:

The target URL doesn't exist, but your server is not returning a 404 (file not found) error.

Opening the URL, I got my custom (boring) 404 error page, and sure enough the status code of the HTTP response was …

How to Setup a Replica for PostgreSQL 9.x

The following steps I use to setup a new Postgresql 9.5 replica.

Why do I need them? The PostgreSQL docs are excellent in providing both an understanding of the topic of replication, as well as giving details on what to do. Still, I find myself asking: Great, I get …

Static Type Checking with MyPy

This Tuesday saw the 23rd gathering of the the PizzaPY Pythonistas in Cebu City, Philippines. The topic was “Static type-checking with MyPy”, which I presented.

The presentation and the demo files are on GitHub. All you need is a UNIX, Docker and Git—the rest Docker and Bash scripts do …

Engineering Beyond Software

We software engineers are puppies when it comes to engineering.

Building stuff for us is still largely a matter of instinct and luck. Yes, we iterate fast—because we don't get it right the first time. You can see this all around: Frameworks replace each other within a year, so …