site banner

Culture War Roundup for the week of December 19, 2022

This weekly roundup thread is intended for all culture war posts. 'Culture war' is vaguely defined, but it basically means controversial issues that fall along set tribal lines. Arguments over culture war issues generate a lot of heat and little light, and few deeply entrenched people ever change their minds. This thread is for voicing opinions and analyzing the state of the discussion while trying to optimize for light over heat.

Optimistically, we think that engaging with people you disagree with is worth your time, and so is being nice! Pessimistically, there are many dynamics that can lead discussions on Culture War topics to become unproductive. There's a human tendency to divide along tribal lines, praising your ingroup and vilifying your outgroup - and if you think you find it easy to criticize your ingroup, then it may be that your outgroup is not who you think it is. Extremists with opposing positions can feed off each other, highlighting each other's worst points to justify their own angry rhetoric, which becomes in turn a new example of bad behavior for the other side to highlight.

We would like to avoid these negative dynamics. Accordingly, we ask that you do not use this thread for waging the Culture War. Examples of waging the Culture War:

  • Shaming.

  • Attempting to 'build consensus' or enforce ideological conformity.

  • Making sweeping generalizations to vilify a group you dislike.

  • Recruiting for a cause.

  • Posting links that could be summarized as 'Boo outgroup!' Basically, if your content is 'Can you believe what Those People did this week?' then you should either refrain from posting, or do some very patient work to contextualize and/or steel-man the relevant viewpoint.

In general, you should argue to understand, not to win. This thread is not territory to be claimed by one group or another; indeed, the aim is to have many different viewpoints represented here. Thus, we also ask that you follow some guidelines:

  • Speak plainly. Avoid sarcasm and mockery. When disagreeing with someone, state your objections explicitly.

  • Be as precise and charitable as you can. Don't paraphrase unflatteringly.

  • Don't imply that someone said something they did not say, even if you think it follows from what they said.

  • Write like everyone is reading and you want them to be included in the discussion.

On an ad hoc basis, the mods will try to compile a list of the best posts/comments from the previous week, posted in Quality Contribution threads and archived at /r/TheThread. You may nominate a comment for this list by clicking on 'report' at the bottom of the post and typing 'Actually a quality contribution' as the report reason.

16
Jump in the discussion.

No email address required.

Trying out ChatGPT. Tried out a few topics from my field (electrical engineering) and it failed to make basic circuits. A couple queries I tried were making a CMOS inverter or a common-source amplifier, which are very simple circuits that most who have done a class could easily draw. Asked it to give the answer in SPICE syntax, because it can't draw things and SPICE is basically a code representation of a circuit. The results were poor; a MOSFET SPICE line is of the format Mxxx nd ng ns nb , chatGPT got the order of the drain/gate/source/bulk terminals wrong several times. It had some justification for how it connected the nodes of each individual device, but almost always failed to connect the outputs (drains) together for eg. an inverter. Also seemed to connect other terminals sort of at random.

FWIW these two circuits consist of 2 lines of code at minimum, 4 lines if you want something self-contained, maybe 8 if you want it to a fully functioning & simulatable netlist. So not asking for much here.

It gives lengthy canned responses explaining the circuit reminiscent of how a textbook would describe a circuit, and they sound good, but it's just wrong. Kind of reminds me of when students would throw out buzzwords in an attempt to explain something they don't know.

With some handholding (or, rather, explicit statements of how to fix the circuits) it can get closer to something functional, but usually in the process screws up something unrelated such that it's never quite right. Trying with anything even slightly more complex it falls apart pretty quickly and it's impossible to reconcile with anything approaching a functional circuit. It does much worse with analog circuits than digital circuits.

Seeing it underperform so much in my field is giving me a sort of Gellmann Amnesia effect for people touting how it can write code on its own. It certainly wrote out the circuit, and that circuit could be simulated, but it wouldn't achieve the desired behaviour of someone using it, so I'm skeptical that it can code well in other domains. That said, the field is kind of niche, and manually writing SPICE circuits slightly more so, so maybe it is just weakly trained for this subject. SPICE is also different from code in that it doesn't run sequentially, it's kind of like a hardware description language in that it's just instantiating elements that interact with eachother through simulation, so the interfaces between them aren't as simple as passing a variable to a function which does some abstracted function step-by-step. Also with how much content is out there for coding python/javascript/c# etc. it probably has a much greater wealth of resources to pull from.

I think at the moment it is essentially just stringing together user tutorials from the internet in a somewhat intelligent manner, I think anything novel or requiring critical thought will difficult for it to achieve. Maybe with some improved pattern recognition from the scraped data it will do better, I don't know.

Has anyone else tested it with things you're knowledgeable about and have any judgements of its usefulness?

Edit: it seems reasonably okay at turning explicitly stated english-language commands into bash commands. Probably well trained from stackoverflow, seems like a viable alternative to pulling information from different stackoverflow responses to do the thing you want to do. Also seems kind of helpful for asking how to do random MS Office stuff like highlighting every other cell in a column. Could be useful for simple stuff like this that is rote, common, and has good documentation but you don't usually remember off-hand, although you probably have to be extra careful when running bash scripts.

I'm in software, and I'm impressed with it. I think it's a good tool. If it goes mainstream, I can see it replacing simple queries that get SEO'd to hell with autogenerated unhelpful articles (e.g. "compare koa and express", "most commonly used Azure services"), and queries for documentation or basic initial code generation. I think it's better than Google.

To summarise the problem: for the sort of questions I ask, it's right 90% of the time. If I don't know anything about a topic, this looks incredible but is useless -- I have no way of knowing what it's got wrong (I can ask follow-ups, but it might get them wrong too). It also has a tendency to blag, saying meaningful things which are relevant but still wrong.

If I know a lot about a topic, or an adjacent topic, this is fine: I can read the paragraphs, identify the likely errors, and refresh myself. If I ask it to make a table of equivalent services in AWS and Azure, it is mostly correct -- and it makes a more helpful table than Azure's docs, as Azure's docs are alphabetical, but ChatGPT puts the most popular ones at the top.

When writing code, it doesn't necessarily do it the best way, and sometimes makes (large) errors. If you know roughly what you're doing, you can prompt it further to iterate, and it's a great assistant. If you don't know what you're doing, you're probably just going to propagate the errors.

As an example: I just asked it to compute the inode percentage in a volume. It wants to use df -i (perfect, and 90% of the way there for a human). To compute the percentage, it observes that the calculation is "used divided by total": fair, but you could just read off the value. But when it comes to writing the script, it calculates "total divided by percentage", which is total nonsense.

If you take the docs together with the code, you can figure out what to do a lot more easily than starting from scratch. But you have to take what it gives you with a pinch of salt.