Reviving My Blog - Checking Broken Links
After doing the conversion to Markdown in the previous post, I wanted to check and to see how many links were broken.
I had Claude write me a Python script to do this.
Turns out, quite a few broken links:

I went through and fixed the ones I could fix manually, if I knew where the contents had migrated and they were under my control.
For the rest of the broken links, I had Claude rewrite them to indicate that they were broken.
Applying fixes to 201 files...
fixed: 2010/09/23/hello-gdbserver-a-debuggable-jni-example-for-android/index.md
fixed: 2010/09/26/geocoding-with-mapstraction-v2-and-google-maps-v3/index.md
fixed: 2011/01/19/testing-rest-api-with-learnboosts-tobi-vows-js/index.md
fixed: 2012/01/02/sopaprotect-ip-blackout-simulator/index.md
fixed: 2012/09/04/racing-towards-the-bottom-or-how-not-to-handle-customers/index.md
fixed: 2012/12/04/spatial_ref_sys-and-geometry_columns/index.md
fixed: 2012/12/17/django-unit-testing-on-shared-hoster/index.md
fixed: 2012/12/22/django-integrityerror-on-postgresql/index.md
fixed: 2013/01/04/old-machine-resurrection/index.md
fixed: 2013/01/26/os-x-user-account-control-popup-finish_installation-wants-to-make-changes/index.md
fixed: 2013/01/29/ebay-seller-bait-and-switch-maneuvers/index.md
fixed: 2013/02/23/digitizing-cassette-tapes/index.md
fixed: 2013/03/08/guffaw/index.md
fixed: 2013/03/22/the-underside-of-the-tablet/index.md
fixed: 2013/04/01/localization-translation-google-spreadsheets/index.md
fixed: 2013/04/11/lazy-sunday-project-fixing-my-bike-light/index.md
fixed: 2013/05/02/django-needs-to-die/index.md
fixed: 2013/05/07/new-emacs/index.md
fixed: 2013/05/11/small-time-criminals/index.md
fixed: 2013/05/14/branding/index.md
fixed: 2013/05/31/twitter-houses/index.md
fixed: 2013/06/08/bless-you-less-css/index.md
fixed: 2013/06/09/using-google-protocol-buffers-with-qmake/index.md
fixed: 2013/06/25/locale-fun/index.md
fixed: 2013/07/04/django-testing-creating-and-removing-test-users/index.md
fixed: 2013/07/08/terrible-connectors/index.md
fixed: 2013/07/10/python-code-coverage-and-cron/index.md
fixed: 2013/07/12/python-parametrized-unit-tests/index.md
fixed: 2013/07/19/libevent-gcov-lcov-and-os-x/index.md
fixed: 2013/07/21/stateful-vs-stateless-browsing-improving-your-privacy-online/index.md
fixed: 2013/09/04/using-selenium-webdriver-with-phantomjs-on-a-shared-host/index.md
fixed: 2013/09/13/setting-up-docker-and-buildbot/index.md
fixed: 2013/10/04/mucking-around-with-libc-on-android/index.md
fixed: 2013/10/06/ubuntu-13-10-chroot-on-android/index.md
fixed: 2013/10/08/ndk-configure-sh/index.md
fixed: 2013/10/23/apple-vs-microsoft-strategy/index.md
fixed: 2014/01/15/provisioning-os-x-and-disabling-unnecessary-services/index.md
fixed: 2014/02/09/better-time-synchronization-with-virtualbox-guest-additions/index.md
fixed: 2014/02/21/qmake-subdirs-project-automatic-dependencies/index.md
fixed: 2014/03/16/power-hungry-desktops/index.md
fixed: 2014/03/25/grails-groovy-scala-and-akka/index.md
fixed: 2014/09/18/windows-7-hibernation/index.md
fixed: 2015/01/28/the-mathematics-of-brew-pots/index.md
fixed: 2015/06/24/hackathon-1-intel-edison/index.md
fixed: 2015/07/15/casualties/index.md
fixed: 2016/03/03/using-netbeans-and-the-nordic-nrf5-nrf52-sdk/index.md
fixed: 2016/05/03/esptool-ck-esp8266-and-ftdi-bug-hunting/index.md
fixed: 2016/05/22/riotboard-gpio-pinout/index.md
fixed: 2017/02/04/silabs-cp210x-usb-adapters-for-the-win/index.md
fixed: 2017/04/24/power-profiling-on-mbed-nordic-nrf5-series/index.md
fixed: 2018/03/30/a-visit-to-huaqiangbei-market-by-an-embedded-systems-engineer/index.md
fixed: 2019/06/10/new-website-design/index.md
fixed: 2019/11/07/why-are-my-backups-so-slow/index.md
fixed: 2020/04/20/noisefloor-firmware/index.md
Done.
Which then looks roughly like:

Doing this with an agent saves me many hours of manually scripting and then processing these files.
- ← Previous
Useful Oneliners - Decluttering Ubuntu Server - Next →
Decluttering CachyOS