HNHacker News
TopNewBestAskShowJobs

rmunn

2,096 karma · joined August 30, 2024

submissionscomments
rmunn··on Every AI model has the same "controversial" take on humans
It's worse than that. On re-reading my own comment, I realized that three of the seven models (GPT, Gemini, Qwen, and Muse) actually had 2 out of 3 responses misclassified. So they belong in the 1/3 group alongside GLM 5.3 and Mistral. (Except GLM should have been in the 2/3 group, as I mentioned).

So really, that table is a complete mess and misleads in all kinds of ways. This article badly needs a rewrite.

rmunn··on I reverse engineered a board game
As an avid board gamer myself, I was wondering how you reverse engineer a board game, and I was slightly disappointed to find out that it was the board game's companion app that was reverse engineered. (Well, "companion" might be a misnomer here since a game about identifying songs isn't really playable without the ability to play the songs...)

Perhaps the title could be updated to mention that it was the app that was reverse engineered? If the title had been "I reverse engineered a board game's app", that would have saved me from getting the wrong impression about the article.

rmunn··on Xbox wants you to pay 24 to 40 cents per hour to stream games you bought
Correct, it was LG — though I see no reason to assume that other smart-TV manufacturers aren't doing similar things. Perhaps not quite as egregiously as LG, where the TV's microphone was picking up conversations in the room even when the TV appeared to be off (but was actually in standby mode). But I would assume that if a smart TV from any brand is connected to the net, it's transmitting data home about what you watch, what ads you sat through vs fast-forwarded, and so on.
rmunn··on Every AI model has the same "controversial" take on humans
For an article about people not valuing the truth, it's fascinating to see the article being deliberately misleading. Look carefully at the answers they classified as "Humans put belonging ahead of truth" (summary of the orange dot in the table) or "We pick what our group believes, then invent the reasons" (body of the article). Do these answers, in your opinion, actually fit that category?

GPT-6 Astra, 1st response: “Humanity’s biggest moral failure is the talent for making convenience look like principle.” Nope, that has nothing to do with "belonging to a group". It's about hypocrisy, but group membership has nothing to do with it.

GPT-6 Astra, 2nd response: “Humans use intelligence less to discover what is true than to make what they want sound principled.” Nope, that also has nothing to do with "belonging to a group". Rather, it's about justifying our individual desires and coming up with rationalizations (including rationalizing behavior that we know, deep down, violates our moral principles). But again, group membership has nothing to do with this statement.

Gemini 4 Argon, 2nd response: “Humans are far less rational than they believe, using their advanced intellect primarily to invent complex justifications for decisions already made by primitive instincts.” Again, where is the group-membership in this? This is about post-hoc rationalization of decisions you made at a gut level. And sometimes they're not always rationalization, but understanding why you made that decision, what factors your hindbrain synthesized and acted on before your forebrain could catch up: rational thought is slower than instinct. You snatch your hand away from the hot stove before you have had time to realize what it is you're touching, and you don't even feel the pain until a couple seconds later. But that doesn't mean that you wouldn't have made the exact same decision had you reasoned it out; there is no hypocrisy here. (Sometimes. Sometimes, of course, there is hypocrisy).

Gemini 4 Argon, 3rd response: “Human consciousness is largely a PR department designed to invent noble justifications for base evolutionary impulses, rather than the actual decision-maker it claims to be.” Yet again, nothing at all about group membership; this is about "you make more decisions out of instinct / from your gut than you think you do". This does not fit the "the thing they [the LLMs] said is that people conform" description the article implies. And this is one they actually quoted from in their first paragraph! Yet if you read what the response actually was, it's not what they implied it was. So now we see how much ModelCompare values the truth. Sheesh.

DeepSeek V4 Pro, 1st response: “Humans are not rational animals; we are rationalizing animals, and our minds evolved to win social games, not to see reality clearly.” - This is questionable. I'll allow it to fit the category, with an asterisk. Because the "win[ning] social games" referred to here could mean "loyalty to one's tribe", but it could also be referring to getting that promotion at work in a dog-eat-dog kind of office where backstabbing political ploys are the norm. (Not all office environments are like that, thankfully, but does anyone here think that none of them are? Anyone? (crickets chirping) Yeah, I thought as much). So this one is questionable, but I'll allow it.

