Sign in

Jeff Standen

@jstanden.bsky.social
230 followers 507 following 129 posts

Founder & Software Architect @ cerb.ai I've been obsessed with coding since the dial-up BBS days of the early 1990s. My daily stack is PHP/MySQL/AWS/Docker, with increasingly more Python for devops/ML. #php #mysql #aws #python #docker #german #piano

PostsRepliesMedia
Jeff Standen @jstanden.bsky.social · 07/08/2026
I found a new use for #ClaudeCode. I fall down rabbit-holes on code exploration; changing 100s of files w/o worktrees. This time I built a new UI component library & swapped out 20 years worth at once. Claude rewrote the #phpStorm workspace.xml file & staged 80 commit changesets w/ hunks for review
030
Jeff Standen @jstanden.bsky.social · 16/12/2025
I just completed all 12 days of Advent of Code 2025! adventofcode.com #AdventOfCode
adventofcode.com
Advent of Code 2025
060
Jeff Standen @jstanden.bsky.social · 16/12/2025
I've completed "Christmas Tree Farm" - Day 12 - Advent of Code 2025 I was _deeply_ unsatisfied with this solution, so I've been turning it into a game and working on an actual solver instead. github.com/jstanden/adv... #AdventOfCode #Python #Programming
160
Jeff Standen @jstanden.bsky.social · 12/12/2025
Since I used nx.topological_sort() to do the heavy lifting for me on this one, here's an implementation of Kahn's algorithm to do the same thing for any graph model. github.com/jstanden/adv...
github.com
advent-of-code-python/2025/journals/topological-sort-graph.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
010
Jeff Standen @jstanden.bsky.social · 12/12/2025
I used z3, but went back and re-learned Gaussian Elimination (like I seem to do every year). You can at least feel some measure of comfort that a lot of people probably also used AI to generate those solver examples.
110
Jeff Standen @jstanden.bsky.social · 12/12/2025
As penance for using Z3 on Day 10 pt2, I wrote down some notes and worked examples for linear Diophantine equations and Gaussian Elimination w/ matrices. This comes up every year and I never remember it. I worked a few examples from my Day 10 input. github.com/jstanden/adv... #AdventOfCode #math
github.com
advent-of-code-python/2025/journals/diophantine-equations.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
0231
Jeff Standen @jstanden.bsky.social · 11/12/2025
Good question. If I get a few mins before the next puzzle tonight, I'll swap in the dataclass decorator in place of the tuple and see if it has the same issue. Just using tuples and a 'visited' set I knocked the initial 40s down to 20ms. The object copy may still drag before checking the set.
010
Jeff Standen @jstanden.bsky.social · 11/12/2025
It's also worth mentioning on this post that I added a two lines of code to track visited states, and the code runs in 20ms. The several second solution time was just my naive implementation and not a Python issue.
010
Jeff Standen @jstanden.bsky.social · 11/12/2025
Also for education. When I'm helping my son visualize something like rigid transformations in geometry, I just open a Jupyter notebook and write a couple lines of code w/ Shapely and we get a pretty chart in under 5 mins. If we fire up C/Rust/Go, I'd lose the afternoon.
000
Jeff Standen @jstanden.bsky.social · 11/12/2025
You aren't wrong about parallel computing either. For web apps, we also deal with that limitation in Apache/Nginx process managers. Interpreter overhead vs threaded event queue is an issue. There's always a tradeoff in developer time vs compute time, and the former is often far more expensive.
010
Jeff Standen @jstanden.bsky.social · 11/12/2025
Yeah, there are absolutely large swaths of programming where Python isn't the right tool. I wouldn't use it where every cycle/byte matters (AAA game, an OS). For web apps, min ideal light speed one-way latency LA to London is ~29ms. Realistically 2-3X. Compiled vs interpreted is rarely noticeable.
000
Jeff Standen @jstanden.bsky.social · 11/12/2025
Most of the time I need to get a quick throw-away answer on some question from a pile of data, and I haven't found anything that beats Python and a Jupyter notebook with inline plots. I've used PHP for 24 years on a SaaS project, and it's never the bottleneck. It's almost always the relational DB.
100
Jeff Standen @jstanden.bsky.social · 11/12/2025
Personally, I find Python both fun and efficient for data analysis, manipulation, and visualization (e.g. numpy, pandas, networkx, z3, matplotlib, scipy). That makes up most of my actual work. It's the exception when I write production code for extreme efficiency/performance. I'd use a library.
110
Jeff Standen @jstanden.bsky.social · 11/12/2025
Yeah, this is a great point. I may not technically be defining a single class for any AoC challenge this year, but that's a ton of overhead to subclass/override the existing tuple class. namedtuple._replace() is expensive to copy w/ modification. My big speedup was just a visited states set.
010
Jeff Standen @jstanden.bsky.social · 11/12/2025
This is fascinating. Thanks for the tip! 👍 I had actually just bookmarked this old school bit hacks archive: graphics.stanford.edu/~seander/bit...
graphics.stanford.edu
Bit Twiddling Hacks
000
Jeff Standen @jstanden.bsky.social · 11/12/2025
Sure, but there isn't a single programming language that's good at everything. The more languages you learn the easier any future one is, since algorithmic thinking is what matters vs syntax. I learned C in 1995. I've made a great living on PHP for 25 years. C/Rust/Go being faster never mattered.
100
Jeff Standen @jstanden.bsky.social · 11/12/2025
You're probably right about the network effect being a major reason. The creator of Python (Guido van Rossum) worked at Google and they promoted it heavily 10+ years ago. Notebooks + interpreter make it easy to play with data vs compiled, even if not the fastest. Tons of libraries. It's fun to use.
000
Jeff Standen @jstanden.bsky.social · 11/12/2025
The networkx graph visualization made the bottlenecks obvious. 😀 I spent too long thinking that they mattered, but I assume all other inputs were also directed and acyclic.
000
Jeff Standen @jstanden.bsky.social · 11/12/2025
Readability on the state objects in my BFS queue while avoiding classes/structs. I also used them for the machine schematics, but we only had a few hundred. Could have been dictionaries. Immutable tuples are more memory efficient, but the hidden 'class' overhead is too expensive for this case.
120
Jeff Standen @jstanden.bsky.social · 11/12/2025
I've completed "Reactor" - Day 11 - Advent of Code 2025 I spent a while severing bottleneck edges in Part 2 before remembering the trick to past problems like this. The result is a couple lines and ~30ms. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day11.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
250
Jeff Standen @jstanden.bsky.social · 11/12/2025
Quick visualization while untangling AoC 2025 Day 11 Part 2. #AdventOfCode #networkx
1111
Jeff Standen @jstanden.bsky.social · 10/12/2025
I added 2 lines for a 'visited' states set and BFS runs in milliseconds. 👍
010
Jeff Standen @jstanden.bsky.social · 10/12/2025
Great tip! I felt like there was probably a way to treat it like Dijkstra. 😀
000
Jeff Standen @jstanden.bsky.social · 10/12/2025
Python's namedtuples apparently have major overhead. I replaced my BFS queue state for Day 10 Part 1 with tuples and the runtime dropped from 45s to 14s. I'm sure I can optimize it further with just math, but the solution is only ~7 lines of code. #AdventOfCode #Python #Programming
7140
Jeff Standen @jstanden.bsky.social · 10/12/2025
I've completed "Factory" - Day 10 - Advent of Code 2025 I used Z3 to solve Part 2 in ~500ms. I still need to clean up Part 1's brute force. github.com/jstanden/adv... #AdventOfCode #Python #Programming #z3
adventofcode.com
Day 10 - Advent of Code 2025
091
Jeff Standen @jstanden.bsky.social · 09/12/2025
Part 1 and Part 2 visualizations in matplotlib for 2025 Day 9. #Python #matplotlib #shapely
020
Jeff Standen @jstanden.bsky.social · 09/12/2025
I've completed "Movie Theater" - Day 9 - Advent of Code 2025 My shortest solution so far thanks to the shapely Python library in Part 2. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day9.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
260
Jeff Standen @jstanden.bsky.social · 08/12/2025
I've completed "Playground" - Day 8 - Advent of Code 2025 networkx and heapq did the heavy lifting on this one. It's super short but not particularly efficient (~1.8s). github.com/jstanden/adv... #AdventOfCode #Python #Programming
adventofcode.com
Day 8 - Advent of Code 2025
0140
Jeff Standen @jstanden.bsky.social · 08/12/2025
That's super efficient code. Nice work! 😀
010
Jeff Standen @jstanden.bsky.social · 08/12/2025
Yeah, and after participating for several years you start expecting at least one of each core type of problem, and can identify which it is from the ASCII sample data. 😀
000
Jeff Standen @jstanden.bsky.social · 08/12/2025
Yeah, AoC is a good excuse to practice regex, but I've only barely used them on puzzles this year so far. The 10xE15 skill would have helped on Day 7 today. I usually detect those problems when my code runs more than 2 seconds and I realize I'm going to have to toss it and start over. 😀
010
Jeff Standen @jstanden.bsky.social · 08/12/2025
Hi Rich! Eric @ AoC asks us not to share personalized data files in public repositories (adventofcode.com/2025/about). To run my code examples, you'd add your own data files from the #AdventOfCode website in a `data` directory at the root of the project.
adventofcode.com
About - Advent of Code 2025
010
Jeff Standen @jstanden.bsky.social · 08/12/2025
I just completed "Laboratories" - Day 7 - Advent of Code 2025 I thought my Part 2 approach couldn't be right, since it tossed all of Part 1 and used a couple lines of memoized recursion in <10ms. Part 1 was trickier to count. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day7.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
160
Jeff Standen @jstanden.bsky.social · 06/12/2025
I've completed "Trash Compactor" - Day 6 - Advent of Code 2025 Python is like poetry for the challenges where input parsing is 90% of the problem. It was fun to do using list composition without numpy, and re.finditer was today's hero. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day6.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
3332
Jeff Standen @jstanden.bsky.social · 05/12/2025
I picked up the function wrapper and merge forward tricks in past AoC years. I usually try to see how far I can make it without defining a class. 😀
020
Jeff Standen @jstanden.bsky.social · 05/12/2025
Thanks! I like trying to use only built-in functions for AoC, but using numpy/scipy is far more practical for any real world challenge. 😀 I'll reach for numpy on matrices, z3 for linear algebra, or networkx for graphs.
030
Jeff Standen @jstanden.bsky.social · 05/12/2025
I just completed "Cafeteria" - Day 5 - Advent of Code 2025 We had one like this back in 2022, so I ported a function from my old PHP solution to Python. Both parts in <10ms with a couple lines of code. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day5.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
1120
Jeff Standen @jstanden.bsky.social · 04/12/2025
I just completed "Printing Department" - Day 4 - Advent of Code 2025 I love using complex numbers for 2d grid coords. Python excels at this kind of puzzle. ~10 lines and 200ms for both parts. github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day4.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
1190
Jeff Standen @jstanden.bsky.social · 03/12/2025
I've completed "Lobby" - Day 3 - Advent of Code 2025 github.com/jstanden/adv... Both parts in <10ms! #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day3.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
060
Jeff Standen @jstanden.bsky.social · 02/12/2025
I've completed "Gift Shop" - Day 2 - Advent of Code 2025 github.com/jstanden/adv... #AdventOfCode #Python #Programming
github.com
advent-of-code-python/2025/day2.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
2120
Jeff Standen @jstanden.bsky.social · 02/12/2025
I just completed "Secret Entrance" - Day 1 - Advent of Code 2025 github.com/jstanden/adv... #AdventOfCode #Python #programming
github.com
advent-of-code-python/2025/day1.ipynb at main · jstanden/advent-of-code-python
Advent of Code solutions in Python. Contribute to jstanden/advent-of-code-python development by creating an account on GitHub.
0120
Jeff Standen @jstanden.bsky.social · 17/06/2025
Handy tip for Safari screencasts: Preferences -> Websites -> Page Zoom -> (host). When I started screen recording web apps I always used to Cmd-Plus or CSS override "zoom". A much better approach is to override the page zoom by host in Safari's preferences. #safari #screencast #video #tips
The preferences popup from the Safari web browser showing the ability to override page zoom per website host from Websites->Page Zoom.
120
Reposted by Jeff Standen
Corey Quinn @quinnypig.com · 12/06/2025
Google Cloud is taking a massive outage right now, globally. status.cloud.google.com Not to be outdone, so is CloudFlare. www.cloudflarestatus.com #hugops
status.cloud.google.com
Google Cloud Service Health
3136093
Jeff Standen @jstanden.bsky.social · 27/05/2025
Here's my 1-minute setup for screen recording 9:16 aspect ratio videos (Shorts) from Safari on a Mac. This is really handy for demoing features for responsive web apps on social feeds without resizing your entire desktop or using an actual smartphone. #Screencast #VideoProduction #Mac #CleanShotX
120
Reposted by Jeff Standen
Hank Green @hankgreen.bsky.social · 21/05/2025
Crash Course is a free educational video series that is used in over 90% of high schools in the US. Because it's free, teachers and students decide for themselves whether they want to use it...and they do. Also...the world record for most high fives in a day is 15,338.
342213191
Jeff Standen @jstanden.bsky.social · 30/04/2025
I was doing something similar, but switched to Premiere Pro and .srt files. It creates reliable speech-to-text transcripts, captions, and translations in the same UI. I'm still trying to automate it at the same quality. That probably fits in your 30 min, but has the usual Adobe disclaimer.
010
Jeff Standen @jstanden.bsky.social · 30/04/2025
We have a large helpdesk client (120+ seats) who has been experimenting w/ AI drafts in a separate UI through our API. They could eventually be zero seats with the same high resource usage on our side. I'm loathe to artificially lock features or charge by resolution. A change is needed though.
100
Jeff Standen @jstanden.bsky.social · 30/04/2025
Per-agent helpdesk pricing is definitely on the way out. It's never felt like a fair metric, and many apps reflect that w/ discount "guest" users who collaborate but don't answer tickets: devs, execs, sales. We've always used floating "seats", but that also undercounts API/AI integrations.
110
Jeff Standen @jstanden.bsky.social · 30/04/2025
Cerb is another HelpScout alternative for your list. It's free for a single seat like yours, source available, and can be self-hosted in Docker (or cloud). We price by seats (simultaneous users) rather than usage. You'd recognize teams using it. Disclaimer: I've been working on it for 20+ years.
010
Jeff Standen @jstanden.bsky.social · 05/04/2025
It's a good rule. I've always admired your approach for maximizing enjoyment and minimizing burnout as an open source maintainer. Thanks for Redis, and continuing to share what you're learning. 👍
110