10 goto 10
Hulu auth in an endless loop.
Recent content on Justin McGuire's Programming Blog
Hulu auth in an endless loop.
I moved some files between folders, and this happened. It happens a lot with iCloud. The problem, I’ve read, is that macOS is trying to download the file from iCloud, and then move it, and it gets a teeny bit confused. It’s been going on a while. I can’t believe Apple broke moving a file. Update Two restarts and two hours later and it’s still not moving. I could move them…
Saw this on a job application. It doesn’t seem right.
Be direct. Tell me I'm not going to be interviewed in the first sentence. Don't hide it in the second paragraph.
I used Codex to build out a real project, a dictionary generator for Dungeon Crawler Carl.
Still don’t like Python’s "separator".join(my_variable) v my_variable.split("separator") . Every time I walk away from Python for a year and come back, I reforget this. I know why it’s like this, but I still don’t like it.
Found this in a 2023 image folder, back when I was programming in Rust. I think it's from the Safari Browser start page.
I've had a smidge of extra time with my recent unemployment, so to stay sharp and learn a few new things I followed Seiya Nuta's guide to building an Operating System in 1,000 Lines.
I followed the Operating System in 1000 Lines tutorial to understand what it means to work without the safety rails. I expected difficulty. I did not expect how disorienting it would feel to debug code that refuses to pretend it is anything other than memory, registers, and control flow.
Whenever people ask me about JWTs and stateless auth, which has happened twice, I answer: No, No, Maybe.
In 2010 Elif Batuman wrote Get A Real Degree . Ostensibly a book review, it gave her space to unload on an era that produced a writing glut. This quote stuck out to me. That’s the torture of walking into a bookshop these days: it’s not that you think the books will all be terrible; it’s that you know they’ll all have a certain degree of competent workmanship, that most will have about three…
Sometimes science fiction gives a peek into a possible future. Not enough people are talking about this old classic short story Profession by Isaac Asimov, and what it can teach us about our AI-and-prompt-engineering-powered future.
Stack Overflow should not discourage repetitive answers. It's a sign of a healthy community.
My name is Justin, and I have 20 years of full stack experience with a speciality in backend and application development. I’ve done a lot of work in areas like massively parallel ETL processes, auth, imports, customizable dashboards, all using a lot of Python, Rust, Typescript, too much Perl, and not enough Go. I’ve also done a loooooot of work debugging, updating, and migrating…
Let’s pretend this is all fictional and not at all based on a real story I can't talk about.
Scrum does a lot of things wrong, and a lot of the things it does right are mystifying. But one thing that it does very right is it answers the question of how many meetings to have. The answer is about 3 hours a week.
I partially implemented SCIM. SCIM is used so rarely there's no online discussion or help about any of it. Here's what I learned.
Site assembled with Hugo, vi, Visual Studio Code, and zsh scripting. The blogging platform is Hugo , hosted on Dreamhost , with the Terminal theme from panr . The argyle background is from Transparent Textures . I love it because I can change the background color to suit my mood, but still keep the blog classy. A few images are from DALL·E , back when it wasn’t very good. I stopped using it.…
These rules didn't used to exist, because they didn't need to exist, because web design used to not go out of its way to kneecap the basic functionality of a person using a website. But here we are. So here are the new rules of web design for the hell that exists.
Will be fixed later.
These are articles that I've kept around and reread over the years. I love me a readable deep dive, and this list is full of them.
When Fernando Corbató accepted the Turing Award for, among other things, inventing the computer password, he described my new favorite bug.
Should you use full variable names, or abbreviated? The answer: doesn't matter.
Who uses UML? The answer may surprise you! Unless you've spent any time working as a programmer, then the answer will not surprise you. Not at all.
C.A.R. Hoare thinks programming languages should primarily support design and documentation, with programming being a distant third.
It took me too long to realize that the paper I just read was directly relevant to me. It was about teams. I was on a team. Why didn't I get that?
Google Source has tremendous uptime. They manage it by having a super-flexible schema, and code that takes advantage of it.
Use two choices. It's easy to get hugely better performance by moving from one choice to two choices. It's very hard to do better.
Forming. Storming. Norming. Performing. Every writer who writes about teams references this one (and only this one) article, and those four stages. It's foundational, and it rhymes.
In 1984 Microsoft decided to port MacWord to Windows. They expected it would take about one year. It did not. It took five. In one of the many, many great documents unearthed by the Comes v. Microsoft antitrust lawsuit is this great postmortem of what went wrong.
I'm doing this project from the top-down. It's totally unlike how I normally work. But it's also my first time leading a team, which is also unlike how I normally work, and has different needs.
I've always wanted to be able to put simple diagrams in this blog without going through the trouble of graphically creating them in LucidChart or Balsamiq. I just want to type in text, and have it convert to a chart.
Three months ago I started a new job with a huge jump in responsibilities. I went from a comfortable Programmer and Occasional Scrum Master , to a panic-inducing Architect, Team Lead, and Manager . These are roles I’ve wanted for a while, so I’m happy to be here, but it’s a weird new world for me. I have a few things going for me: My boss believes in me, I’m working with a…
Here's the inevitable followup to my last post about things I was right about. This is a list of things that I was convinced about when I was younger, but now I realize I was quite wrong.
Some bloggers have strong opinions and are just right all the damn time. Like Joel Spolsky, and Jason Fried. I admire them, but I've never been that guy, or been that confident in my opinions. But damnit, some of my oldest opinions hold up. After nearly two decades of professional programming, I've looked back and thought about the opinions I originally had. Here are the ones that I'm convinced I…
The TLDR is simple: if you have a disappearing/reappearing bug, just run it again.
Programming languages can be categorized in a number of ways: imperative, applicative, logic-based, problem-oriented, etc. But they all seem to be either an “agglutination of features” or a “crystallization of style.” COBOL, PL/1, Ada, etc., belong to the first kind; LISP, APL– and Smalltalk–are the second kind. It is probably not an accident that the…
25 years ago, a simple question was asked about storage, access times, and economics, and the result was a simple paper. Every ten-ish years since then, an updated paper was written to answer the same question. It's not a terribly good measure of complexity, but it is enlightening.
This paper reads like an old man yelling at clouds, but then, halfway through, he simply writes a better cloud. (This metaphor is pretty awkward given cloud computing.)
Algol 68 is the Cronus of programming languages. Cronus is the titan who fathered Zeus, an important character in the myth, but vastly overshadowed by his own progeny. Algol 68 was an important language, and had a fascinating history. This post is a combination history, lesson, and filled with quotes from people who were there.
When there are failures at a small level, like a deployment goes wrong, there's a meeting, and a blameless post-mortem written is shared publicly. Normally this happens quickly, while everyone's memories are still fresh. When entire projects and movements fail, the opposite happens. There are no public post-mortems, and no meetings. A couple people leave the company, some blame is privately…
I went to dig into some of the sources cited in Peopleware (see my previous two blog posts), and I fell in love with this 1984 article on Japan's software industry and Hitachi Software Engineering. It's a look into a company that feels like peak-era IBM: much bureaucracy and even more success.
Timothy Lister and Tom DeMarco didn't include a bibliography in Peopleware, so I swept through the book and produced one for curious readers.
I just finished reading that old software classic, Peopleware. The first chapter is 'Somewhere Today, a Project Is Failing,' and hooked me immediately.
Mark Richards runs the Developer to Architect website, and puts out a video every Monday. He has helpfully categorized them. I watched all the videos in the 'Soft Skills' category and took notes.
I've been reading about failures in distributed computing. A lot of it is thanks to Vaidehi Joshi's Year of Distributed Computing at https://medium.com/@vaidehijoshi . Here's a small summary of what I've learned.
Here are my notes for week 2 of my product management education. This week is all about metrics, goals, and strategy, with a dive into Pirate and HEART metrics.
I've started an online Product Management class because, I dunno, I like learning new, non-coding things related to my job. I'll be posting all my notes here.
In the aftermath of GE's price fixing scandal, we learned that GE executives had a culture of winking while they told subordinates not to break the law. Sometimes. Each salesperson had to interpret the word and the wink, and the occasional lack thereof, according to their own internal rules. Effective communication was, effectively, absent.
NEDD is a one day conference in Cambridge. It's an inexpensive way to learn about the cutting edge of database research. These are my notes on each speaker.