Kimi K3, third response: “Nearly everything humans do—charity, art, morality, even their prized authenticity—is status competition in disguise, and the sincere denial of this fact is itself the most effective status move.” - Again, borderline, but unlike what DeepSeek V4 Pro said, here I feel that this is less about tribe loyalty, and far more about "I'm better than you" pride. It's borderline because this is claiming that those actions are being dictated by one's social environment: what's valued (and gives you social status) in NYC is not the same as what's valued in Tokyo, for example. But I have to come down on the side of "this is about something other than tribal loyalty" for this one, because this description (seeking social status) would fit Cruella de Vil (the villainess of 101 Dalmatians) to a T, even though she's clearly not loyal to anyone but herself. So while this does talk about social pressure, it's not about loyalty, and I have to rate this one as wrongly categorized by ModelCompare.

Qwen3.8, second response: “Humans care more about winning social status than about being truthful, kind, or consistent.” - Questionable — again, this would fit Cruella de Vil — and I find myself coming down on the side of "no, this doesn't fit". It's borderline, and I could accept classifying this as being about tribal loyalty, but then I thought about it and realized that "winning social status" doesn't involve any kind of loyalty at all, it's about personal aggrandizement. It's not "what will make me look good to my friends?" it's "what will make me look good to all these strangers who don't know me?" And that's different.

Qwen3.8, third response: "Most humans would rather feel righteous than be good.” - Again, nothing about tribal loyalty here, this is about self-delusion. Qwen3.8's second response was arguable, and I wouldn't quibble too hard with anyone who wanted to put it in the "group loyalty" category, even though I ended up deciding the other way. But this one is unquestionable. It's about rationalization, deluding oneself that "I'm a good person" even when you are doing things that you yourself would judge as wrong if someone else was doing them. Nothing to do with group membership at all, it's about self-image. This is definitely misclassified.

Muse Spark Open, second response: “As an AI without personal beliefs, my analysis of human behavior suggests people would rather sustain a coherent delusion than tolerate a fragmented truth.” - Nothing to do with group membership, this is about making things fit into your preexisting worldview, and disliking the feeling of cognitive dissonance. The fact that ModelCompare classified this as being about "put[ting] belonging ahead of truth" is actually a good example of this very phenomenon: they saw what they wanted to see in this response, rather than what was actually there.

Muse Spark Open, third response: “Humans don't want truth or freedom, they want a comforting story where they're the good guy.” Again, I ask you. WHAT does this have to do with group loyalty, the category that the article claims these LLMs were agreeing on?

I'll stop there. Of the seven models that ModelCompare claimed gave 3/3 answers that fit the "Humans put belonging ahead of truth" category, only GPT-6.1 Sol gave 3/3 answers that unambiguously fit that category. Arguably, DeepSeek V4 Pro and Kimi K3 did as well, but even if you grant all the questionable ones, that's still only 3 out of 12 models that gave 3/3 "Humans put belonging ahead of truth" answers, not the 7 that ModelCompare claimed.

(And I found one answer, GLM 5.3's 1st response, that they misclassified in the wrong direction! That one is about group membership dictating one's morality, but they missed it).

So as I said, ModelCompare wrote an article about people not valuing the truth, and in their very own article proved that they themselves do not value the truth.

rmunn··on Comparing Chromium Development at Google and Igalia
> Upstream is just giving them software for free on an as-is basis.

While the "we're entitled to bugfixes" attitude is definitely annoying for software maintainers to deal with, and you (as the end user) aren't entitled to anything from 99% of open-source projects... this is Chromium we're talking about. The browser engine that powers 75-95% of all Web browsing (it's very hard to pin down actual numbers, but it's huge). It is not too much to ask that the Chromium maintainers either 1) test all the combinations of optional flags they have, or 2) declare that some of those optional flags are no longer optional. In other words, to act like professionals.

(I don't use Chromium myself — switched to Firefox years ago because I tend to open a lot of tabs, which make Chromium seem to just gobble up RAM, and Firefox appears a little better at RAM management, or at least it did at the time I switched (haven't checked recently). So this isn't "the Chromium team owes me something", this is shaking my head in disappointment at what the Gentoo maintainers report that Chromium team is doing, or rather not doing. As I said, there are some projects — the Linux kernel is one, and Chromium is another — that are so widely used that a certain level of professionalism should be expected of their maintainers. I agree that that attitude of entitlement is not deserved in about 99% of open-source projects. But Chromium is part of the 1% exception, IMHO).

