Goodbye WordPress! Hello Static (Hugo) and Netlify (static hosting and more).

It’s time to move my blog to version 3. This time we are going back in time and into the future at the same time. Before we begin, here is a little history of my blog: Version 1 - Blogger Version 1 ran on Blogger - which was essentially a static site generation platform. It gave you an editor, you would write your posts and then it would generate your complete site in HTML and even allowed you to publish it on your own server by uploading the result via FTP. [Read More]

Redis Snowflake UniqueID Module

Ever since Redis Modules were released into the wild, I wanted to write something nice and short and see how easy and fun it is to significantly extend Redis. It also helps that Dvirsky, my friend, works at Redis Labs and wrote RediSearch - a kick ass full text indexing and search engine that kicks all the other search engines’ performance ass (you should definitly try it out). For a while now, to try out new languages/frameworks/whatever I’ve been using Twitter’s Snowflake. [Read More]

EFF’s Dice Random Number Generator digitized to become

TL;DR – this is why (and how) I created the electronic version of EFF’s Dice. I love the Electronic Frontier Foundation (EFF) and believe in their just cause. I support it as much as I can and try to educate as many people as I can about their rights, privileges online and how to correctly behave in this new found jungle. A while back I got a post about their new “toy”/campaign EFF’s Random Number Generator also known as Dice. [Read More]

5 tips on future proofing your Medium posts

So, you’ve decided you want to blog or write on Medium – where all the cool kids hang out. Great. Remember there are other similar platforms to write and blog and at some point Medium (like everything else on the Internet) might lose its appeal or even, god forbid, shutdown.When that happens, what will happen to your posts? How can you and the rest of the internet reach it? There were numerous occasions in the past (the most recent one was Posterous) where the platform simply died and all the links pointing to it and all of their SEO goodness went to shaite. [Read More]

Lets Encrypt Error: The server could not connect to the client to verify the domain :: Failed to connect to host for DVSNI challenge

Are you using Lets Encrypt? (If not, you should go ahead and use it to generate SSL certificates to ALL of your web servers). If you want to run it on EC2 or GCE using the –standalone argument (./letsencrypt-auto certonly –standalone -d make sure port 443 (for SSL) is open on that server. Otherwise you’ll get the infamous: `Are you using Lets Encrypt? (If not, you should go ahead and use it to generate SSL certificates to ALL of your web servers). [Read More]

Tornado’s secure cookie support in Flask

I’ve recently had the chance to write a new project on AppEngine. It’s been a long time since I tried I was too lazy (as always) to setup servers just for that. I’ve decided to use Python but just to be sure I won’t be vendor locked into various AppEngine services I’ve decided to use: Flask (instead of webapp2) Cloud SQL (instead of DataStore) This will ensure that I can break out of AppEngine easily with minimal code changes. [Read More]

nsq-to-gs – Streaming NSQ messages directly to Google Cloud Storage

In addition to my previously published (very early) project to stream NSQ messages directly to BigQuery, I am happy to presents a modified version of nsq-to-s3 that supports streaming NSQ messages directly Google Cloud Storage. Grab it while its hot from the nsq-to-gs repo. I do see a future for a merged version of these two projects that supports both S3 and Google Cloud Storage but this would have to be enough for now. [Read More]

nsq-to-bigquery – Stream messages from NSQ directly to Google BigQuery

In the spirit of nsq-to-XXX such as nsq-to-http and nsq-to-file – I bring you the very first version of nsq-to-bigquery. nsq-to-bigquery, as the name suggest, streams data from an NSQ channel into Google’s BigQuery using the Streaming API and provide very effective means to stream data that should be then further analysed and aggregated by BigQuery’s excellent performance. This is a (very) initial version so it has some limitations and assumptions. [Read More]

gonionoo – Go wrapper for the Tor Network Status Protocol – OnionOO

I’ve bene running a Tor exit node in the Netherlands since August 2013. I believe in the cause of Tor and it was only a matter of time before I started adding code in some for or another. gonionoo is Go wrapper for OnionOO – the Tor Network Status protocol as is the first step in a slightly larger project I’m working on that I’ve been planning for a while ever since I’ve became a Tor exit node operator. [Read More]

MongoDB Replica-Set Aware Backup Script

I’ve created a nice little bash script to take MongoDB backups that is replicaset aware. It will only take a backup from a replica so if you have the classic master,replica,arbiter configuration you can setup the script via cron on both (current) master and replica and the backup will only run on the replica. It will then tar.gz the backup and upload it to Google Storage. It can be easily adapted to upload the backup to S3 using s3cmd or the aws cli (aws-cli). [Read More]