thomasswilliams

Thomas Williams

An experienced database administrator (DBA), analyst, and software developer based in Hobart, Tasmania.
  • LinkedIn
  • Stack Overflow
  • GitHub
  • Twitter
Feed
  • How I use LLMs (AKA "AI") in 2025 as a DBA

    May 5, 2025
  • Connecting to a SQL Server database from R Markdown (part 1)

    Dec 5, 2022
  • Troubleshooting caching in R Markdown and Shiny server

    Nov 18, 2022
  • Master/detail with dynamic hiding & showing in R Markdown

    Nov 16, 2022
  • QR codes in R Markdown

    Nov 10, 2022
  • Using a .env file to manage secrets in R Markdown

    Oct 20, 2022
  • Debouncing input in R Markdown

    Oct 3, 2022
  • Use Google Font in R Markdown web page

    Sep 26, 2022
  • Reload parameters without page reload in R Markdown

    Sep 22, 2022
  • Set keyboard focus to a control in R Markdown & Shiny

    Sep 18, 2022
  • Displaying loading messages in DataTables in R Markdown

    Sep 16, 2022
  • Upgrading UniFi USG 3P and Cloud Key to a UDM (part 2)

    Sep 1, 2022
  • Toggling dark mode in R Markdown

    Aug 30, 2022
  • Dark mode in R Markdown using prefers-color-scheme: dark

    Aug 26, 2022
  • Upgrading UniFi USG 3P and Cloud Key to a UDM (part 1)

    Aug 23, 2022
  • Passing a query string value to R Markdown

    Aug 19, 2022
  • SSIS database error logging query

    Jul 25, 2022
  • E-mail blocking & blocked processes to a DBA using sp_WhoIsActive, a SQL Agent job and an alert

    Jun 20, 2022
  • Recreating my basic Antarctic Leaflet map in R (tiles, shapes, graticules, labels)

    Jun 18, 2022
  • Lean and waste in IT

    Jun 13, 2022
  • Leaflet production considerations (part 4)

    Jun 7, 2022
  • Displaying text labels instead of markers from GeoJSON on a Leaflet Antarctic map (part 3)

    Jun 2, 2022
  • Loading shapefiles into Leaflet Antarctic map (part 2)

    May 19, 2022
  • Loading a layer from a GeoJSON file into Leaflet Antarctic map (part 1a)

    May 12, 2022
  • Easy set up of Leaflet 1.8 (May 2022) for making an open source Antarctic map (part 1)

    May 2, 2022
  • Notes to self: Calculating an SRI hash for javascript and CSS files

    Apr 28, 2022
  • Server archaeology

    Nov 12, 2021
  • Quickly automate SQL Server database documentation to Markdown

    Oct 13, 2021
  • Notes to self: E-mail DBA on objects created in the master system database

    Aug 26, 2021
  • Notes to self: E-mail DBA on new database creation (and restore)

    Aug 20, 2021
  • Delete non-built-in roles, schemas, and users from a SQL Server database

    Aug 4, 2021
  • Clear msdb system database history

    May 9, 2021
  • 5 years

    Apr 27, 2021
  • Commissioning a SQL Server (a checklist)

    Apr 24, 2021
  • Automated DBA monitoring for SQL Server: a primer, part 3

    Apr 7, 2021
  • Automated DBA monitoring for SQL Server: a primer, part 2

    Mar 29, 2021
  • Automated DBA monitoring for SQL Server: a primer, part 1

    Mar 21, 2021
  • Remembering old technical books, part 2

    Feb 18, 2021
  • Hello CCAMLR!

    Feb 7, 2021
  • Using sp_WhoIsActive to record & query activity on SQL Server

    Dec 2, 2020
  • Notes to self: Attempting to reliably find SQL Server stored procedure usage history

    Nov 25, 2020
  • Remembering old technical books, part 1

    Oct 20, 2020
  • SQL Server Agent 'Include step output in history' and msdb system database size

    Sep 23, 2020
  • Using Terser to minify and compress Express javascript code for deployment

    Sep 16, 2020
  • PowerShell script for computers created in Active Directory in last x days

    Sep 9, 2020
  • Notes to self: e-mailing a DBA on long-running SQL Agent jobs

    Sep 3, 2020
  • PowerShell remote desktop history script

    Aug 26, 2020
  • Tales from the trenches, part 2

    Aug 18, 2020
  • Notes to self: e-mailing a DBA if there's SQL Server database backups run during business hours

    Aug 10, 2020
  • Tales from the trenches, part 1

    Jul 31, 2020
  • PowerShell scripts for Windows uptime

    Jul 17, 2020
  • Levelling up an Express API, Part 3

    Apr 20, 2020
  • Notes to self: installing PM2 on Windows, as a service

    Apr 7, 2020
  • Levelling up an Express API, Part 2

    Mar 19, 2020
  • UniFi home network update 2020

    Mar 19, 2020
  • Levelling up an Express API, Part 1

    Nov 19, 2019
  • My work values

    Oct 6, 2019
  • How I use 'Inbox Zero' ('Inbox 20'?)

    Sep 23, 2019
  • Why I chose the Firefox browser in 2019

    Aug 7, 2019
  • Create and test Oracle linked server on SQL Server 2012

    Aug 16, 2018
  • Notes to self: SignalR on IIS, behind a load balancer

    Oct 11, 2017
  • RigorousSearch MediaWiki extension updated for MediaWiki 1.28

    Sep 28, 2017
  • Blocking domains using the 'Static Routes' feature of Unifi

    Mar 21, 2017
  • My home network upgrade to Ubiquiti UniFi

    Mar 2, 2017
  • My home network (2016)

    Feb 12, 2017
  • My day job (2017)

    Jan 2, 2017
  • Why you shouldn't use Bootstrap

    Aug 3, 2016
  • Nancy - Minifying HTML with WebMarkupMin

    Jul 23, 2016
  • Ingress and AR gaming in the real world

    Jul 12, 2016
  • Stylelint is FxCop/Web Essentials/JSHint for your CSS stylesheets

    Jun 24, 2016
  • My .gitignore template

    May 9, 2016
  • Logging with NLog in PowerShell

    Apr 29, 2016
  • Useful Chrome browser plugins, April 2016

    Apr 28, 2016
  • Starting with Jekyll

    Apr 27, 2016
  • Mention @tswilliams4 on Twitter to let me know how I can make this site better!
  • Categories
  • Glossary
  • Thomas Williams blog from Hobart, Tasmania.
  • No analytics, no ads, no trackers
  • CC BY 4.0