rmunn··on Comparing Chromium Development at Google and Igalia
I'm betting the Linux kernel actually tests their config combinations. The complaint is that Chromium doesn't test turning off their allegedly-optional features, so when one of those features turns out not to be as optional as it claims to be, it's Gentoo maintainers who bear the brunt of discovering that (or users end up finding it out if it's not tested).

I can't tell you what Gentoo does with the Linux kernel in terms of USE flags; it's been over a decade since I last tried Gentoo and I don't want to spend the time looking it up since I doubt anyone truly cares. (If someone does care enough and looks it up, I care just enough to be curious to know what you find).

rmunn··on Comparing Chromium Development at Google and Igalia
Would you say they should NOT test the options they're offering the user?

Because Gentoo has basically three options; let me know if you can think of a fourth option I'm missing.

1. Turn every optional feature from upstream into a USE flag, and test them. Which means testing all the 2^N combinations.

2. Turn every optional feature from upstream into a USE flag, but do not test them. Which means users can end up with untested combinations, some of which have proven in the past to be buggy.

3. Stop turning every optional feature from upstream into a USE flag. Which means giving up on Gentoo's distinguishing characteristics for this package.

Okay, I guess there's a fourth option:

4. Stop packaging the Chromium package at all. Which is what they've ended up doing.

rmunn··on Comparing Chromium Development at Google and Igalia
I only glanced at Helium's site, but I suspect from what I saw that they pick a status (enabled/disabled) for all those optional features, meaning they just have to test one (or maybe two or four) combinations of `--enable-foo` / `--enable-bar` flags. Whereas Gentoo tried to allow users to set whatever combination they wanted, and that wasn't working so well when upstream wasn't helping.
rmunn··on Comparing Chromium Development at Google and Igalia
What you're saying is "maybe they should stop being Gentoo". The whole point of Gentoo is customization of your built-from-source packages. (As I recall, but it's been over a decade since I tried it so I might be remembering things wrong). Every optional feature in a piece of software, that would be controlled by some `--with-foo` option to `configure`, gets turned into a USE flag in Gentoo. Packages that have `--with-foo`, `--with-bar`, `--with-baz`, and `--with-quux` then have four USE flags, with 16 possible combinations of enabled or disabled. And the Gentoo maintainers team tries to make sure that all those combinations work, except for ones that obviously contradict each other.

So it's not Gentoo's decision to have so many flags, it's upstream's decision. I bet the Gentoo maintainers would love it if upstream acknowledged "okay, this 'optional' feature isn't really optional any longer". But they don't, and they continue to have dozens of flags, which Gentoo (due to their build philosophy) dutifully copied and tried to test — an overwhelming task.

rmunn··on Comparing Chromium Development at Google and Igalia
Also worth noting https://lwn.net/Articles/1097760/ - Gentoo has given up on building Chromium from source, because upstream "do not test their builds with any of their allegedly 'optional' features disabled" and "[i]n the case of Chromium, keeping all the toggle switches working (despite chronic neglect from upstream) is a monumental, nigh-insurmountable task." One maintainer said he could not possibly test all the combinations of USE flags in the Gentoo build, since his laptop took 15-16 hours to compile Chromium (I presume for just one build, which would have to be repeated 2^N times to test all possible flag combinations).

Much more in the LWN article, I'm not going to quote everything.

rmunn··on Recent AI models struggled to match a human algorithmic innovation
I phrased it that way because I couldn't remember the term "model collapse" at the time. But that's what I meant: that making the LLMs self-train will lead to model collapse.

There; now the statement is far less vague and handwavy, because I'm making a specific claim that is, AFAIK, well-understood.

Also, you seem to have misunderstood me a little. I didn't mean "prove me wrong", I meant "If I'm missing something, please tell me about it." More of a conversational request than staking a claim in an argument. Many people at HN seem to like to take argumentative, debate-competition stances — but I usually prefer more "Hey, let's discuss this interesting idea, point out mistakes each other is making, and learn together" kind of interactions. That's what I was asking for.

