(no subject)

Jun. 1st, 2026 10:56 pm
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance
Quick note that post-by-email and comment-by-email is (sometimes?) failing silently without actually posting right now! I'm pretty sure this is related to last night's shenanigans and will be fixed once Mark can finish the full fix for it, which he's working on, but if you've posted or replied by email in the last 24 hours, fish it out of your sent folder to check if it posted!

EDIT: This should be fixed as of around 7AM EDT! We *believe* everything that was stuck in the plumbing has been sent along to your journal or the comment thread it was meant for; it's definitely not where it was stuck anymore, at least.

(no subject)

May. 31st, 2026 10:00 pm
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance

Robby has managed to put in a temporary fix for the site errors and things failing to refresh or not showing up where they should! The permanent fix is going to need Mark's experience, and unfortunately -- seriously, this literally never fails -- Mark has been on an international flight all day, because of course he has. (Never. Fails. He and I are not allowed to both take vacation at once.)

The site will work just fine with the temporary fix in place, things just might be a little slow here and there. We'll keep you updated.

(no subject)

May. 31st, 2026 08:59 pm
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance
We're aware of site traffic issues and are working to fix them for the people who are having problems! (The tactics the damn bot traffic uses are endlessly shifting, and they're really good at looking like real traffic, sigh.)
jducoeur: (Default)
[personal profile] jducoeur

(Yeah, I know, I'm still completely failing to diarize beyond hot takes on Mastodon. This makes me sad, but I'm torn in too many directions at once these days. But here's at least what has been chewing up a lot of my time and attention. Cross-posted to all of my blogs, since they mostly have separate audiences.)


Early this year, I started to realize that the inevitable moment had arrived: the frontier LLMs no longer suck at writing code. So after a couple of years of largely ignoring the hype wave, it was time to knuckle down and learn how to use them for that purpose.

Mind, I've been using them for research for years -- Kagi Assistant is very much my friend, and I use it several times a day.

(I don't use them for writing: I care too much about my personal "voice". All this em-dash and parenthesis abuse comes from my own Gen X, OG Internet style -- I'm the guy the LLMs learned all that from. Sorry.)

The early LLMs wrote such bad code that it wasn't worth my time to even really kick the tires much, but Claude Opus and GPT Codex are now able to write decent Scala code -- not fabulous, but good enough to actually be a net plus.

I've been using them hard for a couple of months now, so let's talk about that. Nothing here is revolutionary -- it's just an anecdotal report from someone who has been programming for 50 years, in many paradigms, environments and languages, about what this next paradigm is like.

For context, I'm using Claude Code (mostly Opus) for Querki, and GitHub Copilot (mostly on top of Claude Opus and GPT Codex) at work.

(Note: yes, yes, the AI Industry is mostly staggeringly evil, and likely to collapse under the weight of its nonsensical economics sometime soon. Let's take that as read, and not get derailed by it too much in this post. If folks want to engage in meaningful discussion about the downsides in comments that's fine, but I'm not impressed by extremist arguments on either the pro or con sides: it's a complex and subtle set of topics.)


There's a lot of exaggeration being spouted in terms of the quality of the output, with some people saying it's all terrible crap and others saying "fire all the engineers, the LLM is enough". The reality seems to be somewhere smack in the middle.

I'm using the LLMs both for greenfield development (I've been booting up a new microservice at work), and legacy work (notably Querki, whose codebase is ancient and creaky, and needs a lot of TLC). It's been particularly useful for cross-repo development: for example, lifting code out of a service and moving it into a library -- that's traditionally a pain, but is proving pretty easy this way.

I can get very good results from the current-generation models, but that doesn't happen magically. I've been putting a fair amount of effort into building up AGENTS.md files (which is how you give generalized instructions to the LLM about how to behave in this code), and a lot of effort into each prompt.

People talk a lot about "vibe-coding": give the LLM a minimal prompt, and just YOLO the results. Far as I can tell, that's still a terrible idea for serious, long-lived code bases -- the things just don't produce very good code when left to their own devices.

