The Curious Engineer

All blogs / Software / engineering practice

Stavros' Stuff

stavros.io

Latest posts on Stavros' Stuff.

Software / engineering practiceElectronicsPythonAI / ML

Posts
212 from 22 Sep 2009 to 4 May 2026
Posting
now and then (5 in the last year)
Kind
personal blog
Feed
https://www.stavros.io/feed/short/

2026 3

  1. Adding a feature to a closed-source app
  2. How I write software with LLMs
  3. I made a voice note taker

2025 6

  1. I made another little bedside clock
  2. I converted a rotary phone into a meeting handset
  3. Switch to Jujutsu already: a tutorial - Stavros' Stuff
  4. I made a really small LED panel - Stavros' Stuff
  5. I couldn't wait for a TRMNL device, so I made my own - Stavros' Stuff
  6. Why is everything so scalable? - Stavros' Stuff

2024 2

  1. Making the Strofara - Stavros' Stuff
  2. Saving SSH passphrases on KDE - Stavros' Stuff

2023 8

  1. The UX people - Stavros' Stuff
  2. Spam spammers back - Stavros' Stuff
  3. Use your Wii Balance Board as a scale (again) - Stavros' Stuff
  4. Clearing up some misconceptions about passkeys - Stavros' Stuff
  5. I made an e-ink display that shows my calendar - Stavros' Stuff
  6. Hacking my appetite - Stavros' Stuff
  7. Making a security key for the Framework laptop - Stavros' Stuff
  8. Block non-Cloudflare IPs with ufw - Stavros' Stuff

2022 3

  1. Compressing images with Stable Diffusion - Stavros' Stuff
  2. Poop analytics - Stavros' Stuff
  3. Better communication with other drivers - Stavros' Stuff

2021 5

  1. Making an AI-generated sleep podcast - Stavros' Stuff
  2. How to write a modern Slack bot in Python - Stavros' Stuff
  3. How to ask for help - Stavros' Stuff
  4. Keyyyyyyyys! - Stavros' Stuff
  5. The "do not be alarmed" clock - Stavros' Stuff

2020 3

  1. How to use FIDO2 USB authenticators with SSH - Stavros' Stuff
  2. Using FastAPI with Django - Stavros' Stuff
  3. Make your own PCBs with a 3D printer - Stavros' Stuff

2019 3

  1. Behold: Ledonardo - Stavros' Stuff
  2. Seven tips for a great remote culture - Stavros' Stuff
  3. Revolut doesn't care about you - Stavros' Stuff

2018 7

  1. Towards a more collaborative OSS model - Stavros' Stuff
  2. Securing your users' authentication - Stavros' Stuff
  3. A simple guide to PID control - Stavros' Stuff
  4. How to easily configure WireGuard - Stavros' Stuff
  5. Kubernetes 101 - Stavros' Stuff
  6. A short 3D printer primer - Stavros' Stuff
  7. On increasing productivity - Stavros' Stuff

2017 7

  1. Startup Mistakes: Choice of Datastore - Stavros' Stuff
  2. How to deploy Django on Dokku - Stavros' Stuff
  3. The scourge of web analytics - Stavros' Stuff
  4. Making a garage remote motorcycle mount - Stavros' Stuff
  5. Perfectly secure Bitcoin wallet generation - Stavros' Stuff
  6. 3D-printed breakthrough gives blind cat eyes - Stavros' Stuff
  7. The Bus Stop Bus - Stavros' Stuff

2016 6

  1. Spamnesty: Waste spammers' time - Stavros' Stuff
  2. How to deploy Django with Docker - Stavros' Stuff
  3. Turning everything into a mobile phone: Redemption - Stavros' Stuff
  4. A WiFi-enabled RGB LED strip controller - Stavros' Stuff
  5. Provisioning your computer with one command: awesome - Stavros' Stuff
  6. Building a cheap home sensor/controller - Stavros' Stuff