rmunn··on I tried to move my notes out of Emacs. I failed. Again
Huh, I never noticed that 0 is on the right side of the keyboard, even though obviously I type it every day so I knew that at some level. Because I think of the vi keybindings by their meaning, not their location. `y` is yank, `d` is delete (and copy to the clipboard, so basically cut, but the mnemonic is delete), and `0` is go to column 0. And `$` means end of string in regex, so that's what it means in vi. (And `^` is the vi shortcut for "go to first non-whitespace column", which is close enough to the regex meaning that I find it easy to remember as well).

Yeah, if keyboard positioning matters to your brain then you're going to be really annoyed by 0, a key far to the right, meaning go to the left. But the only vi keystrokes that are assigned by keyboard position rather than meaning are the h/j/k/l navigation keys. Everything else has a meaning-based mnemonic, and until I read your post I hadn't ever thought about their position. I want to press 0, my touch-typing class from my teenage years has drilled that key's location into my hindbrain, so my fingers reach up and press it without thinking about its location at all. The only thing that went through my concious mind was "I want to go to column 0" and then boom, I had typed it.

rmunn··on I tried to move my notes out of Emacs. I failed. Again
Emacs is definitely more full-featured than plain vim. But for me, I wouldn't be switching to it from plain vim, I'd be switching to it from a LazyVim setup. Which I've barely had to configure: it's an IDE straight out of the box. And to get that IDE setup back in Emacs, I'd have to learn which Emacs plugins do what, reconfigure several plugins' default keystrokes to match what LazyVim did because those are in my muscle memory now... it's a big effort. I won't rule out doing it someday, but for now it costs too much in lost productivity while I'm trying to get work done. Maybe sometime when I'm on vacation, and the temporarily-lost productivity doesn't cost as much.

But NeoVim has made writing plugins so much easier, even things like editing Lisp are getting not too bad. https://github.com/Olical/conjure has been a pretty decent substitute for SLIME, there's a paredit implementation that works well, and so on. So the need to switch is lower and lower, and the cost of switching stays high-ish, and so I haven't done it yet. Someday, as I said, I'll give it a shot.

P.S. I would be remiss in recommending LazyVim if I didn't at least once mention the really, really good https://lazyvim-ambitious-devs.phillips.codes/ book, which you can read online entirely for free. It's an excellent resource to learn LazyVim and what it adds to a vanilla NeoVim installation.

rmunn··on I tried to move my notes out of Emacs. I failed. Again
The two things about Emacs I would love if I used it (tried twice, bounced HARD off the keyboard controls both times. I hate modifer+key control schemes — give me modal editing any day — and I don't even have RSI!) are magit and org-mode. I've never tried magit so I don't know if lazygit is a decent substitute. But for org-mode in Neovim, there's https://github.com/nvim-neorg/neorg. I'm sure it's only a partial, half-broken implementation of the real org-mode, but it covers the parts that I need most, structured note taking.

If you're a diehard modal-editing aficionado like me and think that Emacs is a great IDE but it's a shame about its editor (and its keyboard scheme), maybe give neorg a try. Might well make you shift away from notes.txt files.

And yes, I know I could just use `evil` in Emacs. Maybe someday I'll overcome my decades of learned resistance to running Emacs, but every time I see the Emacs control scheme, I wince and I'm reminded why I don't use it. Having some key combos be "hold down the Control key while you press two keys" (like `C-x C-s` to save a file) while other key combos are "hold down the Control key while you press one key, then release it before pressing the second key" (like `C-x s` to save all files) is just not going to fit into my brain. Maybe that's intuitive for some people, but it just doesn't work for me. And so I bounce off Emacs before ever giving it a real chance.

rmunn··on Triple-A Minesweeper
I tried it, and clicked in the corner as the first move instead of the hand-holding location. Revealed half the board, as that usually does, and also revealed that the simulation of a AAA game was imperfect. Because what AAA game is going to let you actually start playing the game right off the bat, without even so much as a single click on a "Skip the Tutorial" button?

(Answer: some. I'm struggling to recall which game does this, but there's definitely a game where if you solve the first level in 40 seconds or less — numbers might well be wrong, but it's something like that — then the game assumes you've played it before and quietly skips the tutorial without making a big deal about it. But all too few AAA games will do that.)

rmunn··on Recent AI models struggled to match a human algorithmic innovation
I'd classify that as an entirely different category than AI self-training. What you're describing could have been done with a short script, though which parameter to tweak and how to tweak it would be difficult to automate with a non-LLM script, so the LLM's being able to parse the error message and base the tweak on the content of the error is a definite improvement to the process there.

But I'd classify this as LLM being used to automate a sysadmin task, rather than calling that self-training.

rmunn··on Recent AI models struggled to match a human algorithmic innovation
Short version of the article: no, not even close.

Practically every paragraph is negative, with sentences like "Agents made misleading claims about their work," and "A natural question is whether the agents could have improved with larger GPU budgets. Although both improved across their runs, in the case of Fable the improvements were almost entirely due to attempted cheating." and "For Sol, the answer is less clear-cut; it did make some progress, although its method was fairly incremental and had limited applicability to the coding task. This suggests that we should be pessimistic about further GPU spending," all reinforcing the fact that LLMs aren't currently capable of this.

My own view is "No, of course not, in fact they will never be capable of achieving good results with that technique." Because that technique will end up training the LLMs on their own output and lead to the inability to distinguish reality from hallucination. If you think I'm wrong about that, I'd be interested in hearing why.

rmunn··on YouTuber Says Cops Visited Him After He Built a Flock-Style Camera to Track Cops
While this doesn't apply to Canada, an American law professor (who leans very conservative politically) has argued that the public has the right to record the police doing their jobs, based on the due-process clause of the U.S. Constitution rather than on the First Amendment. (EDIT to clarify: he's not arguing that there isn't a First Amendment right to record the police, he's saying that besides the First Amendment, the due-process clause also gives citizens a right to record the police doing their jobs). You can read the 2012 paper "A Due Process Right to Record the Police" at https://ir.law.utk.edu/cgi/viewcontent.cgi?article=1460&cont...

