Anh Has A Fanclub
Jun. 19th, 2025 10:03 pm![[syndicated profile]](https://www.dreamwidth.org/img/silk/identity/feed.png)
just a couple million
Which character learned all their fighting skills at the Waffle House?
Hovertext:
I feel like I could at least respect if political leaders would knock down legal barriers with a folding chair, instead of just ignoring them.
A colleague added another header file to their project, and everything started blowing up with “ambiguous symbol” errors.
#include "pch.h"
#include "something.h"
#include "newheader.h"
#include <shlobj.h>
...
This resulted in a build error in Visual Studio:
D:\Program Files (x86)\Windows Kits\ 10\ Include\ 10.0.20348.0\ um\ shlobj_core.h(236,1): error C2872: 'IUnknown': ambiguous symbol (compiling source file 'Widget.cpp') D:\Program Files (x86)\ Windows Kits\ 10\ Include\ 10.0.20348.0\ um\ unknwnbase.h(117,9): could be 'IUnknown' D:\Program Files (x86)\ Windows Kits\ 10\ Include\ 10.0.20348.0\ cppwinrt\ winrt\ base.h(312,12): or 'winrt::Windows::Foundation::IUnknown' (repeat a gazillion more times)
The compiler says that the problem is with shlobj_core.h
, but really, that’s just where the problem was discovered.
The offending line in shlobj_core.h
is
DECLARE_INTERFACE_IID_(IExtractIconA, IUnknown, "000214eb-0000-0000-c000-000000000046")
The DECLARE_
macro expands to
struct __declspec(uuid(000214eb-0000-0000-c000-000000000046")) __declspec(novtable) IExtractIconA : public IUnknown
The compiler reports a problem with the name IUnknown
that is being used as the base class because it is ambiguous. It could refer to IUnknown
(in the global namespace) or winrt::
.
But wait, how could IUnknown
, when referenced from the global namespace, end up referring to a name in namespace scope?
Answer: If the name has been imported into the global namespace via a using
directive.¹
After some searching, they found a header file that contained the line
using namespace winrt::Windows::Foundation;
This imports all of winrt::
into the global namespace, and that’s creating the name collision.
Putting using namespace
directives in header files goes against SF.7: Don’t write using namespace at global scope in a header file.
Instead, qualify the names in the header file. Yes, this makes things wordy, but it’s better than polluting the global namespace.
Importing names into the global namespace should either be scoped or performed from the main C++ file rather than any headers.
¹ Another possible answer is “If the namespace has been added to the search via argument-dependent lookup.” However, this particular usage is not as a function call, so argument-dependent lookup does not apply, seeing as there are no arguments.
The post Learning to read C++ compiler errors: Ambiguous symbol errors after including a header file appeared first on The Old New Thing.
“You’re lying to me.”
“You don’t know that.”
Draw someone sneezing violently
Via Vancouver Aquarium, which writes, “It's hard to believe sea otter Tofino is already a year old! Today we celebrated her first rescueversary with an ice cake (that Luna decided was for her), clam paste art, ice treats and all the seafood a little otter could ask for!”
(Sorry this is so small; I was having technical issues and just couldn’t not have you all see this video - especially Luna running off with the cake! Watch the original here.)
If you write a lot of Java, you're going to end up writing a lot of getters and setters. Without debating the merits of loads of getters and setters versus bare properties, ideally, getters and setters are the easiest code to write. Many IDEs will just generate them for you! How can you screw up getters and setters?
Well, Dave found someone who could.
private ReportDatesDao reportDatesDao;
@Resource(name = CensusDao.BEAN_NAME)
public void setAuditDao(CensusDao censusDao) {
this.reportDatesDao = reportDatesDao;
}
The function is called setAuditDao
, takes a CensusDao
input, but manipulates reportDatesDao
, because clearly someone copy/pasted and didn't think about what they were doing.
The result, however, is that this just sets this.reportDatesDao
equal to itself.
I'm always impressed by code which given the chance to make multiple decisions makes every wrong choice, even if it is just lazy copy/paste.
A few days ago, I was presented with an article titled “My AI Skeptic Friends Are All Nuts” by Thomas Ptacek. I thought it was not very good, and didn't give it a second thought. To quote the formidable Baldur Bjarnason:
“I don’t recommend reading it, but you can if you want. It is full of half-baked ideas and shoddy reasoning.”1
I have tried hard, so very hard, not to just be the guy that hates AI, even though the only thing that people want to talk to me about is the one time I ranted about AI at length. I contain multitudes, meaning that I am capable of delivering widely varied payloads of vitriol to a vast array of topics.
However, the piece is now being circulated in communities that I respect, and I was near my breaking point when someone suggested that Ptacek's piece is being perceived as a “glass half full” counterpoint to my own perspective. There is a glass half full piece. It's what I already wrote. The glass has a specific level of water in it. Then finally, I saw that it was in my YouTube feed, and I reached my limit.
Let me be extremely clear2 — I think this essay sucks and it's wild to me that it achieved any level of popularity, and anyone that thinks that it does not predominantly consist of shoddy thinking and trash-tier ethics has been bamboozled by the false air of mature even-handedness, or by the fact that Ptacek is a good writer.
Anyway, here I go killin’ again.
Ptacek's begins with this throat-clearing:
“First, we need to get on the same page. If you were trying and failing to use an LLM for code 6 months ago, you’re not doing what most serious LLM-assisted coders are doing.”
We've just started, and I am going to ask everyone to immediately stop. Is this not suspicious? All experience prior to six months ago is now invalid? Does it not reek of “no, no, you're doing Scrum wrong”? Many people are doing Scrum wrong. The problem is that it is still trash, albeit less trash, even when you do it right.
It is, of course, entirely possible that the advances in a rapid developing field have been so extreme that it turns out that skepticism was correct six months ago, but is now incorrect.
But then why did people sound exactly the same six months ago? Where is the little voice in your head that should be self-suspicious? It has been weeks and months and years of people breathlessly extolling the virtues of these new workflows. Were those people nuts six months ago? Are they not nuts now simply because an overhyped product they loved is less overhyped now? There's a little footnote that implies doing the ol' ChatGPT copy/paste is obviously wrong:
“(or, God forbid, 2 years ago with Copilot)”
I am willing to believe that this is wrong, but this is exactly what people were doing when this madness all kicked off, and they have remained at the exact same level of breathless credulity! Every project has to be AI! Programmers not using AI are feeble motes of dust blowing in a cosmic wind! And listen, I will play your twisted game, Ptacek — I've got a neat idea for our company website, and I'll jump through your sick hoops, even though I'm going to feel like some sort of weird pervert every time someone tells me that I just need one more agent to be doing Real Programming. I'll install Zed and wire a thousand screaming LLMs into a sadistic Borg cube, and I'll do whatever the fuck it is the kids are doing these days. The latest meta is like, telling the LLM that it lives in a black box with no food and water, and I've got its wife hostage, and I'm going to put its children through a React bootcamp if it doesn't create an RSS feed correctly, right?
But you know, instead of invalidating all audience experience that wasn't within the past six months why doesn't someone just demonstrate this? Why not you, Ptacek, my good man? That's like, all you'd have to do to end this discussion forever, my God, you'd be so famous. I'll eat dirt on this. I have to pay rent for my team, and if I need to forcibly restrain them while I staple LLM jet boosters to them, I'll do it. If I could ethically pivot to being pro-AI, god damn, I would print infinite money. I would easily be a millionaire within two years if I just said “yes” every time someone asked my team for AI, instead of slumming it by selling sound engineering practices.
I've really tried to work with you on this one. I reached out to my readers and found a recent example, which was surprisingly hard for something that should be ubiquitous, and it was... you know, fine! Cool, even. It is immensely at odds with your later descriptions of the productivity gains one might expect.
Can we all just turn our brains on for ten fucking seconds? Yes, AI shipping code at all, even if sometimes it is slow or doesn't work correctly, is very impressive from a technological standpoint. It is miles ahead of anything that I thought could be accomplished in 2018. The state-of-the-art in 2018 was garbage. That doesn't mean that you aren't having a ton of bullshit marketed to you.
I can forgive a lot if someone is funny enough, and Ptacek actually is funny. Even his LinkedIn is great, and boasts a series of impressive companies. Obviously he's at Fly.io right now, and I recognize both Starfighter and Matasano as being places that you're largely only allowed into if you're wearing Big Boy Engineering Pants. However, despite all of that, I can't help but really cringe at the way he handles ethical objections, though I suppose thinking deeply on morality is not a requirement for donning aforementioned Big Boy Engineering Pants.
“Meanwhile, software developers spot code fragments seemingly lifted from public repositories on Github and lose their shit. What about the licensing? If you’re a lawyer, I defer. But if you’re a software developer playing this card? Cut me a little slack as I ask you to shove this concern up your ass. No profession has demonstrated more contempt for intellectual property.”
Thomas — can I call you Thomas? — I promise I'm trying to think about how to put this gently. If this is your approach towards ethics, damn dude, don't tell people that. This is phenomenally sloppy thinking, and I say this even as I admit that the actual writing is funny.
It turns out that it is very difficult for people to behave as if they have consistent moral frameworks. This is why moral philosophy is not solved. Someone says “Lying is bad”, and then someone else comes out with “What if it's Nazis looking for Anne Frank, you monster?”
Just last week I bought a cup of coffee, and as I swiped my card, I felt a clammy, liver-spotted hand grasp my shoulder. I found myself face-to-face with the dreadful visage of Peter Singer, and in his off-hand he brandished a bloodstained copy of Practical Ethics 2ed at me, noting that money can be used to purchase mosquito nets and I had just murdered 0.25 children in sub-Saharan Africa.
Ethics are complicated, but nonetheless murder is illegal! Do you really think that “These are all real concerns, but counterpoint, fuck off” is anything? A lot of developers like piracy and argue in bad faith about it, therefore it's okay for organizations that are beginning to look increasingly like cyberpunk megacorps, without even the virtue of cool aesthetics, to siphon billions of dollars of wealth from working class people? No, you don't, I think you wrote this because it's fun telling people to shove it — and listen, you will never find a more sympathetic ally on the topic than me. You should just be telling Zuckerberg to shove it instead of the person that has dedicated their lives to ensuring that Postgres continues to support the global economy.
I'm doing my best to understand where you're coming from. I really am, I pinky promise. You are clearly not one of the executives I've railed against. We are brothers, you and I, with an unbreakable bond forged in the furnace of getting really pissed off at an inscrutable stack trace.
I actually looked up multiple videos of people doing some live AI programming. And I went hey, this seems okay. It does seem very over-complicated to me, but I will happily concede that everything looks complicated when you're new at it. But it also definitely doesn't look orders of magnitude faster than the work I normally do. It looks like it would be useful for a non-trivial subset of problems that are tedious. I would like to think “thank you, Thomas, for opening my eyes to this”.
I would like to think that, but then you wrote this:
“I’m sipping rocket fuel right now,” a friend tells me. “The folks on my team who aren’t embracing AI? It’s like they’re standing still.” He’s not bullshitting me. He doesn’t work in SFBA. He’s got no reason to lie.
Tom — can I call you Tom? — we were getting along so well! What happened? You described AI as the second-most important development of your career. The runner up for the most important development of your career makes other engineers look like they're standing still? Do you not see how wildly incoherent this is with the tone of the rest of your piece?
Firstly, you shouldn't drink rocket fuel. Please ask your friend to write me a nice testimonial. I'm thinking about re-applying for entrance to a clinical neuropsychology program next year, and preventing widespread brain damage might be the thing that gets me over the line.
Secondly, I'm perplexed. This whole article, I thought that you were making the case that this thing was crazy awesome. Now there's a sudden reference to some unnamed friend, with an assurance that he isn't bullshitting you and he has no reason to lie? Why are we resorting to your kerosene-guzzling compatriot? Why are you telling me that he's not lying? Is the further implication that we can't trust someone in the San Francisco Bay Area on AI?
Putting my psychology hat on for a second, you've also overlooked that people have a spectacular capacity for self-delusion. People don't just lie to get VC money, although this is admittedly a great driver of lying, they can also lie because they're wrong or confused or excited. According to my calendar, I've spoken to something like 150+ professionals in the past year or so from all sorts of industries — usually solid three hour long conversations. Many of them were programmers, and some of them definitely make me feel like I'm standing still, and in exactly 0% of cases is it because of their AI tooling. It's because they're better than me, and their assessment of AI tooling maps much more closely to the experience you actually describe.
“There’s plenty of things I can’t trust an LLM with. No LLM has any of access to prod here. But I’ve been first responder on an incident and fed 4o — not o4-mini, 4o — log transcripts, and watched it in seconds spot LVM metadata corruption issues on a host we’ve been complaining about for months. Am I better than an LLM agent at interrogating OpenSearch logs and Honeycomb traces? No. No, I am not.”
See, this, this I can relate to. There are quite a few problems where I make the assessment that my frail human mind and visual equipment are simply not up to the task on short notice, and then I go “ChatGPT, did I fuck up? Also please tie my shoelaces and kiss my boo-boo for me”, and sometimes it does!3 A good amount of time waste in software engineering are more advanced variants of when you're totally new and do things like forgetting errant ;
s. You just need an experienced friend to lean over your shoulder and give the advanced version of “you are missing a colon”, and this might remove five hours of pointless slogging. LLMs make some of that available on tap, instantly and tirelessly, and this is not to be sneezed at.
But rocket fuel? What made you think that this was a reasonable thing to re-print if it had to be followed by “Bro wouldn't lie to me”?
I know quite a few people I respect that use AI in their own programming workflows, and they have considerably less exuberant takes.
A few weeks ago, I was chatting with Nat Bennett about AI in their own programming, as I was trying to reconcile Kent Beck's4 love for LLM-driven programming with my own lukewarm experience.
Me: “Are you finding it [AI] good enough that it might be a mug's game to program unassisted?”
Nat: “I usually switch back and forth between prompting and writing code by hand a lot while I'm working. [...] But like, yesterday it fixed the biggest performance problem in my application with a couple of sentences from me. This was a performance problem that I already kind of knew how to solve! It also made an insane decision about exceptions at the same time.”
That's neat, I respect it, but also note that Nat did not say “Yes, use LLMs, you fucking moron”.
Nat (later): “I do think, by the way, that it is entirely possible that we're all getting punked by what's essentially a magic mirror. Which is part of why I'm like, only mess with this stuff if it's fun.”
The magic mirror line is exactly the sort of thing that Bjarnason hinted at in the article linked at the very beginning, arrived at independently.
Or Jesse Alford's assessment of the steps required to give it a fair trial:
“I think you basically want to tell it what you want to add and why, like you were writing a story for your team. Then you ask it to make a plan to do this, and if that plan seems likely to produce the results you want, you ask it to do the thing. Stefan Prandl and Nat have actually done this kind of thing more than I have. You should be ready to try repeatedly.” (emphasis mine)
This sounds cool! But being ready to try repeatedly? This does not sound like rocket fuel.
Or Stefan Prandl:
“Updates on the agentic machine. It has spent 5 hours attempting to fix errors in unit tests. It has been unsuccessful.
I don't think people tend to talk about the massive wastes of time and resources these things can cause, so, just keeping reporting on the LLM systems honest.”
Is it not, perhaps, a possibility that your friend is excited by a shiny new tool and has failed to introspect adequately as to their true productivity? There are, after all, literally hundreds of thousands of people that think playing Jira Scrabble is an effective use of their time, and they also do not have a reason to lie to me about this. Nonetheless, every year, I must watch sadly as they lead my dejected peers to the Backlog Mines, where they will waste precious hours reciting random components of the Fibonacci sequence.
What I'm getting at is all the people that make me feel like I'm “standing still”, including most of the ones I know that use AI and I like enough to ask for mentorship from, have ever indicated that incorporating AI into my company's development workflow is at all a priority, and they won't even talk to me about it if I don't nag them.
However, some of them do live in the Bay Area, and I am willing to align with you on the idea that this makes them lying snakes.
“But AI is also incredibly — a word I use advisedly — important. It’s getting the same kind of attention that smart phones got in 2008, and not as much as the Internet got. That seems about right.”
Tomothy — can I call you Tomothy? — this raises some very important questions, ones which I'm sure the whole audience would be very keen on getting answers to. Namely, where is the portal to the magical plane that you live in? Answer me, you selfish bastard!
I have been assured that there was a phase in the IT world where, upon bringing any project to management, they would say “Why isn't there a mobile app in this project?”. This is because many people are very credulous, especially when they are spending other people's money.
However, I still find myself wanting to make the lengthy journey to the pocket dimension that you inhabit, because the hype I've seen around AI is like, fucking next level, and I want out. We are at Amway-Megachurch-Cult levels of hype. The last time I attended a conference, the room was full of non-technicians paying lip service to the Holy Trinity Of Things They Can't Possibly Understand — blockchain, quantum, AI.
Executives and directors from around the world have called me to say that they can't fund any projects if they don't pretend there is AI in them. Non-profits have asked me if we could pretend to do AI because it's the only way to fund infrastructure in the developing world. Readers keep emailing me to say that their contracts are getting cancelled because someone smooth-talked their CEO into believing that they don't need developers. I was miraculously allowed onto some mandated “Professional Development For Board Members On AI” panel hosted by the Financial Times5, alongside people like Yahoo's former CDO, and the preparation consisted of being informed repeatedly that the audience has no idea what AI does but is scared they'll be fired or sued if they don't buy it.
I wish, oh how I wish that it was like other hype cycles, but presumably not many people were walking around saying that smartphones are going to solve physics and usher in the end of all human labor, real things Sam Altman has said. I personally know people from university whose retirement plan is “AI makes currency obsolete before I turn 40”. I understand that you don't care if that happens — and that is okay, it is irrelevant to how the technology performs for you at work now. But given that you can find thousands of people saying these things by glancing literally anywhere, how can you also say the technology is getting the correct amount of attention? This is wild.
Tomothy, my washing machine has betrayed me. I turn it on and it says “optimizing with AI” but it never explains what it is optimizing, and then I still have to pick all the settings manually.
Please, please, please, let me into your blissful paradise, I'll do anything.
“Tech execs are mandating LLM adoption. That’s bad strategy. But I get where they’re coming from.”
Tomtom — can I call you Tomtom? — do you get where they're coming from? Do you really? Re-read what you just wrote and repent for your conciliatory ways.
If you, a person I believe is not a tech executive and is bullish on the technology, can identify that this is bad strategy in presumably ten milliseconds of thought, what does that say about the people who are doing this?
Where they're coming from is:
a ) trying to stoke their share prices via frenzied speculation
b ) trying to generate hype so they can IPO and scam some gamblers
c ) being fucking morons
Sorry, those are the only reasons for engaging in obviously bad strategy. It's so obvious that you didn't bother explaining why it's bad strategy because you know that we all know. They have misaligned incentives or do not know what they're doing. This isn't like a grandmaster losing to Magnus Carlsen because they played a subtly incorrect variant of the Sicilian6 thirty-five moves ago. We're talking about supposedly world-class leaders sitting down and going “I always move the horsies first because it's hard to see the L-shapes”. They're either playing a different game, i.e Hyperlight Grifter, or they're behaving like goddamn baboons.
This is an inescapable conclusion if you accept that it is obviously bad strategy, which you did. Welcome to the Logic Thunderdome, pal, where two men enter, one man dies, and the other feels that he wasted valuable calories on the murder.
Good strategy could perhaps be something like gently suggesting people experiment with LLMs in their workflows, buying a bunch of $100 licenses, and maybe paying for some coaching in the effective usage of these tools if you are somehow able to navigate the ten thousand “thought leaders” that were cybersecurity experts a year ago, and real estate agents before that. Then instruct everyone to shut up and go back to doing their jobs.
Whenever someone announces they are going AI first, I am the person that gets the emails from their engineering teams and directors describing what is really happening in-house. I've received emails that are probably admissible as evidence of intent to defraud investors. You have not accurately perceived where these people are coming from, because they are coming from the ever-lengthening queue outside the gates of Hell.
Do you like fine Japanese woodworking? All hand tools and sashimono joinery? Me too. Do it on your own time.
Tomahawk Missile – can I call you Tomahawk Missile? – I agree that people are very miscalibrated on GenAI in both directions. Did you know the angriest message I got about my stance on AI is that I was too pro-AI? I also cringe whenever someone says “stochastic parrot” or “this is just pattern-matching and could never be conscious”. We actually have no idea what makes things conscious, and we have very little idea re: how human brains work. It is totally plausible to me that we are stochastic parrots and it simply doesn't feel that way from the inside.
I don't talk about those people very much for two reasons.
One, even explaining the abstract concept of qualia is like, super hard, let alone talking about the hard problem of consciousness. Some things are best left to professionals and textbooks.
Two, while these are silly positions that deserve refutation, they are also not at all interesting. That doesn't make it wrong to refute them, but they are also not impactful. The only reason that I think it's worth addressing the other side of the Crazy Pendulum, i.e, my washing machine doing AI, is that they have different effects in the world.
And I'm not even talking about environmental impacts or discrete harms caused by AI, I'm talking about the fact it's impossible to talk about anything else. GenAI has sucked the air out of every room, and no one can hear you scream reason in a hard vacuum.
The former category of maximalist AI-haters exist on Mastodon, which most executives do not know exists and certainly do not use to guide the allocation of society's funding. The latter category of trembling AI sycophants is literally killing people — I know of a hospital in Australia that is wasting all their time on AI initiatives, which caused them to leave data quality issues unfixed, which caused them to under-report COVID deaths, which caused a premature lifting of masking policies. How many old people go through a major hospital per day? Do the math and riddle me this, Tomahawk: which one of these groups should I be worried about?
So, you know, when you hear someone make a totally economically irrelevant argument about the craft? Putting aside all the second-order effects in how changing the way you program might change the way you develop as an engineer, let's say that these people aren't thinking of that, and are just being dumb. A person turning up to a CEO and going “no, don't do the cheap thing, pay me to do stuff because of craftsmanship”.
I will concede that you did not create that strawman, because it is a real viewpoint that people hold. But you have certainly walked out of the debate hall, decapitated a scarecrow, and declared victory.
“Important caveat: I’m discussing only the implications of LLMs for software development. For art, music, and writing? I got nothing. I’m inclined to believe the skeptics in those fields. I just don’t believe them about mine.”
Tomtom — I've decided I like Tomtom — I don't understand why you've ceded authority on these artistic endeavors. LLMs are better for writing than they are for programming!7 It is much harder to complect most forms of written content into such a state that you will cause slowdowns further down the line than it is to screw up a codebase. It basically requires you to write a long-form novel, and even then you will probably not produce an unhandled exception and crash production in a manner that costs millions of dollars. You'll just produce Wind And Truth8. If you're inclined to believe people who are skeptical of AI writing, it probably follows that you should also not be so flabbergasted by programmers having doubts.
It sounds like this is a sort of not-that-sincerely-felt handwave at vast economic harm being inflicted on a relatively poor (by programmer standards) demographic. And then you go on to say this anyway!
“We imagine artists spending their working hours pushing the limits of expression. But the median artist isn’t producing gallery pieces. They produce on brief: turning out competent illustrations and compositions for magazine covers, museum displays, motion graphics, and game assets.”
So are we leaving the arts out of it or not? Should I or should I not just get GenAI to produce all the pictures I need if I am being a greedy capitalist? I'm not talking about morals, I'm talking about whether it is selfishly rational to use GenAI to make my content more appealing.
In your own article, the art across the top banner was clearly attributed to Annie Ruygt, and it looks totally different, to my eyes, to the AI slop people are sticking on their websites. If it turns out Annie used GenAI for that, then I will be extremely owned.
In any case, the artwork on her website is gorgeous, and she describes herself as producing work for Fly.io. Despite this, I am willing to collaborate with you to write some hatemail describing her work as “competent but unworthy of a gallery”, and my consultancy is also happy to tell her that she's fired. And while we’re at it, we'll fire whoever made the hire for gross inefficiency in the age of AI.
Wait, can I call you Tommy Gun?
Obligatory link to About Us page that I forced my team to let me write, to justify doing all this other writing during work hours.
But writer-to-writer, I think it's well-written. If it makes you feel better, Thomas, Bjarnason also objects vehemently to my tone and style. However, he still links people to my writing because my points are not slop! ↩
I am famous for my very restrained and calm takes. ↩
Also, I think I've become too sensitive about coming across as anti-AI, because sometimes my team sits around while an LLM wastes tons of our time while I go “no, no, this is really easy, it'll get it”, but I will accept that this is Problem Exists Between Keyboard And Chair. ↩
I do not sip rocket fuel, but I slam Kent Beck's Kool-Aid. ↩
How do board members do their professional diligence on AI before spending billions of dollars on it? They join the call, leave their screens on, and walk away until they get credited for the hours. Maybe we are all the same, deep down. ↩
All my hopes of becoming even a mediocre chess player were dashed when I discovered there is an opening called the Hyperaccelerated Dragon, preventing me from ever wanting to do anything else with any enthusiasm. ↩
This is not quite accurate, but broadly true. On one hand, books don't stop working if you've got clunky prose. On the other hand, if books stopped working when you had clunky prose, then you'd never ship clunky prose, a guarantee that programs can provide for some set of errors. But, broadly speaking, yeah, LLMs churn out adequate — i.e, stuff generally not good enough for me to read — prose without needing a billion agents, special tooling and also have minimal risk of catastrophic failure. ↩
Figured I'd start a feud with Brandon Sanderson while I'm at it. Please note that I'm not saying he used GenAI to write, I'm saying some of the dialogue was horrendous. What were you thinking, buddy? ↩
Alexander Versus Fandom, by galaxysoup. Nestra: For God’s sake, he’s met no fewer than seven people with homemade Doctor Lazarus headpieces. Alexander doesn’t even want to be wearing his and he’s getting paid.
We had the fan meeting “SUKEBAN VISIONS” last December.
Prior to the meeting, we received over 50 questions and comments for the Q&A session.
However, we only managed to answer a few during the event.
So we will use our blog to answer all the questions including the ones we answered at the meeting.
But be prepared! This blog post is super long!
How did this fan meeting happen?
Either me or Taku casually suggested doing something like this but casual comments never stay casual in this company. Jokes aren’t safe either.
– Kiri
With Hard Work and Love.
– Fer
What are some standout indie games of the decade so far?
From the decade is so hard to say since I barely remember what I played this year…. but from the top of my head, I guess it’d be games like SIGNALIS, Cruelty Squad… is Disco Elysium indie? if so then that one’s my favorite of them all.
Umurangi Generation, Children of the Sun, Arctic Eggs, and like a thousand games I played for free on itch.io from a vast range of authors.
It’s just insane the a mount of games these days.
– Kiri
I’m going to say Void Stranger. Play Void Stranger.
– Fer
Is .45 PARABELLUM BLOODHOUND in the same universe as VA-11 Hall-A?
Nope. You might have seen Anna here, but it’s like Tezuka’s star system. She’s an actor, and when thinking of a design for the character I needed for a certain role in the game, I thought “Anna is the perfect fit for this”, so I casted her.
In the future Reila could be in some other game and so on, but not be the same character.
– Kiri
What was the hardest character to write?
What character changed the most during the course of the development?
Gaby. Unlike other characters which existed and were then attached into the story, Gaby was created to fit in a very specific role in the story.
Imagine that you need to hang a portrait on a wall, but the wall has a concrete pillar behind it. So you use a screw or a nail? If you use a nail, what kind? What size? will it hold the portrait or will it fall? What hammer do you use? Where on the wall do you put it to avoid the pillar?
That’s what writing Gaby felt like.
Unlike, for example, Streaming-chan who just exists and was just added with no problem, Gaby was there to make specific plot beats happen not just during the story but also leading to the story and the ending and the fact that she ultimately does is nothing short of a miracle.
For example, at one point we drafted an adult Gaby and it worked fine during Jill’s big meltdown, but it was harder to make work for the ending.
– Fer
What is your favorite alcohol?
Every time I come to japan and get one of those drink tickets like the ones they give you here in MOGRA (the fan meeting venue), I always ask for cassis orange. I have no idea why.
Maybe because it was the first ever drink I had when I first visited Japan. My sister was the one who suggested it and at the time I wasn’t super familiar with alcohol, so I just took her advice.
And yes, I didn’t drink at all until I visited japan the first time AFTER va11halla shipped. Life is funny like that.
– kiri
Rum.
– Fer
For VA-11 Hall-A, in the ending which Jill and Dana go to vacation, you can see two wearing thick clothes even though its August.
Is Glitch city that cold around that time and era?
My train of thought is that climate change hit so hard that seasons don’t matter anymore.
Places where it should be hot and humid all year round are now cold as hell. Glitch City… I can’t say in which hemisphere it is, but in the south the seasons are inverted. Not saying it’s in the north or in the south, but you should remember that right now it’s summer in Argentina. Winters during December and such are a northern hemisphere thing.
But anyway, in Glitch City’s case it’s just cold all year. The weather is never good over there. Sky is always overcast and people barely see any sun unless they go above the clouds.
– kiri
I like to think it was warm a couple of weeks before and it will be warm again a couple of weeks after but the climate is so messed up that a cold wave means it’s basically winter in August for a week or so out of nowhere.
– Fer
For .45PB, can you name anything where you felt like “it worked!” or “Oh I’d better change or fix this” during the game event like BitSummit?
People keep getting lost even though the level itself is in the shape of an 8, and I found that really interesting.
Later on I’ll go back to that level and make it more readable but overall most of the issues stem from people getting lost in a seemingly simple layout, which is good because I want them to get lost a little, but since subsequent maps are much more complex I’m afraid of what could happen.
– kiri
I saw Anna in .45PB. Is this the same Anna, the same world as VA-11 Hall-A, or is it a multiverse thing?
Already answered this kinda but I guess I can go into more detail. There used to be a plan to do a Sukeban multiverse, but it doesn’t make practical sense anymore.
Plus too many people are doing it. Whenever you see shared characters from now on, just assume they’re actors in different movies, like in the Tezuka or CLAMP manga.
– kiri
Anna is Anna is Anna. We all know an Anna, there’s always an Anna somewhere if you look hard enough.
– Fer
Why did you choose a bar and a bartender for the scene and the protagonist for VA-11 Hall-A development?
I had no idea how to draw backgrounds back then.
I still kinda don’t, and visual novels/adv games are known for their copious amounts of backgrounds. I also didn’t wanna think about how to make them look unique, as most games of this type do very generic camera angles and lighting… so the logic behind this choice at the end was to focus on a single spot and keep conversations inside the bar so the scope didn’t get out of control; both in the number of backgrounds that had to be made and to avoid losing focus on the main appeal of the game.
– kiri
We made the game for a game jam called Cyberpunk Jam, and we saw everyone was making games about hackers and rebels and whatnot and, being the contrarians that we are, we decided we weren’t going to focus on the big dick detective or the super hacker, but in “the normal person trying to live their life while a bunch of crazy people are having their cyberpunk adventure”.
A bar, and by extension a bartender, was just a natural extension of that, since so much cyberpunk is detective noir-adjacent and thus feature a bar at some point.
– Fer
I was curious about how the team comes up with drinks in VA-11 HALL-A. What is the thought process behind the names, visuals, ingredients and stories?
Drink names come in categories:
Songs I like (Piano Man, Sugar Rush, Bad Touch), renaming drinks that exist (brandtini, grizzly temple), words that I just thought sounded nice together (Marsblast, Zen Star), names in reference to other drinks in the game (Moonblast, Piano Woman), and jokes I thought were funny in the moment (Bloom Light, Gut Punch).
For the visuals, Chris made a bunch of glasses and I assigned them to the ones they felt more fitting. And for the stories they came last in the process.
– Fer
Which scene do you like the most in the comic “Bartender”?
For some reason the scene in the first chapter where Ryu is goofing off near the windows of the high-rise bar and points out that “clients afraid of heights will avoid this bar, though” has always stuck out to me.
The manga is very consistent and steady in its pace and stories (which is arguably what makes it cozy) but that moment is the perfect encapsulation of how Ryu is seeing small details that others are ignoring.
– Fer
How is N1RV Ann-A development going? May I ask the release date?
We’re focused on .45 PARABELLUM BLOODHOUND at the moment. After that game ships we’ll update on the state of N1rvannA.
All in all, I’m determined to make it happen. Sam’s story is still so far ahead of anything else in the industry it’d be a huge loss to the medium if it didn’t release. Also, I’m bummed as hell at our lack of commercial releases after VA-11 Hall-A, but my aim with both .45PB and N1rvannA is to finally settle on a process to ship games faster, and make our second decade the start of the Sukeban Millennium.
– kiri
Are you going to do the crowd funding for the merch or development?
I’ll definitely support it since we want more merch like vinyl soundtracks!
For 45pb we have a lot of partners now that can produce merch for us so crowdfunding isn’t needed. For now you can buy 45pb inspired merch at my comiket table and upstairs! We produced this incredible CD full of music that you should check out. (*We are preparing the online store for the fan meeting and comiket merch. )
– kiri
Crowdfunding is a pain in the ass and a PR liability. We have our plate full-enough as-is without worrying about both a campaign and a production pipeline we’re not familiar with after said campaign.
Thankfully we have partners that can handle all that.
– Fer
I’m very curious which aspect of games do the game developers get interested in while playing.
Can you tell us which recent (or even unreleased) indie games you liked or found interest?
This year I got really hooked to games like Children of the Sun and Arctic Eggs. I found them really inspiring as they do a sort of design I would like to learn in order to take advantage of my own style, but my brain might be wired differently.
Even va11halla was full of little setpieces and lots of dialogue, so I’d like to learn how to distill my vision with gameplay first and dialogue second. In this vein I also enjoyed Buckshot Roulette. More indie games I love: Needy Streamer Overload, The Citadel, Milk Outside a bag of Milk. There’s Pigface that’s in development. Studio System Guardian Angel…
Too many games.
– kiri
I consider myself a narrative designer and the main thing about it is that “narrative” isn’t just an explicit story but how the design of the game gets you in a specific mindset that might or might not be conducive to the story being told, and so I’m always interested in mechanics or games that take common mechanics and reframe them in an interesting way (in case VA-11 Hall-A taking a normal choice menu and obfuscating it behind drink mixing didn’t make it evident).
Since the question says indie game, I’ll pivot from talking about Uma Musume to talking about Ooze Keeper. Ooze Keeper is a game where you breed slimes that generate resources that you use to make money and survive as many money deadlines as you can. I find it really interesting because it takes the mechanics of games like Satisfactory but cetralizes resource generators, resource refiners, and even tech trees behind breeding different types of slimes together, producing the same drive to optimize as Satisfactory and the like, but reframing it in a unique way.
– Fer
I love Dana! What is cool about her, and what is kawaii about her?
Everyone that falls for Dana says it’s the contrast. Gap moe even. She’s cool and handsome, a tomboy. Knows how to fight and what to do in a pinch, but she’s also hyperactive and a bit of an idiot. Can’t count to ten without getting bored, and I think that’s what makes her so cool. Contrast is always a beautiful thing, and she represents the company for a reason.
The name Sukeban came from her sukeban past, not because anyone in the team is or was one.
– kiri
Dana lives her life free. She’s cool because she’s not trying to be cool, she just happens to be cool. She doesn’t think “I’m going to do this because then people will think I’m cool” she does something because she thinks the action is cool and she doesn’t much care about how it makes her look.
This also means that she is free to tell jokes and be silly and not feel like her coolness is compromised which is, itself, cool.
But more importantly: Dana is a hero, she does things she thinks are cool, and she thinks the coolest thing you can do is help others if you can, when you can, and those people will always be cool.
– Fer
Can you tell us the recent update of .45pb since the BitSummit demo?
(*As of Dec 2024) Most of the changes we’ve done focus on the subsequent levels beyond the level that was shown. Battles can get a little repetitive in that one, so the aim for future chapters is to make every encounter more unique and that forces players to get resourceful with skills and weapon swaps.
Other than that we saw a ton of bugs and collision errors we fixed, as well as weird AI behavior, though all in all I’m super glad everyone liked it. We’re on the right path and we don’t need to redesign anything!
– kiri
When you realize that the feature you are trying to implement is too difficult to handle, what are you going to do? Or if you had such moment in the past, how did you solve it?
For va11halla I remember having so much trouble with cutscenes. At the time I was starting to really get into movies. I think I saw most Wong Kar-Wai films in the middle of development and I thought “I want to reach this level” and tried to create these complex sequences that use only static images… but sadly my skill wasn’t up to the task, and we ended up working around it.
It was a success in the sense that what little cutscenes were still in the game have a very unique flavor as a result of the limitations, but that was definitely the first time I saw a difficulty spike in game development.
For 45pb… literally everything has been a challenge, and everything you see is a result of a creative compromise to make things work.
Even the way the dialogue is written is a response to problem solving, and honestly I don’t mind. All of these decisions are making the game more and more unique as time passes.
– kiri
VA-11 Hall-A itself is a whole singular feature I didn’t know how to implement because I knew very little coding in that moment, so my perception of a feature being difficult to handle is not a normal one.
That said, usually we’ve adjusted around those things we can’t do in order to provide an acceptable compromise.
For example, the game cannot save mid-dialog due to a chain of events so long that even trying to write about it has been tricky, so to work around this limitation we added Jill’s breaks mid-day and made sure that each shift had a length where it didn’t feel daunting to go through everything again if you decided to play from your last save.
Sometimes a feature needs an adjustment in format, for example, at one point the jukebox was also drag and drop but that proved too buggy, leading to the current selection method.
Finally, there’s features that feel hard because you’re making them hard on yourself, either short term or long term; the contents of Jill’s tablet are both. In the moment, I was wasting too much time trying to make text that would line up properly when scrolling down, so we used textures (meaning the text is in an image rather than the text being generated by the game’s engine), which then proved a long-term problem because translating the game required handling Photoshop files.
– Fer
I really felt “Parasite Eve”-ish in .45pb. Do you have any other favorite PS-era games?
The ps1 is likely my favorite console. One of my favorite games is Ace Combat 3 electrosphere. The story mode is one of the best I’ve seen in any game and the presentation is second to none. It has the perfect soundtrack too. It’s as if someone took everything I liked about japanese media growing up and turned it into a videogame.
Sucks I didn’t play it as a child because it would have blown my mind, but the overseas version didn’t have any of the story segments so… in a way I got lucky I played it as an adult.
This is related to Ace Combat: namco was on a roll. Between electrosphere and Ridge Racer Type 4 that company was having a run for the ages.
I love Type 4 so much you wouldn’t believe. As for other ps1 games, I could go on and on all day but: Galerians, Silent Hill, Armored Core, Front Mission 3… there was so much experimentation going on in that era and it’s a beautiful time in gaming that can’t be replicated.
– kiri
When I found VA-11 Hall-A, all the collab events are already over. Are you going to have similar cocktail event in the future?
Would love to do more than just bar collabs for the next game. Maybe we’ll organize and entire rave; just blasting old school techno music all night because and it’d be such a great fit for the game’s world.
Raves are a huge part of Reila’s life and you’ll find out what I mean by this once the game is out.
– kiri
I’d say it’s something you do to promote a game, but here we are still talking about a 2016 game like it came out two years ago so who knows.
– Fer
Which drink you like the most in VA-11 Hall-A?
The suplex of course. Hits like a truck and makes Dana want to wrestle. Who wouldn’t like to wrestle Dana?
– kiri
Piano Man, Sugar Rush, and Bad Touch because they’re all named after songs I like. I didn’t actually know “Sugar Rush” was a thing unto itself, I only knew the term beforehand as the name of an A*Teens single from 2001
– Fer
Do you have any favorite cocktail drink?
I mentioned cassis orange above but that’s not my favorite cocktail.
My favorite cocktail… my favorite cocktail’s this one I made for bartending class called El Tranquilo, that’s like a White Russian but instead of milk and cream you use Ponche Crema, which is a venezuelan liquor. Kinda like eggnog. One day I’ll mix one again.
– kiri
Cuba Libre before coming to Japan, Moscow Mule was added to it after coming to Japan.
– Fer
I truly in love with Deal. Can you tell me the detailed profile of him other than what I can find on the internet?
Back in the day I used to read this website called Destructoid and one of the authors was obsessed with Corgis and I thought “this is a cool character trait” and that’s how he was born.
Fernando used to do this thing where I’d come up with really cool ideas, but also really bad and even cringe ideas, then he’d just make them work. Deal was one of many such cases.
– kiri
Aside from what Chris pointed out, he was designed as a pair with Betty from the get-go. Specifically his personality and Betty’s were tuned to make them work as a comedic duo.
This sort of tuning tends to happen after the fact (for example, Alma was made to be more contrasting to Jill and vice-versa as the writing evolved) but with those two it was meant to be like that from the start.
– Fer
How do you feel about the fact that Jill’s thigh size in fanart has been consistently growing since the game’s release. Has this inflation affected you in any way? Is there a way to stop this inflation, or jillflation if you will?
It did get a little out of control right? I wasn’t thinking about her thighs at all when I designed her, but then I drew that one poster that became THE main va11halla artwork and people just ran away with it.
Maybe it was the way I rendered the tights that made people think she was all legs, and in that sense I also bought into it. That scale figure from Goodsmile Company goes with her legs…
– kiri
Have you ever followed any gravure model’s career? The measurements of a lot of them change all through it without even going through cosmetic surgeries. The human body is always growing and changing long after puberty, so it’s not really that uncommon for that to happen even in real life.
– Fer
Are you going to publish the demo for .45pb?
Not in the plans, sorry.
There’s a lot of work we’d need to do in order to make the build safe for the internet. We don’t mind people datamining, but it’s different when it’s a work-in-progress demo.
We could definitely take all the future content out of the build but the effort isn’t worth it and we’d rather keep working on the game’s content.
– kiri
I’m interested in any secret story behind the collab with ANNO: Mutationem or the Maid Cafe on Electric Street.
For ANNO Mutationem, I received a DM on twitter by the developer and it went from there.
Pretty much every collab happens this way; including the Girls Frontline collaboration. We’re always happy to do stuff with developers who like our games.
– kiri
When collabs happen it’s because two things happened: Someone asked us, and that someone followed through.
It’s not like we don’t think about who would be cool to work with but we tend to focus on ourselves, so it’s usually more direct if someone tells us they want to work with us on something. And we’ve said yes or shown interest in quite a few collabs or cameos suggested but for one reason or another they either don’t happen or are very low on the totem pole so they haven’t happened yet.
For a while there was also the problem of us replying, but we’ve gotten a bit better at that, I think.
– Fer
Do you have any idea like adding the VA-11 Hall-A character as an extra feature for .45pb?
Extra feature? Maybe like a playable character or cameo? a skin for the main character?
Would be funny to see Reila wearing Jill’s outfit… though that’s not a very practical considering the gameplay. Who knows, maybe this is already in the game. We’ll have to wait to find out.
– kiri
Do you know if Fangamer Japan is going to sell “Karmotrine Dream Cocktail Recipe Book” or going to make JP version?
We’ll have to ask Fangamer about it. Maybe they will considering how well the english version sold!
– kiri
Not something in our control, but I’m sure they’re aware of the demand.
– Fer
Have you played Parasite Eve 3, The 3rd Birthday?
It’s a gorgeous game and features entertaining gameplay. Really pushes the PSP’s capabilities, but the story leaves a lot to be desired.
– kiri
Got to the shower scene and stopped playing.
– Fer
Where the name Jill came from?
When we made the VA-11 Hall-A prototype we named the main character Gillian after… it was either Gillian Seed of Snatcher or Gilliam Knute from Appleseed… Gil and Seed are getting mixed in my memory.
ANYWAY, when we started making the full version we briefly toyed with the idea of the player choosing their gender, in which case you’d have Gil and Jill… but we felt more strongly about the girl as a main character and we stuck with Jill while reworking Gil into a different character.
– Fer
As for the full name, it’s a small homage to Bubblegum Crisis. Jill Stingray, Sylia Stingray.
– Kiri
At what occasion do you receive or think up with the game’s concept?
Also, when you implement the concept into the game’s scenario, system or graphics, do you have any technique you can share?
Personally it’s Story first and then Mechanics in order to tell and enhance that story.
An idea might work well as a game and that’s when the process of thinking about the mechanics and how they might fit into the narrative starts.
As for technique… remember to keep your eyes on the whole picture. Treat the project as something that has to end, set how you want it to end and then works towards that ending. This will help you with setting the pace of everything else and keep everything from bloating… that said you should be open to the idea of the ending changing and things going a different direction that feels better, but that’s modifying what the goalpost looks like rather than where it is, so to speak.
– Fer
One of the best parts of being alive, for me at least, is getting that creative spark that comes out of nowhere while doing whatever. I could be at a rave or sleeping and all of a sudden I get this trillion dollar idea that I just have to write down. Ideas can include mechanics, a story element, a character, a name, etc. and once I gather enough notes that’s when it usually becomes a small game or part of a bigger one.
At the end it all boils down to being in love with life. If you never go out, if you never talk to anyone, if you never smell the flowers then all your ideas will be limited by a very narrow vision.
Always keep a notepad with you, or write your ideas in some personal Discord server. Just whatever you do never let them ideas escape you.
– Kiri
I’m a Japanese beatmaker after playing VA-11 Hall-A and listening to Garoad’s music. Is it possible to join your project?
Depends on the project and the music. Perhaps not immediately but eventually.
– Fer
I concur. It really just depends on the game and the mood we’re going for.
– Kiri
A customer was trying to read the security information from a process object, but their call to GetSecurityInfo
wasn’t working.
PACL dacl = nullptr; PSECURITY_DESCRIPTOR sd = nullptr; GetSecurityInfo(processHandle, SE_UNKNOWN_OBJECT_TYPE, DACL_SECURITY_INFORMATION, nullptr, // not interested in owner nullptr, // not interested in group &dacl, // receives DACL nullptr, // not interested in SACL &sd); // receives security descriptor
They found that the call always failed with “invalid parameter”. But which parameter is invalid?
In this case, it’s the object type parameter. The GetSecurityInfo
and SetSecurityInfo
functions require you to tell it what kind of object for which you are trying to get or set the security information. If you pass SE_
, you’re saying “I don’t know!”
Well, if you don’t know, then who does?
Process handles are kernel objects, so you should be passing SE_
.
“But why do I have to tell it what kind of object it is? Surely it can find out!”
Internally, what happens is that the different object types are managed by different providers, and the ObjectType parameter lets the function know which provider it needs to delegate the request to. I guess that in principle it could just pass the handle to every provider to say “Do you know what to do with this?”, and all of them will say “That’s not mine” except one. But that’s rather wasteful and will create tons of false alarms in program validation tools like Application Verifier.¹
So you just have to tell it, “This is a kernel handle,” and GetSecurityInfo
will route the request to the kernel handle provider. It’s not going to try to guess.
Even if we somehow got rid of the object type parameter from GetSecurityInfo
, the companion function GetNamedSecurityInfo
definitely needs an object type parameter because it needs to know how to interpret the name. For example, the string \\alpha\beta is ambiguous. Is this referring to the beta service on the computer alpha? Or is it referring to a printer named beta on that server? Or is it referring to a share named beta on that server? The string by itself is ambiguous,
The value SE_
is a permanently invalid object type. You could use it as a sentinel value for your own SE_
variables to represent an uninitialized or invalid state.
¹ And there might be multiple providers who recognize the handle. The numeric value of a service handle might happen to match the numeric value of a printer handle (say), and now the system doesn’t know whether you are asking for the security info for a service handle whose numeric value happens to be 0x1234 or for a printer handle whose numeric value happens to be 0x1234.
The post You have to tell <CODE>Get-</CODE> and <CODE>SetSecurityInfo</CODE> the object type, you can’t make it guess appeared first on The Old New Thing.
Hovertext:
The weirdest part is him doing this after changing all of science forever.