Posts

Barrett Barbell Program

I'm terrible at catchy names. Who is this for? Anyone with some experience lifting weights that wants a bus bench (do this!) program with a self-limiting progression based on actual performance, built around the squat, hinge, and press movements. It's also based around 2 week cycles, so feedback is fast and it's good for those with program ADHD like myself (squirrel!). I consider this a beginner to intermediate program, not a program for chasing an 800 lb. deadlift. It was inspired in part by Jim Wendler's excellent 5/3/1 program along with other programs I've used in the past. Program Structure Lift weights 3 days per week. For example, Monday-Wednesday-Friday or Tuesday-Thursday-Saturday. Allow at least one day between lifting sessions for recovery. Each lifting session consists of a warmup, the primary and secondary lifts for that session, and a cooldown. Each session should be around 30-45 minutes, unless you're doing something like a long walk afterwards. L...

Non-fiction Book Recommendations

Life Bumpers, by Nic Peterson As a Man Thinketh, by James Allen The Daily Stoic, by Ryan Holiday Untangled: Guiding Teenage Girls into Adulthood, by Lisa Damour The Fine Art of Small Talk, by Debra Fine Personal Kanban, by Jim Benson and Tonianne DeMaria Why We Buy, by Paco Underhill The Life Changing Magic of Tidying Up, by Marie Kondo The Reason I Jump, by Naoki Higashida The Power of Habit, by Charles Duhigg Zen and the Art of Motorcycle Maintenance, by Robert Pirsig Tuesdays with Morrie, by Mitch Albom Work The Checklist Manifesto, by Atul Gawande Meetings Suck, by Cameron Herold The Five Dysfunctions of a Team, by Patrick Lencioni The Phoenix Project, by Kim, Behr, and Spafford Technical Old Coder Guy, by Eric Whitney Pragmatic Programmer, by David Thomas and Andrew Hunt NoSQL for Mere Mortals, by Dan Sullivan Pro SQL Server Database Design and Implementation, by Louis Davidson and Jessica Moss The Kimball Group Reader (data warehousing), by Ralph Kimball and others Design Pattern...

Don't Do This With Your Database ER Diagram

Image
 This: It's easy to understand why anyone would want to diagram the entire database so that developers and admins can see everything in one visual map. That works well for databases with a small number of tables, but as the tables increase the visual clarity quickly falls off, unless you make a giant diagram that requires zooming in and out to see any useful details. There's a famous parable about the blind men and an elephant.  A group of blind men heard that a strange animal, called an elephant, had been brought to the town, but none of them were aware of its shape and form. Out of curiosity, they said: "We must inspect and know it by touch, of which we are capable". So, they sought it out, and when they found it they groped about it. The first person, whose hand landed on the trunk, said, "This being is like a thick snake". For another one whose hand reached its ear, it seemed like a kind of fan. As for another person, whose hand was upon its leg, said, ...

Benchmarking C# using BenchmarkDotNet

The other day I came across the BenchmarkDotNet package  and had to try it out , and I think it works really well. Gone are the days of using a stopwatch for ad hoc benchmarking! There's some initial setup cost with creating a new project, but with more deep diving I wouldn't be surprised if a benchmark project could be incorporated directly into a project and/or test suite.

The importance of design for TDD

Image
Stop me if this sounds familiar. You've read multiple articles about the importance of TDD (test driven development) and unit tests. You understand the basics of unit tests and frameworks for mocking up data and examples. Maybe you've created unit tests that helped you in refactoring, or finding issues in the service methods, so you understand the value of good unit tests. But you can't help feeling like you're missing something in how you're doing TDD. Your unit tests are so simple they feel useless, like a test that mocks some data for a repo and then verifies that it got the mocked data. Or maybe you don't even know what unit tests to create, so you start in on your implementation and add unit tests after the fact to cover your code. What's missing? It's possible you aren't doing enough design work to fully understand the problem you're trying solve, and without understanding the problem you can't effectively test the problem. Once you und...

How To Do Something

Image
Found this in my notes recently, it's a flowchart of how to be productive at work that I created years ago. Looking at it now, I think it still holds up well. Created a PlantUML diagram as a visualization. 

Making walking on treadmills less boring

It's an avoidable fact of Minnesota weather that walking for exercise is best done on an indoor treadmill. It's certainly possible to walk outside between December and April, but ice on the ground discourages walking fast, snow covered walkways and sidewalks limit where you can walk, and the cold temperatures discourage being outside for long periods. Unfortunately, walking on a treadmill can quickly become boring with its lack of variety. Here are some strategies and ideas for making treadmill exercise more interesting.  Playing with the incline and speed Nature is not perfectly flat, and we are not robots that walk at a perfectly consistent pace. The easiest thing to do, for anyone using a treadmill, is to slightly vary the speed and incline. Let's say you're at a typical 3 mph/4.8 kmph pace, with a 0% incline. Every few minutes, randomly bump the incline up or down a % point. Go crazy and jump from 0% to the max for a little while, drop it down to 2%, back up to 5%, ...