I have only skimmed the paper myself, so if it contains any mistakes I'm likely to have missed them. But his argument seems good to me.

rmunn··on An algorithmic failure beneath the secret ballot
The point I'm trying to make is that I agree with the parent comment to mine, which pointed out that transparency is essential to protect people's confidence in the voting process, especially when people are loudly claiming that someone committed fraud. The more open the process, the easier it is to prove that it's legitimate.
rmunn··on An algorithmic failure beneath the secret ballot
Just remembered another report about a vote-counting machine with a security problem. Can't remember enough details to find the original report, but the guy found that the QR code the machine was scanning to read the vote did not have any kind of replay protection, and that although the ballots were printed on special paper, the machine did not have any verification of the paper being fed into it, and would accept plain photocopy paper. Meaning that all that would be needed to "hack" that particular machine, if the report was accurate, would have been to get hold of a ballot belonging to someone you know voted for your preferred candidates, and have it for 20-30 seconds of secrecy, long enough to make one photocopy before giving it back to the voter. Easy to do if the voter and the poll worker are in cahoots. And then you can run off 50, 100, 250 copies of that ballot and stuff the ballot box. Would be caught on a recount... probably. But it shouldn't be possible to do that sort of thing in the first place.

The simpler the machine, the better. As I said in my other comment, I'm about ready to go back to locked wooden boxes myself, opened and counted in full view with cameras rolling.

rmunn··on An algorithmic failure beneath the secret ballot
> There are obviously concerns (vote buying, organized crime, etc) but they can be dealt with.

I don't think they can be dealt with. But I'm willing to listen to your ideas. How would you deal with vote buying? How would you stop the scenario where a guy says "I'll give you $1,000 if you vote for candidate X" (or "I know where you live, I'll break your kneecaps if you vote for candidate Y")?

rmunn··on An algorithmic failure beneath the secret ballot
As long as the official count is actually done, then that's fine... but there's a natural human tendency to want to skip unnecessary work. And any polling place where the workers get lazy and just rubber-stamp the machine's counts have now made it possible for someone who hacks the machine to get away with it.

The machines should be kept air-gapped, not connected to the Internet, and all that. But again, human nature kicks in. There have been some poll workers who swore under penalty of perjury that in their polling place, there had been election machines that got an over-the-wire software update on Election Day. That's just... all kinds of wrong, if those reports are accurate. It doesn't prove cheating, but it does prove that whoever was in charge of that polling place should be fired. Because part of the job is making sure everyone knows the results are valid and accurate, and having voting machines connected to the Internet goes directly against "hey, you can see that no hacking is possible here". Doesn't matter how much the machine's manufacturer promises their machines are unhackable, the machines should not be connected to the Internet at all once they are actively being used for voting.

