Panta

Panta

@pantas.net

Amateur developer, professional contrarian. I post whatever comes to mind, kind of just what I'm thinking about at the moment. Tends to break down ~ 50% tech, 50% whatever. @thepanta82 at twitter. https://pantas.net

250 followers256 following857 posts

Last time I picked DB tech, I opted for doing raw SQL over query building. Reason: experience from a prev project, where converting from SQL to a knex command chain was super annoying. If I was picking today, I'd 100% go for a query builder. LLM solves the conversion now.

Tech influencers used to be upstream in the dev FOMO pipeline. "Here's a new lib all the cool kids are using, but you can't because of your trash legacy project." But since AI tools aren't tied to a codebase, we're now all following along and FOMO-ing at the same time. Hmm.

I managed to setup zero downtime deploys WITHOUT clustering, staggered migrations, or blue/green deploys. Frankly, it was way more DIY than I thought it would be. Reverse proxies should just come with this stuff built in.

After getting used to typescript's various forms of template strings and unions, it's hard to go back to only having ordinary opaque strings in other languages.

Factory functions > constructors in js. The reason: they can be async. With constructors, you often end up in an awkward state, where the class exists but isn't valid to use yet. Sometimes necessary, but still annoying.

AI can generate any image, except all the ones I need. AI can write any text, except any I'd want to publish. AI can code any program, except the ones that matter.

This app is the worst. Don't use it. The reason: pg collation is subtly different on mac vs linux, where your actual stuff will be running. Run db in docker or remotely instead.

Today: Working on Mac is both satisfying (hardware) and infuriating (macOS). 15 years ago: Working on Mac is both satisfying (OSX) and infuriating (hardware).

I used to hate bash. Always kept an eye out for a more sane shell environment. I no longer care. GPT writes that slop for me now. Its obscure syntax no longer hurts. AI will enshrine bad languages forever. We will never get rid of them. But maybe that's OK.

"A meeting can completely kill my flow" ANY context switching can kill the flow. Even between projects, or different types of work. It's just that most corporate devs only do one type of technical work, so all their experience with flow interruptions is centered on meetings.

CSS tip: if you can't get a smoothly looping animation (eg. due to quirky way percentages work in different contexts), just increase the duration. Your visitors will probably never notice it glitch out once every 10 minutes.

Best UI-s are deeply hardcoded. Strings, images, colors - all directly produced and manipulated by your own code. The moment you start extracting "content" into resources, CMS-s, translation files etc, the end product starts to suffer. (you gain other benefits, though)

We've adopted anarcho-tyranny for privacy. People who can harm you get all your private data, and people who can help you get none.

Chrome dev tools is probably the best suite of development and debugging tools in the world, across stacks. I am suspicious of any framework or coding approach that makes it less useful. I'm specifically thinking of: - tailwind - binary RPC protocols - RSC

PostgreSQL devs (smart): "We must make sure only superusers can create extensions, because extensions might allow arbitrary code execution." PostgreSQL users (dumb): "Oh... I guess I'll just use a superuser for everything." Safety FTW

Even with mostly copy-pasting existing playbooks, it still takes me like half a day to do a new deployment (FE + BE). If I was doing this all the time, I can see how a PaaS or some fancy infra solution would be very tempting, even if I'd pay it off via bandwidth tollbooths.

The only new web framework I need is something that can be served straight from backend, with zero build or separate deployment. I've been playing with preact a bit, but its fenced strings feel a bit annoying. Still experimenting.

"I don't need to learn vim and type at 120wpm because I spend more time thinking anyway", he yawned lazily, in the 30th minute of hunt and pecking his way through a simple refactoring. Sure thing, bro. Def some big thoughts brewing there, between memes and misspelled AI prompts.

I don't want to rely on 3rd parties because they inevitably screw something up and cause me grief. > But don't you also screw things up? Sure. But I am just 1 person. There's only so much I can screw up. And if (when) I do screw up, it's def gonna be in the pursuit of the updates I care about 1/3

A vendor chasing their own commercial goals and metrics, on the other hand, will screw up stuff I was perfectly fine with staying as they were. And these screw ups compound with the number of vendors I let into my system! 2/3

No I don't want "security" updates or any other kinds of updates. I want things to exactly as they are, into infinity or until *I* decide I need them to change. 3/3

Is it even possible to rebase a hefty side-branch without having to do a bunch of fixes afterwards? And if not, don't you just end up with a lot of broken project snapshots in git history? There's gotta be a better way.

Sooo, how much of your S3 costs are just files you've lost reference to, so now they are just sitting there, unused, costing you money, forever? Asking for a friend.

Every crypto gets pumped and dumped, every model gets swapped with a quantized version, every saas gets enshittified. Rugpulling is the most common chatacteristic of modern tech.

Open source programs have so many little friction points that don't get fixed, because each one is the cornerstone of some regular contributor's built up habits. But computers are now getting old enough that we'll learn if OSS can improve like science - one funeral at a time.

Panta reposted

I just did a task that I've been putting off for weeks and it took less than 10 minutes! Please clap! I will learn nothing from this!

Database optimization is probably the closest you'll ever get to feeling the algorithmic complexity scaling in your real job.

Simple tweaks can lead to >100x speed improvements on large enough datasets. Nothing will come even close to that in your typical day to day programming.

I always want sites to know my location, and never want them to show notifications. And I don't care about cookies. Why can't I set these as permanent preferences in my browser?

AI codegen will never create a mascot for an internal CLI tool, then convert it to ASCII art and add it to the help screen... just because it's nicer that way. Every increase in productivity comes at a cost.

I have to have an "official" project budget for the first time, and I immediately wanted discretionary spending. What if I change my mind along the way. No can do. Have to say what I'll do and just do that exact thing. A year in advance. 🤯 How do people live like this?

Posting on bsky as a right of center person and posting twitter as a left of center person probably feel similar. Like swimming in shark infested waters. Sure, you'll probably be fine. But you can't stop feeling anxious about the sharks you know are out there.

If your side-branch name perfectly reflects what was done on that side-branch, you aren't exhibiting a lot of ownership over the codebase. (for better or for ill)

Common failure in commit messages: write them as a compliment to the code diff. Example: "Add null check" Makes sense while looking at the code diff right next to the message. Not very useful when looking at a long list of commit messages, without diffs.