The Coke and Chips Problem

An overweight man comes into the doctor’s office. He says to the doctor, “hey, I’m looking to get in shape, lose weight, and get healthy. But I don’t know what to do. What is your advice on what I should do?” The doctor replies, “that a great ideal. well we can certainly do a checkup and make sure there are no biological or genetic issues that will hinder your goals. But for starters, my advice is to get more exercise and eat right. So, what are you eating right now?” ...

November 8, 2023 · 1 min · 190 words · Scott Brown

Accessing the UKG Pro API

I was helping out IT this week with an automation task they had: they want to sync the data in UKG (an HRIS platform) with the data in the IdP. The problem was, nobody’s documentation was very good and left out important details, and Google was almost no help either. Hopefully someone else can stumble their way onto this page and get going quickly. curl -H 'Accept: application/json' \ -H US-CUSTOMER-API-KEY: xxx' \ -H 'Authorization: Basic base64(username:password)' \ https://hostname/personnel/v1/employment-details Ref: https://developer.ukg.com/hcm/reference ...

September 26, 2023 · 1 min · 81 words · Scott Brown

Taking Things Personally

One of the common patterns in my life is to surround myself with people with whom I allow to abuse me. And one of the popular refrains of these people is to tell me this phrase: You need to stop taking things so personally. And I find that phrase interesting because it is really difficult not to take things personally when they are targeting me with their abusive words. But, as I said, this is a common refrain of abusers in my life. In fact, most of the people that have mistreated me in various ways have also found a way to abdicate any responsibility for their actions by using this phrase to place the blame squarely on me. ...

April 5, 2023 · 6 min · 1236 words · Scott Brown

Spreadsheets

I routinely come up with what I think are million dollar ideas. And I get euphoric about how successful it will be be, I’ll make so much money, and people will be happy. And then as the euphoria dies down, typically as I start designing it, I have some sober thoughts. Would I use my own product? Maybe. Would I pay for my product? Probably not. And the reason why this is invariably boils down to the fact that most of my ideas are just a way of storing and managing ideas in a tabular format. As in, a spreadsheet. ...

March 4, 2023 · 3 min · 503 words · Scott Brown

Static Websites

A person dear to me, who is new to the tech world, asked me a simple question: “What is a static website?” It was asked in response to me saaying that I have a static website–this website you are reading. Tech Jargon and Shibboleths Once again it dawns on me how often jargon slips into normal conversation and acts like a shibboleth. It’s hard to place one’s self squarely back into the shoes of someone that has no frame of reference. If you want to get a feeling for what this is like, try to remember that at some point in your life, you would not have understood the words on this page. Even worse, you wouldn’t even be learned enough determine what is a word and what is not. This is hard for you to remember because you don’t–or barely–remember being illiterate. If you want a sense of that, go look at a book written in a completely different language. For example, if your first language is English, go look at a book in Hindi. I always find it fascinating, scary and humbling that I cannot tell what is a word, what is punctuation, or anything when I look at a completely different language; these new languages appear to me as tally marks as I’m certain English appears this way to a North American child. ...

February 26, 2023 · 9 min · 1878 words · Scott Brown

Automated Ledger Summaries By Email

A long time ago I wrote about my method of book-keeping using Ledger CLI. Nearly 10 years later, I’m still using it track my finances down to the penny. It’s an amazing tool, and has helped me identify problematic spending habits. But it does have one achilles heel, it’s not very friendly to non-technical people. I share my finances with my family because I want to teach financial literacy and help them feel like they are a part of any decision-making activities related to money. Given that Ledger is text-based, it means they don’t need to install any programs. But because it is text-based, it means they need to learn to use a text editor and the terminal (I could import it into things like Gnu Cash, but I’m not going down that rabbit hole). To improve this accessibility problem, I devised an automated notification scheme whereby once I finish updating the ledger, a summary is emailed to everyone. Here’s how I did it. ...

February 11, 2023 · 10 min · 2032 words · Scott Brown

Security Training is Hard

I recently had to go through the mandatory annual training around ethics, security, and handling sensitive data. Like many companies, this training comes in the form of pre-built SCORM courses. I received the following question from KnowBe4, specifically in handling sensitive data. I was going to answer this question by choosing “Find a location with greater privacy and communicate using encrypted messages on a secure connection”. I was so close to clicking the Submit button. Then at the last moment, I changed my mind and chose “Tell the office that for security concerns the call will have to wait until you get to your hotel room.” I clicked the Submit button and waited for the result. ...

February 7, 2023 · 5 min · 902 words · Scott Brown

ChatGPT Part 2

The previous part in this series introduced ChatGPT and explained my motivations for testing it out. One of the coolest features of the tool is that it will remember previous topics in the conversation and apply them in future prompts. So you don’t need to get it right the first try, you can rephrase and try again. Since I learn best when the knowledge is applied, I asked ChatGPT to help me with a problem I was struggling with for the past 4 days. I was trying to come up with an elegant solution to using AWS application load balancers to process HTTP requests with Lambda functions, and I wanted to use the Go programming language. However, doing HTTP path multiplexing is something that the standard Go muxer is not good or performant at. For instance, the default muxer can handle GET /blog perfectly, but it cannot handle GET /blog/:id because it doesn’t know how to parse path parameters. I could start parsing those path parameters with regex, but then I’d start having regex problems, and I’m certain it wouldn’t be performant or battle-tested. That’s where muxers like Gin or Chi or Gorilla come in. I wanted to write the Lambda function to pass the ALB request to a Gin backend and have it mux for me. The problem was that constructing an HTTP response struct by hand is not something people do, and I was struggling to write it properly. I tried using net/http/httptest/ResponseRecorder and it worked, but that struct is for unit testing and it felt wrong to adapt it for – what I would expect to be – production code. None of my solutions worked, so I asked ChatGPT to help me. ...

February 5, 2023 · 9 min · 1705 words · Scott Brown

ChatGPT Part 1

I love computer technology. All aspects of it. That’s why it has been my career choice my entire adult life, even though my jobs have changed over time (software developer, operations, systems administration, security, etc.). To an outsider, computer technology is akin to magic. But for those of us in the industry, it is our job to understand how that magic works. It is not a stretch to say that demystifying magic is a shibboleth within the tech industry. It’s also why there’s not a lot of new technology that feels magical, like it did when I was just starting in this industry. ...

January 29, 2023 · 4 min · 850 words · Scott Brown

2022 Tech Bust

As we kick off 2023, the technology industry is grappling with an unprecedented wave of layoffs, leading to a phenomenon that I am coining the “2022 Tech Bust.” This crisis has sparked comparisons to the Dotcom bubble burst of the early 2000s, reminding us of the importance of learning from the past to navigate a sustainable path forward. I want to examine the factors contributing to the current situation, reflect on lessons from the Dotcom era, and discuss potential solutions for a more stable and inclusive tech industry. ...

January 28, 2023 · 3 min · 464 words · Scott Brown