2015 12

  1. Open letter to Mozilla: Bring back Persona - Stavros' Stuff
  2. Hungry? There's a button for that! - Stavros' Stuff
  3. Private contact and calendar sync on Android - Stavros' Stuff
  4. Introducing: String Phone - Stavros' Stuff
  5. Review: CodeBug - Stavros' Stuff
  6. Shufflecast - Your own TV station - Stavros' Stuff
  7. Open source password management - Stavros' Stuff
  8. The microservices cargo cult - Stavros' Stuff
  9. Show page generation time in Django - Stavros' Stuff
  10. The iRotary Saga - Stavros' Stuff
  11. On API authentication - Stavros' Stuff
  12. Standalone Django scripts: The definitive guide - Stavros' Stuff

2014 15

  1. I took a picture: Hope - Stavros' Stuff
  2. Gweet: Messaging for your things - Stavros' Stuff
  3. I took a picture: Lethe & Seals - Stavros' Stuff
  4. iRotary - Part Three - Stavros' Stuff
  5. iRotary - Part Two - Stavros' Stuff
  6. iRotary - Part One - Stavros' Stuff
  7. Netflix for the rest of us - Stavros' Stuff
  8. Calling single-argument methods in Django templates - Stavros' Stuff
  9. Get a text when there's motion in your house - Stavros' Stuff
  10. How to safely store your bitcoins - Stavros' Stuff
  11. I found the Holy Grail of backups - Stavros' Stuff
  12. Arduino-powered irrigation system - Stavros' Stuff
  13. Mozilla Persona accounts with disposable email addresses - Stavros' Stuff
  14. Remotely controlling IR/RF devices with an Arduino - Stavros' Stuff
  15. Developing with pull requests - Stavros' Stuff

2013 32

  1. Automatically check your Python code for errors before committing - Stavros' Stuff
  2. Writing a full-text search engine using Bloom filters - Stavros' Stuff
  3. Reject unPEP8 pushes with git hooks - Stavros' Stuff
  4. No-hassle emails from your home server - Stavros' Stuff
  5. Winning at Candy Crush - Stavros' Stuff
  6. Writing a FUSE filesystem in Python - Stavros' Stuff
  7. Encrypted, deduplicated remote backups - Stavros' Stuff
  8. How to pronounce "gyros" (the greek food) - Stavros' Stuff
  9. DIY internet-enabled bathroom scale - Stavros' Stuff
  10. New tutorial: How to keep yourself secure online. - Stavros' Stuff
  11. Authentication and rate limiting - Stavros' Stuff
  12. Pacific Rim - Stavros' Stuff
  13. Writing an nginx authentication module in Lua - Stavros' Stuff
  14. Django's per-site caching doesn't work - Stavros' Stuff
  15. Brilliant or insane code? - Stavros' Stuff
  16. Faster installs with pip - Stavros' Stuff
  17. Blogging from the filesystem - Stavros' Stuff
  18. Use two-factor authentication for Mozilla Persona on your own domain - Stavros' Stuff
  19. Expandable code blocks in simple CSS3 - Stavros' Stuff
  20. How to properly configure Google Apps email - Stavros' Stuff
  21. On the pitfalls of A/B testing - Stavros' Stuff
  22. New theme! - Stavros' Stuff
  23. Automated, large-scale deployments with Ansible's pull-mode - Stavros' Stuff
  24. Django template projects - Stavros' Stuff
  25. Writing my first Android app: Control your Raspberry Pi from your phone - Stavros' Stuff
  26. New domain name! - Stavros' Stuff
  27. How to remotely control RF devices with the Raspberry Pi - Stavros' Stuff
  28. How to turn your Raspberry Pi into an infrared remote control - Stavros' Stuff
  29. An example of provisioning and deployment with Ansible - Stavros' Stuff
  30. A comment on the causes of burnout - Stavros' Stuff
  31. Better password reset procedures - Stavros' Stuff
  32. Monitoring your system's temperatures with Python - Stavros' Stuff

2012 12

  1. How to replace a Django model field with a property - Stavros' Stuff
  2. Proxying two connections in Go - Stavros' Stuff
  3. Adding a "login as user" button to the Django admin interface - Stavros' Stuff
  4. Developing an IRC frontend in Go - Stavros' Stuff
  5. A bug of life and death - Stavros' Stuff
  6. Developing a back-scratching robot - Stavros' Stuff
  7. How to highlight code in Python - Stavros' Stuff
  8. The curious case of the range() function - Stavros' Stuff
  9. Developing and deploying Python apps using pip and virtualenv - Stavros' Stuff
  10. A schemaless layer over SQLite - Stavros' Stuff
  11. Winning at Puzzle Adventures - Stavros' Stuff
  12. How to handle Python package installation on GAE - Stavros' Stuff

