Blog posts
Below you can skim through the
267 blog posts
written over the years.
2023
2023-03-25
How to add Node.js & npm to jekyll in GitHub Codespaces
2023-03-25
Self-hosting miniflux with docker and provisioning with Ansible
2023-03-25
ChatGPT practical use cases and examples
2023-03-22
Programming on an iPad
2023-03-21
Minimal Ansible Playbook to provision a server
2023-03-17
3D printing with an iPad, Raspberry Pi and OctoPrint
2023-03-12
Update Node.js version on CloudFlare Pages
2023-02-22
yubikey spare keys
2023-02-22
malicious chrome extension
2023-02-21
How I edit this site on an iPad
2023-02-21
'Being agile' vs 'Doing Agile'
2023-02-10
I cannot wait for the passwordless authentication future of the web
2023-02-02
How to become a better Software Engineer
2023-01-22
OpenAI iOS Shortcut: Siri-like ChatGPT
2023-01-13
Artificial "intelligence"
2022
2022-12-27
Voracious RSS
2022-10-22
Escaping the bullshit web
2022-07-18
minimal-analytics, one year later
2022-07-14
Did an ES module migration, and it was okay
2022-07-12
Self-hosting nitter with docker-compose and nginx
2022-06-05
Fix node command not found using nvm
2022-04-23
Screen Wake Lock API
2022-04-08
Elixir GenServer name registration
2022-04-07
Web Workers + search index = decent blog search
2022-03-10
Barcode Detection API
2022-03-04
Kernel.===/3
2022-02-20
WebTransport
2022-01-18
Productive macOS tricks
2021
2021-12-31
elixir alias __module__
2021-12-30
cons
2021-12-27
My Domain-Driven-Design study path
2021-12-27
Domain events in domain driven design
2021-12-27
Aggregates in domain driven design
2021-12-04
Pattern matching with Enum.map in Elixir
2021-12-02
elixir mix test --stale --listen-to-stdin
2021-11-24
osint framework
2021-11-24
cqrs es with commanded in elixir
2021-11-16
Elixir Ecto guides and tutorials
2021-11-14
redirect route in phoenix
2021-10-30
What is a charlist in Elixir
2021-10-30
Most useful mac keyboard shortcut
2021-10-28
Vex, a validation library in Elixir
2021-10-27
exploring the github cli
2021-09-29
Spoonerism
2021-08-28
QR code
2021-08-01
Useful homebrew formulas for Mac
2021-08-01
4 rules of simple design
2021-07-14
Spotlight not working on Big Sur: how to fix Spotlight index on MacOS Big Sur
2021-07-14
7 Visual Studio Code extensions I regularly use
2021-07-04
duckduckgo short url
2021-07-03
mallet operator
2021-06-07
queueMicrotask
2021-06-06
manjaro connect bluetooth keyboard at login screen
2021-06-03
Experiment: Navigating the web with JavaScript disabled
2021-06-02
Discontinuing comments
2021-06-01
scroll-behaviour
2021-05-23
How many visitors block ads and web analytics?
2021-05-22
nmtui
2021-05-22
How to solve manjaro different login, missing plasma desktop package
2021-05-17
CAPTCHA
2021-05-14
Self-hosting with nginx + docker-compose
2021-05-11
Simple Server-sent events example in Node.js/JavaScript
2021-05-11
Lazy loading images in 11ty/eleventy
2021-05-06
How to test a function that works with time
2021-04-28
Making Minimal Analytics
2021-04-15
Beware of Monero mining attack through GitHub Actions and malicious Pull requests
2021-04-13
Switching to CloudFlare Pages, from AWS S3 + CloudFlare DNS
2021-04-06
Cos’è e com’è stato sviluppato il Lean Validation Playbook
2021-04-06
Simple Static site/blog search in 14 Lines of JavaScript
2021-04-05
What apps I'm currently self-hosting
2021-03-24
Manage multiple network connections in Manjaro (Wireguard VPN + Pi-hole)
2021-03-23
Self-hosted Miniflux + Wallabag
2021-03-10
Tracking RSS subscriptions with UTM parameters
2021-03-03
Learn Elixir - A study path
2021-02-19
Beware of new Ledger phishing emails from myledgerlive
2021-02-18
Read mbox file with mutt or Thunderbird
2021-02-17
Bitcoin is trademarked. Is it really?
2021-02-11
3D-printed Bitcoin desk watcher
2021-02-09
My reading stack with Miniflux/RSS & Pocket
2021-02-04
My notes while learning Elixir
2021-02-01
Let's learn some Elixir, again
2021-02-01
5$/month Self Hosted VPN with WireGuard
2021-01-30
Comments on cri.dev are BACK
2021-01-28
Put that in the URL, please
2021-01-22
A retrospective of 100k yearly pageviews
2021-01-19
Getting started with Mastodon
2021-01-05
About donations, free and paid content
2021-01-04
Pair AirPods with Linux Ubuntu
2021-01-03
From Mac to Linux
2021-01-03
Experimenting with Webmention
2021-01-02
2020 - A retrospective
2020
2020-12-03
How to convert Pandas Series column values to lowercase
2020-12-02
GreeMta Madrid Green Sustainability challenge
2020-11-28
Notes on 'Blogging for Business'
2020-11-27
Node.js 15 is here
2020-11-25
What is technical debt?
2020-11-18
Indie makers and the Sunk Cost Fallacy
2020-11-18
Cleanup docker dangling images
2020-11-06
Tracking HackerNews history in git
2020-11-06
Test driving a HackerNews scraper with Node.js
2020-11-05
How to make Polls with Plausible Analytics
2020-11-04
Fix npm process killed during npm install
2020-11-03
Communicating with Bangle.js Watch over BLE with Node.js
2020-11-02
Top resources for Bangle.js Watch Development
2020-11-02
How to fix xcode-select no developer tools found
2020-11-02
Bangle watch as an accelerometer mouse
2020-10-21
The High Privacy Cost of a “Free” Website
2020-10-20
Show realtime visitors on your website with Plausible Analytics and CloudFlare Workers
2020-10-17
Why privacy matters - Glenn Greenwald
2020-10-17
Notes "Edward Snowden interviewed by Ron Paul"
2020-10-12
Fast virtual scrolling with preact
2020-10-11
Get things done for real
2020-10-02
Notes on “I've got nothing to hide”
2020-09-24
What is a retrospective?
2020-09-12
Raspberry Pi as a local server for self hosting applications
2020-09-08
'But I have nothing to hide.'
2020-09-03
DIY IoT door monitor with ESP8266
2020-09-01
Watermark images with montage (ImageMagick)
2020-09-01
Simple Time-lapse with a Raspberry Pi
2020-07-28
4 Most powerful Mini-PCs in 2020
2020-07-23
Don't buy the AirPods Pro - Another Rattlegate story
2020-07-21
Simple email trick to manage your newsletters
2020-07-18
Techniques to improve SEO for a static website or blog
2020-07-17
Made 13 Dollars with Brave and Basic Attention token
2020-07-16
How to fix possible EventEmitter memory leak detected
2020-07-14
Simple event tracking with Plausible Analytics
2020-07-08
Notes on 'Marketing for Developers' - devmarketing.xyz
2020-07-06
How to solve Docker 'docker-credential-desktop not installed or not available in PATH'
2020-07-06
How to solve Docker 'Incompatible CPU detected'
2020-07-06
Get distinct field names of sub documents in MongoDB
2020-07-06
Aggregations with sub-documents in MongoDB
2020-06-20
Most valuable developer linux notebooks in 2020
2020-06-07
Install Homeassistant on Raspberry Pi
2020-05-28
Notes on "Code BEAM V 2020"
2020-05-27
Solve Verdaccio EINTEGRITY error
2020-05-26
Upgrading MongoDB 3.6 to 4.2 with brew
2020-05-26
Upgrade HTTP requests with X-Forwarded-Proto Header in HAProxy
2020-05-26
Authenticated uplinks with verdaccio
2020-05-20
Testing in Node.js by example using the SOLID principles
2020-05-20
Clean up Mac OS: How I freed 35GB of space
2020-05-18
Fixing 431 Request Header Fields Too Large in Node.js
2020-05-15
Setting up a Verdaccio npm registry
2020-05-12
Privacy-friendly alternatives to popular services and tools
2020-05-10
Elixir trick: start an Observer window with mix
2020-05-07
Validate your RSS feed
2020-05-07
Minimal dark mode with CSS and JavaScript
2020-05-03
Using µcompress to dramatically optimize static assets
2020-05-03
Ad blocking with Raspberry Pi and Pi-hole
2020-05-01
Optional chaining in Node.js 14 and JavaScript
2020-05-01
Nullish coalescing in Node.js 14 and JavaScript
2020-04-28
Road to Elixir: Monitor Crypto assets
2020-04-24
Resuming Elixir by self-hosting plausible analytics
2020-04-23
How to exclude Google Analytics in your Cypress E2E tests
2020-04-19
devblog: yet another static site generator, seriously
2020-04-07
Preferred Visual Studio Code theme in 2020
2020-04-05
Boring software development
2020-04-04
Full list of Chromium Puppeteer flags and command line switches
2020-03-30
How to solve Puppeteer Chrome Error ERR_INVALID_ARGUMENT
2020-03-30
How to connect puppeteer to a Proxy
2020-03-27
How to solve: Please specify which branch you want to rebase against
2020-03-09
Crawling a web site with browserless, puppeteer and Node.js
2020-03-08
Ultimate web scraping with browserless, puppeteer and Node.js
2020-03-07
Twitter OAuth Login with fastify and Node.js
2020-03-07
How to create a Twitter application for user login with OAuth
2020-03-05
Twitter OAuth Login by example with Node.js
2020-03-04
Send a Telegram message with Darklang
2020-03-02
First steps with Darklang
2020-03-01
About Cloudflare's support for ccTLDs and gTLDs
2020-02-29
Take a photo with raspistill on a Raspberry Pi
2020-02-25
Simple .npmrc management
2020-02-15
Twitter OAuth by example in Node.js
2020-02-13
So Long, and Thanks for All the Veggies
2020-02-08
Simplest Vanilla JavaScript static site blog search for Jekyll, Hugo, 11.ty
2020-02-08
Minimal environments with dotenv and Node.js
2020-02-08
Connect to MongoDB with monk in Node.js
2020-02-05
Lazy loading images in 2020
2020-01-29
Recover from failed lerna publish
2020-01-28
The cleanest way to maintain connect / express middlewares in Node.js
2020-01-03
Raspberry SSH over Wi-Fi not working
2019
2019-12-12
the color fe1
2019-12-11
better web scraping with node.js
2019-10-27
my blogging stack in 2020
2019-08-31
Run Cypress Integration Tests with GitHub Actions Workflow
2019-08-30
AWS Lambda + S3 + ffmpeg = Timelapse
2019-08-29
Simple telegram message with GitHub Actions
2019-08-29
Preferred way of defining flags in bash
2019-08-29
Deploy Eleventy site with Github Actions on AWS S3
2019-08-26
Simple ad and trackers blocking with DNS
2019-08-25
Build for a slow connection
2019-07-19
Fun with single letter commands
2019-07-16
Upgrade MongoDB 3 to 4 on Ubuntu
2019-04-07
Get last non-empty cell value in a spreadsheet
2019-04-04
How to fix Ansible error about "undefined variable"
2018
2018-12-09
Notes about Crash course in Machine Learning
2018-11-28
Publishing org scoped npm packages with travis
2018-10-31
my current blogging stack
2018-10-18
Start an npm script with pm2
2018-10-06
Make Anaconda executables available in your PATH (fish shell)
2018-07-11
clean android device storage
2018-07-03
pm2 deploy fast
2018-04-18
Fix Python 2.7 issue on OSX: bad interpreter
2018-04-12
Notes about Blockchain for Smart Communities
2018-04-12
Easy rate limit with Promise.all and p-limit
2018-04-09
Fix issue with Pandoc, MacOS Sierra and pdflatex / xelatex
2018-04-05
Offloading my Inbox items to /discover
2018-02-07
setup nginx as a reverse proxy with basic auth for an upstream
2018-01-31
A story about npm publish / unpublish
2017
2017-12-11
Mapping historic market data
2017-10-21
Building the new version of pomodoro.cc in the open
2017-10-13
Keeping an eye on your Crypto-currency trades with Ăśbersicht
2017-04-15
Loop jekyll data directory files
2017-03-30
My dotfiles
2017-03-27
Prevent accidental quit of iTerm
2017-03-24
how i deploy my site
2017-03-23
how i build my site
2017-03-22
npm package kata
2017-02-24
Trying out Redash
2017-02-22
Chaining and indenting after the return statement
2017-02-10
How to read Hacker Newsletter
2017-02-05
Use Simple-Jekyll-Search on your blog in these easy steps
2016
2016-05-28
Discourse first installation steps
2016-02-03
I was at fosdem 2016 and it was awesome!
2016-01-07
Forking is a commitment
2015
2015-11-23
Using a daily activity log
2015-10-25
Elixir Plug order matters!
2015-10-24
Jekyll new post script
2015-10-20
Introduction to AngularJS
2015-10-19
What Elixir and Angular have in common
2015-10-18
Favor Viewmodel over $scope
2015-10-15
Always $digest after you expect
2015-08-12
How to invalidate AppCache
2015-07-07
The simplest way to set vagrant default directory
2015-07-05
Backup mongodb from a docker container to host
2015-07-04
Conforming to protocols in JavaScript
2015-05-09
Write a damn README
2015-05-09
Functional JavaScript: Write your own negate/not function
2015-04-27
About business value and confidence in legacy projects
2015-04-23
Angular ui-router: define multiple states with same base url
2015-03-06
Speed up your docker container by caching node_modules
2015-03-04
How to make a pull request on GitHub from the command line
2015-02-23
How to use morgan with node-simple-router
2015-02-21
Start your coding kata the right way
2015-01-17
Write your Protractor tests in Cucumber
2015-01-16
How to zsh and hub auto completition
2015-01-09
Debugging acceptance tests with Angular and Cucumber
2014
2014-12-23
Keep Docker container running
2014-10-27
A list of Angular style guides
2014-08-22
Angular: Filter already selected items from ng-options
2014-08-20
PhoneGap issue, 'device ready' not fired after 5 seconds
2014-08-03
How to configure Drone behind an nginx proxy on a subdomain
2014-08-02
How to setup Drone CI on a DigitalOcean droplet
2014-07-05
A practical workflow for resizing images with ImageMagick
2014-06-30
DRY dependency injection in Angular with gulp-ng-annotate
2014-05-26
A closer look at Angular's dependency injection
2014-03-04
Updating dynamic fields and nested arrays in MongoDB
2014-01-19
node and sudo: now kiss
2014-01-18
Simplest Apache configuration for hosting multiple sites
2014-01-05
Create a new Github repository from the command line
2014-01-04
About vanity metrics and social media bullshit
2013
2013-10-12
Simple templating with regular expressions
2013-09-17
Keep SSH connection alive
2013-07-16
How to: Gzip compression of CSS and JS files on S3 with s3cmd
2013-06-06
How to lazy load Disqus comments
2013-05-08
Auto mount partition on Linux the easy way
2013-04-20
Berlin - April 2013
2013-03-29
Replace links in files with Regular Expressions
2012
2012-12-23
How to index a NTFS partition on Mac
menu