The Curious Engineer

All blogs / Python

Adam Johnson

adamj.eu

PythonWeb developmentDev tools / editors / IDEs

Posts
477 from 30 May 2012 to 29 Oct 2026
Posting
weekly (53 in the last year)
Kind
personal blog
Feed
https://adamj.eu/tech/atom.xml

2026 47

  1. Zsh: uncover hidden files in globs with (D)
  2. Zsh: parse command-line options with zparseopts
  3. Django: check version support with norwegianblue
  4. Django: set up its test suite with uv
  5. Zsh: set aside a command with “Escape Q” / push-line
  6. Zsh: tab complete glob qualifiers
  7. Django: serve apple-app-site-association and assetlinks.json
  8. Django: serve a security.txt file
  9. Zsh: sort globs in natural order with the (n) glob qualifier
  10. Software Engineering: join my meetup in Lisbon, 8th October
  11. Zsh: find the largest files with the (OL) glob qualifier
  12. macOS: use caffeinate to keep your computer on
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. I introduced tprof
  47. Read more...

2025 45

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...

2024 46

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Boost Your Django DX update
  12. Read more...
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. I covered
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. last update
  38. previous post
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. Read more...

2023 53

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. Read more...
  47. Read more...
  48. Read more...
  49. Read more...
  50. Read more...
  51. Read more...
  52. Read more...
  53. Read more...

2022 62

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. How to Safely Pass Data to JavaScript in a Django Template
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. Read more...
  47. Read more...
  48. Read more...
  49. Read more...
  50. Read more...
  51. Read more...
  52. Read more...
  53. Read more...
  54. Read more...
  55. Read more...
  56. Read more...
  57. Read more...
  58. Read more...
  59. Read more...
  60. Read more...
  61. Read more...
  62. Read more...

2021 77

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. Read more...
  47. Read more...
  48. Read more...
  49. Read more...
  50. Read more...
  51. Using TypedDict
  52. Read more...
  53. Read more...
  54. Read more...
  55. Read more...
  56. my previous post
  57. Read more...
  58. Read more...
  59. Read more...
  60. Read more...
  61. Read more...
  62. Read more...
  63. Read more...
  64. Read more...
  65. a mezcla of new features
  66. Read more...
  67. Read more...
  68. Read more...
  69. Read more...
  70. Read more...
  71. Read more...
  72. Read more...
  73. Read more...
  74. Read more...
  75. Read more...
  76. Read more...
  77. Read more...

2020 66

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. N+1 queries problem
  13. Read more...
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. Read more...
  31. Read more...
  32. Read more...
  33. Read more...
  34. Read more...
  35. in May 2020
  36. Read more...
  37. released my book
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...
  43. Read more...
  44. Read more...
  45. Read more...
  46. Read more...
  47. Read more...
  48. Read more...
  49. Read more...
  50. Read more...
  51. Read more...
  52. converted my function from JavaScript to Python
  53. Read more...
  54. Read more...
  55. Read more...
  56. Read more...
  57. Read more...
  58. Read more...
  59. Read more...
  60. is constrained to only valid values
  61. Read more...
  62. Read more...
  63. Read more...
  64. Read more...
  65. Read more...
  66. Read more...

2019 42

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. asynchronous
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. required for an A+
  14. Read more...
  15. Read more...
  16. Read more...
  17. Read more...
  18. Read more...
  19. Read more...
  20. Read more...
  21. Read more...
  22. Read more...
  23. Read more...
  24. Read more...
  25. Read more...
  26. Read more...
  27. Read more...
  28. Read more...
  29. Read more...
  30. in order to add security headers
  31. Read more...
  32. How to Score A+ for Security Headers on Your Django Website
  33. synchronous
  34. Read more...
  35. Read more...
  36. Read more...
  37. Read more...
  38. Read more...
  39. Read more...
  40. Read more...
  41. Read more...
  42. Read more...

2018 7

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...

2017 1

  1. Read more...

2016 8

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...

2015 5

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...

2014 14

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...
  5. Read more...
  6. Read more...
  7. Read more...
  8. Read more...
  9. Read more...
  10. Read more...
  11. Read more...
  12. Read more...
  13. Read more...
  14. Read more...

2012 4

  1. Read more...
  2. Read more...
  3. Read more...
  4. Read more...