(Long-lived code needs to be well-designed and well-factored. That's more important in the brave new world of AI, not less, because badly-written code is going to cost more to maintain in the long run, just in terms of the number of tokens you have to shove around and the amount of reasoning effort needed by the agentic LLMs. So leave the vibe-coding for throwaway projects and prototypes.)

Yes, LLMs might eventually get to the point of producing genuinely good code without much oversight; frighteningly, "eventually" might well be within the next few years. But we're not there yet.

So in practice, I'm typically spending a bunch of time preparing for each PR ("pull request" -- basically a unit of work in modern programming). I make sure I understand the problem decently well, and write up a deeply-detailed prompt: typically a couple of paragraphs, and a bullet list of the key things I want to make sure it deals with, usually with some specifics about how the code should be factored.

Paired with that is the all-important "don't trust the AI" for the outputs. The code tends to look good, in the same way that chatting with an LLM sounds human-like, but it's prone to similar problems of being over-confident and weak on the details.

So in practice, I do a detailed code review of the output, even before I open the PR. I'll often tell the LLM to restructure it in various ways, to clean up the code paths so that everything is tighter and easier to maintain.

This is where it is critically important not to anthropomorphize the thing. If this was a human, I might well be tempted to softball it: to not hassle them too much about details, lest I burn out an engineer. But these aren't people (ignore the chirpy obsequiousness), and politely but firmly bossing them around is how you get the best results.

A key point here: using LLMs effectively and responsibly requires critical thinking. A lot of critical thinking. We've never been collectively all that good about teaching that in school, and I worry quite a lot that this is one of the ways in which that is going to bite society in the ass.

Anyway, at the end I often have another LLM pass to do its own critical review of the code. That's generally bad at finding maintainability problems, and they're horribly prone to whining about picky details that don't actually matter, but they do fairly often pick up on bugs that are worth fixing.


Now let's talk about productivity.

There was a lot of hype a while back about a study showing the LLM usage wound up making programmers less productive, not more. I recommend ignoring that: it was a fairly narrow study, as far as I could tell, largely about testing using LLMs badly, in a very specific and naive way -- of course that produced bad results. I don't think it matches what you get when you use the things mindfully and carefully.

The key thing, I'm finding, is to separate "designing" from "typing". I'm still doing all of the high-level designing, and most of the detailed design, myself. But for PRs of any serious size, I'm letting the LLM do most of the actual typing. That's a pretty serious speedup, provided that most of that typing is correct -- which at this point it mostly is when using the best models, carefully-steered.

It's by no means instantaneous, mind: those detailed prompts typically take me half an hour or more to craft. But I usually do all that planning anyway, and being forced to write down the plan in advance isn't a bad thing. And that's followed by 2-20 minutes of the LLM cranking away, often replacing what would have taken me a day of type, compile, type, compile, type, compile, test. (Rinse, lather, repeat.)

Anecdotally, my sense is that my overall coding productivity is getting boosted three-to-five-fold. That's not a small thing, especially given that I'm not a slow programmer to begin with. I'm cranking through tickets significantly faster than I traditionally could, and I'm using enough care that I don't believe quality is suffering.

That said, it's not magic. It does require attention and time if you want great results -- I suspect that a five-fold speedup is probably somewhere around the cap without sacrificing quality, at least until and unless the LLMs are genuinely good enough to operate unattended.

And mind, coding is only a fraction a senior engineer's workday. Most of my time is spent dealing with higher-level product architecture and design, research, problem analysis, and of course meetings and discussions in chat. LLMs can help a bit there as well (Kagi Assistant in Research mode has enormously sped up the technical-research side for me), but there are limits.

So overall, that's a major speedup for a fraction of my job; the total speedup is necessarily smaller. Too many people forget to do that math properly, and expect unrealistic miracles.

And of course, this stuff costs actual money. It's been effectively-free up until now, but with quota limits that I often bump my head against, stopping my work for a time. GitHub Copilot is especially egregious here, with a one-month quota granularity: if you overuse the LLMs at the beginning of the month, you can be dead in the water for the rest of it unless overages are authorized.

But those "effectively-free" prices have been mostly a over-the-top loss leader by the LLM companies, which have been blitzscaling to a degree we've never seen before, burning a bonfire of cash in order to attract market share. I believe we're nearing the end of that, and we're starting to see more-realistic pricing creeping in.

So I expect the cost of LLM-driven programming to rise by an order of magnitude or more in the coming months. I believe that's still going to be a good deal when you factor in the realistic productivity benefits, but it's going to be enough that the bean-counters at many companies are going to get cranky about it, and with good reason. Folks are going to have to start budgeting realistically and appropriately around it (along with training engineers in how to use it well), and just using it profligately for fun is going to become less of a thing.


Anyway, that's my initial take. It's a powerful tool, and a generally beneficial one for programming if you use it responsibly. IMO any serious programmer should be kicking the tires and learning how to use it, or you're going to be in danger of being left behind. (Which happens with every major paradigm shift in this industry -- if you don't keep up with the times, you can easily find yourself unemployable.)

