Ville Säävuori
banner
uninen.net
Ville Säävuori
@uninen.net
Oldskool Web Monkey and a DJ. Posting about the Web, Python, Django, TypeScript, Vue. Founder of slipmat.io Documenting my learnings at http://til.unessa.net Personal homepage (in Finnish) at https://www.valveilla.net
I love it when projects host their own "awesome"-lists and merge in repos with 1 commit and no activity in two years -- pretty "awesome" 😂
November 28, 2025 at 10:19 AM
"Create TypeScript interface for the shape of this JSON" is one of my favorite prompts.

It's *so* useful and saves so much time and head aches when dealing with random third-party APIs 🎉
November 5, 2025 at 9:26 AM
Can't for the life of me understand how people get any value out of gpt5-codex. I'm really trying to give it a chance but it's just total garbage all around. It writes *really* shitty code AND is slow as hell 🤔
October 12, 2025 at 9:48 AM
It's crazy how much automated phishing traffic there is nowadays. Seconds after pointing Tailscale funnel to my Django devserver the logs are full of malicious requests to env files, conf files, known Jira and php paths etc 🥴 (bc it has a known ssl cert)
October 3, 2025 at 5:43 AM
Ah, yet again the joys of working w the JS hippies;

bump an official Vue ecosystem package from MAJOR.MINOR.PATCH to PATCH+1 and your build just breaks with gazillion of config-related TS issues 😅
August 30, 2025 at 9:10 PM
Developers: a better coding model, please?
OpenAI: pro-users can set special color themes for their chats!
a pixelated image of a man making a face
ALT: a pixelated image of a man making a face
media.tenor.com
August 7, 2025 at 5:34 PM
Not sure what I think of the fact that I let Claude to clean up warnings from a pretty complex pytest suite that runs async Django WS tests w/ Sqlite. I *know* the tests are working and no warnings now .. but conftest.py has 100+ lines of horrible magic 🤔
August 3, 2025 at 8:50 PM
And the weirdest cli command output award goes to:

> pnpm self-update

"Nothing to stop." 🤔
August 2, 2025 at 6:29 AM
Achievement unlocked: I got Claude to swear!
July 31, 2025 at 12:51 PM
Don't know why it took me this long to let Claude Code loose in a prod VPS box to debug devops issues but Holy Cow!

It took Opus 4 less than a minute to diagnose and fix a similar Traefik issue I wasted two full days a couple of months ago 🤯
July 26, 2025 at 4:58 PM
It's interesting how Web Claude seems to be much more compliant and malleable to prompting than Claude Code.

No matter how much (or little) I tell CC to not add comments or tell me I'm absolutely right, it just absolutely right keeps writing those useless comments 😅
July 24, 2025 at 7:52 AM
In today's episode of Claude "Not Quite AGI Yet" Code in action 😂
July 19, 2025 at 5:53 PM
Asking Claude to lint its code:

"The linter found some SIM117 errors about nested with statements. These are just style issues, not errors. The refactoring is complete."

Thanks! 😂
July 18, 2025 at 9:55 AM
Uh. Claude.ai artifacts aren't loading with Firefox anymore 😭
July 17, 2025 at 11:34 AM
I just love Claude "not quite yet AGI" Code commenting its work like:

// Setting the number of messages
const NUMBER_OF MESSAGES = 5
July 16, 2025 at 9:49 PM
So Claude Code seems to be picking up in EU timezones as well 🤔
July 16, 2025 at 11:21 AM
Happy birthday to Django! 🎉

I've had the privilege to work with Django since late 2005 and I've met lots of awesome people through the community over the years. Here's to another awesome 20 years making Web development better! 🍻
July 14, 2025 at 8:35 AM
TFW you end up writing a long and detailed prompt into Claude Code, and just before submitting lose it all by pressing up or down too many times 😩
July 14, 2025 at 12:14 AM
Anthropic has restricted the usage for the lower max plan quite a bit. I used to never run in to the limits, now basically every 5h block I get "Claude usage limit reached" in just a couple of hours. Seem to get about ~30% less tokens per block :(
July 13, 2025 at 9:46 AM
Anthropic would save SO MUCH compute if Claude would just follow the instructions in CLAUDE.md
July 11, 2025 at 10:36 PM
Mad at myself for not finding this out earlier;

if you don't want to keep "automatically remove unused imports" on in your editor, you can still have Ruff do it with one command when for example instructing Claude ❤️
July 10, 2025 at 7:18 PM
I'm absolutely right!
July 10, 2025 at 6:57 AM
Claude Opus 4, not quite AGI yet
July 9, 2025 at 9:54 AM
I asked Claude to write instructions for itself to not write dumb comments in the code it generates. It took the ballistic option:

**CRITICAL: NO DOCSTRINGS, NO COMMENTS IN ANY CODE. NONE. ZERO. This includes class docstrings, function docstrings, and inline comments.**

😅
July 5, 2025 at 6:41 AM
This page reminded me of the sad state of Web publishing.

The article has several gigantic 10+ Mb pictures, just dumped on to S3 without any optimizing whatsoever.

Back in the day journalists actually cared about these things! (These things being the quality of your publication.)
When a Lumberjack's Imagination Ran Wild, He Created More Than 200 Sculptures in Wisconsin's Northwoods
Decades later, a conservator keeps Fred Smith’s art alive in the whimsical Wisconsin Concrete Park
www.smithsonianmag.com
June 27, 2025 at 2:45 AM