2011 8

  1. On authentication usability - Stavros' Stuff
  2. A short update - Stavros' Stuff
  3. How PostgreSQL's SR (Streaming Replication) works - Stavros' Stuff
  4. App Engine pricing changes revisited - Stavros' Stuff
  5. Secrets of Power Negotiating - Stavros' Stuff
  6. Book clouds - Stavros' Stuff
  7. Blog migration - Stavros' Stuff
  8. Πρόγραμμα καταχώρησης αποδείξεων - Stavros' Stuff

2010 20

  1. Delicious alternatives - Stavros' Stuff
  2. My Y Combinator interview. - Stavros' Stuff
  3. How to finally understand how to use Unicode. - Stavros' Stuff
  4. How to extend the Django admin site with custom views - Stavros' Stuff
  5. The mother of all URL validators. - Stavros' Stuff
  6. Using SQLite for great science, part 1 (or 3, I guess). - Stavros' Stuff
  7. New, ultra-secret project - Stavros' Stuff
  8. Using MongoDB for great science, part 2. - Stavros' Stuff
  9. Running Windows 7 in a VM. - Stavros' Stuff
  10. Speeding up Python code with ShedSkin - Stavros' Stuff
  11. My experience with using MongoDB for great science. - Stavros' Stuff
  12. SSL and security on the web. - Stavros' Stuff
  13. On mate selection - Stavros' Stuff
  14. How to synchronise folders between iPhones or iPods (or any two SSH hosts). - Stavros' Stuff
  15. SSH key creation howto. - Stavros' Stuff
  16. How easyjet screws you over. - Stavros' Stuff
  17. Forwarding ports on Linux. - Stavros' Stuff
  18. Optimizing python with Cython - Stavros' Stuff
  19. My experience with BuySellAds.com - Stavros' Stuff
  20. Thomson/SpeedTouch routers and WPA keys - Stavros' Stuff

2009 3

  1. Custom model field validation in Django - Stavros' Stuff
  2. Hard disk/partition migration in OS X and Linux. - Stavros' Stuff
  3. GitHub and open source development - Stavros' Stuff

Undated 57

  1. Weekend project imdb api
  2. New website launched
  3. How to safely run programs under windows
  4. Web designsoftware development
  5. Contenttypes and unit testing problems in django
  6. Supported by ninjas
  7. Pycuda and windows
  8. King for a day
  9. Mounting ddrescue images under windows
  10. Spammers
  11. Dead mans switch
  12. File synchronisation
  13. Properly name tv episode files
  14. Printing hello world using curve fitting
  15. Apple woes
  16. Finding the levenshtein distance in python
  17. Mac second impression
  18. Google apps mail marked as spam by gmail
  19. Mounting samba shares with greek filenames in linux
  20. What is openid
  21. Moneygement
  22. Raid 0 vs 10k rpm
  23. The horrors of dining in london
  24. Flash charts
  25. Mobile phones and sip
  26. Switching to vi an odyssey
  27. Apache problems
  28. Nonzero drupal theme
  29. Wireless problems
  30. One reason to have sex
  31. On graceful degradation
  32. The sims
  33. Image manipulation with python et al
  34. Gmail checker part ii
  35. https://www.stavros.io/posts/pi/
  36. Gmail checker released
  37. Boa constructor
  38. Fallacies
  39. How to resolve hostnames in linux
  40. Muddrop
  41. New tutorial
  42. Digg vs slashdot no
  43. What is pypy
  44. The gallery
  45. Hamachi
  46. Trashing linux
  47. Webhost change
  48. Firefly
  49. Allofmp3com
  50. An important day
  51. Petals around the rose
  52. Authentication
  53. Hard disk crash
  54. Sortsize
  55. Moviepig
  56. Done
  57. First post