As a side-note: all of this has left me doubling down on my long-held assertion that Scala is the best current programming language for most business use cases. (Rust is probably the best language for the rest of them.) The rise of LLM-driven programming is making that more true, not less: Scala's strengths nicely complement the needs of LLMs. But I've talked enough here, so I'll leave that for my next post...

(no subject)

May. 29th, 2026 12:34 am
sorcyress: Drawing of me as a pirate, standing in front of the Boston Citgo sign (Default)
[personal profile] sorcyress
OKAY HI!

Some good things I have done recently:

*Actually tried to get some real sleep in a real bed some of these nights? Of course, I'm only just getting to words now at midnight, so that's not really great for continuing the trend, but at least tomorrow is an incredibly mellow day at work.

*Done a _lot_ of nostalgia-searching old hard drives for interesting things. This is mostly in the pursuit of flirtation, because of course it is, but also in the pursuit of having a good time with nostalgia!

*Found my old ipod, it's got about 5k songs on it from circa 2013. I am _very very_ enjoying listening to them, even though it's annoyingly a little jank on the headphone jack and I only get input from the left headphone.

*Went to Pinewoods for the Work Weekend! This was SUCH A GOOD WORK WEEKEND! I did lots of very good work! Lots of scrobbling in the sticks and leaves! Getting put in charge of a work crew that immediately unionized against me! A little bit of knitting! No swimming because it is wayyyyy too early in the season! Showing new friends my beloved Home, complete with dead mice and horrible bathroom paintings!

*Work is exhausting right now. We're close to the end. But not close enough. But I'm making it through, and that's pretty good!

*Got to have dinner at Willow and Alexander's house, which involved a lot of looking at their wedding photos and then joining Willow in chanting "put it on" at Alexander until they showed us how pretty their wedding suit was. I am always pleased when my blanket "I will do all your dishes in exchange for food" offer actually gets taken up.

*Last night's exec meeting was _thoroughly satisfying_ and then I had enough energy to run a bunch of data about my class and the data was REALLY GOOD! I still need to actually use it to write my AGM report, but my AGM report is gonna mention shit like "Yeah, I've had over 80 people try my class out, and half of them have come back at least once" which is _fantastic_ kinds of numbers actually.

*I dunno man, like, my life is good and weird? I've been trying to lie down on the bench on the back porch for a little while every day when coming home from school and that is really nice? I do need to stop getting endlessly distracted from words so I can go to bed, so I guess that's all here for now. G'night!

~Sor
MOOP!
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance
It's been a while since we've done a full code push rather than just hotfixes for bugs, so we are well overdue! Depending on availability, we're aiming to do one sometime soon; we'll let you know specifics once we've worked out good timing for everyone who needs to be available.

However! The reason it's been so long is we kept trying to get some of the stuff that's pending to "really finished" instead of just "mostly finished", and then we once again looked around and went "oh no, this is a really big code push with a lot of changes". Those make us nervous, because while we do a lot of testing ourselves, y'all are really creative in how you use the site and we inevitably find a bunch of edge cases when we let you loose on new code with your real-world data!

So, if folks have some spare time in the next few days, it would be a huge help if you could spend half an hour or so using the site the same way you normally do but with the "Site-Wide Canary" beta features flag turned on. Canary mode is a sort of "live testing" mode: it's your real data, but running the most up-to-date code.