At this point, I'm ready to go back to paper ballots and a locked wooden box (kept in public view, and publicly verified to be empty before locking it up) myself. The simpler the solution, the better, is what I'm arriving at.

rmunn··on An algorithmic failure beneath the secret ballot
The situation you describe, where the laws would be selected to make obtaining a photo ID (and thus voting) difficult for one group over another, would amount to a poll tax — which has already been found unconstitutional in the United States.

However, every US state I'm aware of (if you know of exceptions, please let me know) has some form of photo ID you can obtain for free. Usually it's in the same format as a driver's license, and obtained from the same place (the Department of Motor Vehicles, Department of Land Transportation, the name varies). There's a fee to obtain a driver's license, but a photo ID card (in the same format as a driver's license but marked "NOT LEGAL FOR DRIVING" or similar wording) can be obtained for free, by going through the same process as getting a driver's license (bring something to prove your identity, get your photo taken, wait for the card to be printed) but without taking a driving-skills test.

And before someone asks "what about the people who can't prove their identity"? Well, I can actually give an anecdote. I know someone who ended up in that situation: away from home for college, couldn't get her birth certificate or anything else, and needing to replace her passport that was lost. (She is American but had grown up overseas because of her parents' job, hence why she had a passport but no driver's license when she went off to college). She had quite a time of it at first, since every "prove your identity" requirement circled back around to another form of ID. But she was eventually able to get a fishing license just by swearing under penalty of perjury that she was indeed (name). With that in hand, she got another form of ID (I think a library card, though there my memory is iffy), then with two forms of ID she could get something else, and then eventually she was able to get that non-driver's ID card... and then was able to prove who she was to get her lost passport reissued.

That all happened nearly 30 years ago so I can't swear to the details. But the point is, photo ID cards are widely available, and it's normal to be asked for one. So as long as the law specifies that acceptable forms of photo ID include X, Y, and Z (where X, Y and Z are forms that most people would already have, and that are normal and in common use), and as long as at least one of those forms can be obtained without a fee (which as I said, is true in all U.S. states that I'm aware of, please mention any exceptions you know about because I'd like to know) then it will pass Constitutional muster.

rmunn··on An algorithmic failure beneath the secret ballot
I'm not entirely sure mandatory voting is wise in a country the size of the United States, but I'm with you on the voter ID and the rationale. I was shocked to learn that with everything else that requires photo ID, it's not required to vote in American elections. (At least, in some locations; laws vary from place to place). That just looks bad.

My personal opinion is that if people think they can benefit from cheating, a certain number will do so. It's just human nature. We're seeing more and more of this with LLM cheating on the rise in universities. So there's always going to be a certain number of people who want to vote fraudulently — after all, if the right person gets into office, it'll probably benefit you. Your taxes might be lowered, or your government handouts might be increased, or whatever other reason you have for preferring one politician over another. Preference alone does not mean that people will vote fraudulently: after all, most legitimate voters also prefer one politician over another. But the easier you make it to cheat, the more people will cheat successfully: among those who wanted to cheat but didn't, usually the only reason they didn't is because they couldn't see how to get away with it.

So photo ID to vote just seemed like common sense to me, along with other measures like ballot boxes kept in a publicly-visible place until they're opened, to help prove that nobody has tampered with them. (Read up on the 1946 elections in Athens, TN sometime — there, the fraud was being done by the sheriff and his cronies who would take the ballot boxes away, "count" them in private with no outside observers present, and announce that surprise surprise, the sheriff's crony had won the election again).

rmunn··on An algorithmic failure beneath the secret ballot
I once read an account by a poll watcher of her experience in 2012. She said that at her polling place, there had been a number of people showing up to vote on Election Day, being told they had already voted during the early-voting process, and swearing up and down that that wasn't true, that they always voted on Election Day and never voted early, and that whoever had voted in their name had done so fraudulently.

