Kelly Norton is a software engineer living in Surf City, North Carolina. He holds degrees from Georgia Tech's School of Electrical and Computer Engineering and from the MIT Media Lab where he studied under John Maeda. From 2006–2012, he was a software engineer at Google working on Google Web Toolkit, Speed Tracer, Google Chrome and other stuff. He co-founded Connexxia LLC in 2000 to help universities effectively recruit high school seniors through online social engagement. He was co-founder at FullStory. He worked on product search at Etsy. Now he is a Distinguished Software Engineer at MailChimp, now part of Intuit.


How many bits are set to one in a bit string? It’s a problem that pops up in a number of areas: bitsets, cryptography, error correction, and most of all interview questions. This problem is also known by many names: hamming weight, population count, popcount, sideways sum just to name a few. I recently revisited this problem in the context of writing a simple bitset and found myself falling down a rabbit hole when I tried to answer the question: how is std::popcount implemented in C++20?
A thing I learned recently is that constexpr and consteval, in modern C++, are more powerful than I orinally thought. While I never write C++ professionally these days, I recently ported a sudoku solver over to modern C++ and eventually realized that I could compute one of the static data tables at compile time using plain ole C++ code. This is a post about that.
This post is just some fascinating (or quite boring depending on your perspective) minutia that arises in the handling of time and timezones in programming. This deals with a little corner that exists in almost every time library yet I’ve never had much reason to explore it. That little corner is daylight savings time transitions.
About 5 or 6 years ago, I decided to form better sleep habits. Included in that was a committment to try to sleep for at least 8 hours every night. It is a committment I struggled with for quite some time. In recent years, though, I seem to have adapted to a more consistent sleep schedule. I'm also fortunate that activity trackers, like my Garmin watch, are able to record sleep related data each night. In this post, I export all of my 2019 sleep data from Garmin Connect and use it to determine how well I'm sleeping and what else I might do to sleep better in 2020.