Canary mode always does have a few glitches -- there may be missing text strings or errors about missing database properties, which is a limitation of how we run it. We don't need to know about those, but anything else weird that you run into, leave a comment with what you were trying to do and the error message you got.

I'll repeat that the "here be dragons" caution that's on the beta features page: some things may be broken, so don't use it for when you're doing something important. But a few more eyeballs on it before the push will help the push go more smoothly for everyone.

For folks who want to concentrate on what's changing, we haven't finished the second code tour of what's going to be in this push, but the ffirst one has a good chunk of what's going to be going live. (We'll get the second half done ASAP!)

Hosting a Regular Dance

May. 22nd, 2026 12:36 am
sorcyress: Drawing of me as a pirate, standing in front of the Boston Citgo sign (Default)
[personal profile] sorcyress
So, I was poking around some old journal entries today, and found this gem1 from 2012. It's me, saying I'd like to start a dance, host something regular. A chance for my friends to get together with me and do a wide variety of fun stuff.

It's from me not-quite-a-year out of college. Bright and a little naive and always the kind of optimistic that says "what if I could get all my friends to come dance with me!?". Not really thinking about the stress of balancing schedules and the difficulties in advertising and promoting and ensuing the regulars have reasons to come back and the new people have reasons to try it out and everyone can have some fun. I do appreciate the part where I say "in an ideal world I'd just pay for it myself".

It took me twelve and a half years after that post to have the first instance of GenderFree SCD in Somerville. It's not Oella North --this is not an open format "whatever kinds of dance we feel like" melange. It's just Scottish, with a waltz thrown in at the end.

But tonight I was one of twelve dancers, and it was a week with no "newbies" as it were. I looked around at one point and my brain said "I am here with my friends!" and that is true, that is what it is. One of the friends is someone I only met because of this, because she found it random and started attending regularly. Some of the friends primarily do other dance forms, and this is how I am slowly dragging them into SCD. Some of the friends are more experienced than me. One of the friends is my high school friend!

It was twelve tonight, and I think at least 2/3 of the April nights had seven couples. This wasn't even everyone who's shown up more than a few times! I have _regulars_ and I have enough regulars that it feels increasingly like I have something _sustainable_. There are still more steps to go to reach the highest dreams, but oh gods, the dreams that have already come true are so amazing!

part of the genesis for this is the idea of having a space to do Scottish Country where no one cares about your gender or who you're dancing with

I have _successfully given myself that space_. I built it with my own two hands, except that's not true at all, I built it with my own community and all our hands together! And we are continuing to build it, and expand it outwards. A floor where we care about each other's genders in the sense that we love and respect these myriad identities, but no one thinks any of them have anything to do with where you dance.

Tonight we were doing presumptive dances from Book 55, and it felt _so good_ to approach that as a team and a puzzle. We tried out four of them (part of my words goal for tonight is to type up the notes so I can pass those along) and it was great fun! I don't think we would've done so many if we'd actually had beginners this week, but we didn't and so it was marvelous!

It felt good also to be able to make eyes at each other about the various divisors being so clunky about their language. And also, honestly, to be in a space where I could start us off with "hey y'all, I think I'm gonna just do a mental find/replace on role terms" and have people think that's dandy.

And if I'm being extremely vain and just a little smug, it felt really good to be in a space where we tried one of the dances that CambridgeClass tried Monday night. I didn't dance it then, my observation from the side of the room was "hm. That seemed. Semi-disasterous". The two people who did dance it then, seemed to like it much better tonight, and several of the rest of us thought it was extremely good as dances go.

And yeah, a little bit of that is me! I am good at teaching and I'm especially and increasingly good at teaching this class. But a lot more is that I successfully recognized the space that wanted to exist, and bullied it into existing. I built it, and they came, and by they, let's just say, well. The dancers!

It's real great and it makes me _abundantly_ happy, every single week.

I hope you are also happy!

~Sor
MOOP!

1: 2012 02 06

Profile

breakinglight11: (Default)
breakinglight11

October 2025

S M T W T F S
   1234
567891011
12131415161718
1920212223 2425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 2nd, 2026 04:19 pm
Powered by Dreamwidth Studios