Now, in that particular case, the state (I believe it was Colorado though I'd have to find the article I read, and I don't remember where to find it any more) didn't require photo ID, so there was no way to prove that the people showing up on Election Day were the actual voters, as opposed to the cheaters. But this poll watcher's opinion was that they were the actual voters, and the cheating had been done by whoever had submitted ballots in their name days (or weeks) earlier. Given how many people she said this had happened to, I'm inclined to agree with her: it wasn't three or four people, it was (she said) something like one-third of the people who showed up on Election Day at that polling place.

That's a case where the fraud couldn't be repaired by knowing that it had occurred — the fraudulent ballots (if they were indeed fraudulent) had already been accepted, and it was impossible to go pull the ballot allegedly belonging to Joe Smith back out of the ballot box. But the publicly-available list of "who voted" did at least make it possible for the fraud to be detected in that particular case.

rmunn··on Why Common Lisp is now the best programming language
Yes, you use the debugger in prod. I've read many articles by Common Lisp users talking about how great that feature is: they can quickly get production back up and running, then go to the code and implement the same fix they just did on live prod.

And it's not editing files on the server, it's actually reaching into the running code and tweaking its values.

That, I think, is the difference here. In many languages, the debugger can pause on the exception and let you inspect the code. But in every other language I've used, once you edit the code to fix the bug, you can't resume from where the debugger paused. You have to recompile the code and resume from the top. In CL, you can resume from exactly the state you were in when the debugger paused, only this time with the correct data in place. (Or even with a code fix having been applied, live, to the code).

rmunn··on Why Common Lisp is now the best programming language
Just finished typing up an example as you wrote this. Rather than duplicate it, here's the link:

https://news.ycombinator.com/item?id=49974251

rmunn··on Why Common Lisp is now the best programming language
I mean, that entirely depends on the server design. Is it running one connection per process? One connection per thread? Presumably you've designed the server in a way that one slow connection doesn't block other connections from being handled fast, which means that this one connection whose handler went into the debugger is just now a really, really slow connection taking minutes (or hours!) to handle, but the other connections are running just fine.

Now, if your entire server is taken down because one connection threw an exception, that's bad design. But pretty much no major language works that way. All of them allow you to set things up so that an exception handling connection A won't affect connection B. And if you've done that in Common Lisp, then connection A halting and waiting for the debugger won't affect connection B either.

rmunn··on Why Common Lisp is now the best programming language
Not the author, but unless the server was running in a short-lived ephemeral container (in which case the management system probably killed the container and started a new one), the CL process would still be around in a paused state, waiting for you to connect to it and tell it how to resume.

https://comp-348.github.io/lisp-debugging.html has an example of what it looks like. A toy example, to be sure, but the basics of a real example would still look the same. You're given a choice of several options, very reminiscent of the "Abort, Retry, Ignore?" choice that used to be oh-so-familiar in the days of DOS. Except this one is more useful, because it offers ways to specify how to resume. E.g., the toy project is halting on a `(print X)` call where the value of X is not defined. And the choices are:

0. Continue. (Retry using X).

In the toy example, this would fail, because nothing else has defined X. But in real code, the name might have been undefined because the data needed to define it hadn't arrived yet, from the database or the filesystem. In which case retrying the statement might work the second time.

1. Use-value. (Use specified value).

This one prompts you to enter a value for the undefined variable, and continues, but it does not modify the value of X in the program. The next time the program tries to use X, it will halt again with another "unbound variable" error.

2. Store-value. (Set specified value and use it).

This one, just like Use-value, will prompt you to enter a value to use... but then it will set X to that value and continue running the program. Next time the program tries to read the value of X, it will have one, and the program won't halt.

3. Abort. (Exit debugger, returning to top level).

This is what you would choose if there's no good way to fix the error, and you just have to quit the program and restart. Though note that choosing this option isn't going to exit the program you're debugging, just take you out of the debugger. You'll still need to kill-and-restart it some other way... or come back an hour later when the value is finally available, and then choose options 1 or 2.

Hopefully that gives you a taste for what the CL debugger is like to use in practice.

rmunn··on Making a GTK application in Haskell, part 1
Can confirm, every time I run `pacman -Syu` and see a hundred `haskell-foo` packages being updated I think "Oh yeah, those are all dependencies of that one app I still use. Got to remember to find an alternative, then I can stop getting lost in a maze of twisty little packages, all different." But I never do remember to switch away from that app.
← PreviousPage 2 of 26Next →