HNHacker News
TopNewBestAskShowJobs

crustycoder

228 karma · joined March 10, 2014

submissionscomments
crustycoder··on Embarrassingly simple self-distillation improves code generation
"SSD improves Qwen3-30B-Instruct from 42.4% to 55.3% pass@1 on LiveCodeBench v6"

I know virtually nothing about this area but my naive take is that something that means it still only passes tests around half the time doesn't seem like a particularly big jump forwards.

What am I missing?

crustycoder··on Extending C with Prolog (1994)
Things have moved on since 1994, not only can you still embed it in C and a load of other languages, you can even run it directly in your browser as there's a WASM port.

https://www.swi-prolog.org/pldoc/man?section=wasm-version

crustycoder··on The Software Development Lifecycle Is Dead
Dead? What, again?

Yet another rehash of the smoke and mirrors bullshit I've been hearing every 5 years or so for the last 40+ years.

crustycoder··on Actors: A Model of Concurrent Computation [pdf] (1985)
Um, no I won't and no it won't. I have no time for tub-thumping.
crustycoder··on Actors: A Model of Concurrent Computation [pdf] (1985)
You are using mutexes, they are on the Actor message queues, amongst other places. "Just use mutexes" suggests a lack of experience of using them, they are very difficult to get both correct and scalable. By keeping them inside the Actor system, a lot of complexity is removed from the layers above. Actors are not always the right choice, but when they are they are a very useful and simplifying abstraction.

Horses for courses, as they say.

crustycoder··on Actors: A Model of Concurrent Computation [pdf] (1985)
Eh?

I've written a non-distributed app that uses the Actor model and it's been very successful. It concurrently collects data from hundreds of REST endpoints, a typical run may make 500,000 REST requests, with 250 actors making simultaneous requests - I've tested with 1,000 but that tends to pound the REST servers into the ground. Any failed requests are re-queued. The requests aren't independent, request type C may depend on request types A & B being completed first as it requires data from them, so there's a declarative dependency graph mechanism that does the scheduling.

I started off using Akka but then the license changed and Pekko wasn't a thing yet, so I wrote my own single-process minimalist Actor framework - I only needed message queues, actor pools & supervision to handle scheduling and request failures, so that's all I wrote. It can easily handle 1m messages a second.

I have no idea why that's a "huge dead end", Actors are a model that's a very close fit to my use case, why on earth wouldn't I use it? That "nurseries" link is way TL;DR but it appears to be rubbishing other options in order to promote its particular model. The level of concurrency it provides seems to be very limited and some of it is just plain wrong - "in most concurrency systems, unhandled errors in background tasks are simply discarded". Err, no.

Big Rule 0: No Dogmas: Use The Right Tool For The Job.

crustycoder··on Learning from Sudoku Solvers (2007)
Well no, not really. The whole point is to use the appropriate tool for the task at hand. In this case it's the CLP(FD) library, https://www.swi-prolog.org/pldoc/man?section=clpfd
crustycoder··on Learning from Sudoku Solvers (2007)
Or perhaps just use a language that's designed to solve those sorts of problems? In 14 lines of code.

https://www.swi-prolog.org/pldoc/man?section=clpfd-sudoku

crustycoder··on Several core problems with Rust
He hates on C++ pretty much the same as he does on Rust. Your argument seems to be that Rust is better than C++, which is akin to trying to make the case that Cholera is better than Smallpox.

Language wars are boring and pointless, they all have areas of suckage. The right approach is to pick whichever one is the least worst for the job at hand.

crustycoder··on A revolution in English bell ringing
It's got compositions on the page, a link to a PDF with compositions in it and a link to the Veronese ringing association which has many more examples - if you can read Italian.
crustycoder··on A revolution in English bell ringing
The other reason jump changes are not a revolution and have remained just a curiosity is physics, something that's ignored by the article.

For non-ringers, in change ringing the bells rotate 360 degrees each time they strike, from mouth up to mouth up. The clapper hits the bell when the it has rotated roughly 270 degrees from mouth up and is more or less horizontal, approximately 2 seconds after it starts moving. The bells are usually in the 100kg to 1000kg range (for US folks, that's 220lb to 2200lb), although they can be up to 4000kg. The only point when the ringer can exert control on the bell via the rope is when it is near the balance and mouth upwards, and speeding it up or slowing it down any more than one "beat" is physically very difficult on heavier bells, particularly if you are doing it for a full peal, which usually takes 3+ hours.

About the least important thing in the 2022 rules changes (https://framework.cccbr.org.uk/version2) was the allowing of jump changes.

p.s. there's a split-screen video showing the ringer and the bell he's ringing here: https://youtu.be/qrdLP15Xsuk?t=67

crustycoder··on A revolution in English bell ringing
Here you go: https://www.whitingsociety.org.uk/articles/basic-tuition/ita...

There are a fair few videos on YouTube as well.

crustycoder··on A revolution in English bell ringing
93% of the rings of 6 bells or more which are rung for English style change ringing are in England. Source: https://dove.cccbr.org.uk/

Change ringing is a branch of Group Theory and is mentioned in Knuth. The Steinhaus–Johnson–Trotter algorithm for efficiently generating permutations was published in the early 1960s, but has been known about by change ringers since the 1600s. Source: https://en.wikipedia.org/wiki/Steinhaus%E2%80%93Johnson%E2%8...

crustycoder··on Prompting LLMs is not engineering
I'm licensed by The Engineering Council in the UK for doing computery stuff, and by the relevant European body. I've been writing software for a living for most of my 40+ year career, and still do. So Chartered Software Engineers do exist.

But perhaps not in CA.

crustycoder··on Airpass – easily overcome WiFi time limits
On android it can be toggled on If Developer Options are enabled.
crustycoder··on The Illusion of “The Illusion of Thinking”
My favourite example of the underlying probabilistic nature of LLMs is related to a niche hobby of mine, English Change Ringing. Every time someone asks an LLM a question that requires more than a basic definition of what Change Ringing is, the result is hilarious. Not only do the answers suffer from factual hallucinations, they aren't even internally logically consistent. It's literally just probabilistic word soup, and glaringly obviously so.

Although there isn't a vast corpus on Method Ringing, there is a fair amount; the "rules" are online (https://framework.cccbr.org.uk/version2/index.html), Change ringing is based on pure maths (Group Theory) and has been linked with CS from when CS first started - it's mentioned in Knuth, and the Steinhaus–Johnson–Trotter algorithm for generating permutations wasn't invented by them in the 1960's, it was known to Change Ringers in the 1650's. Think of it of Towers of Hanoi with knobs on :-) So it would seem a good fit for automated reasoning, indeed such things already exist - https://ropley.com/?page_id=25777.

If I asked a non-ringing human to explain to me how to ring Cambridge Major, they'd say "Sorry, I don't know" and an LLM with insufficient training data would probably say the same. The problem is when LLMs know just enough to be dangerous, but they don't know what they don't know. The more abstruse a topic is, the worse LLMs are going to do at it, and it's precisely those areas where people are most likely to turn to them for answers. They'll get one that's grammatically correct and sounds authoritative - but they almost certainly won't know if it's nonsense.

Adding a "reliability" score to LLM output seems eminently feasible, but due to the hype and commercial pressures around the current generation of LLMs, that's never going to happen as the pressure is on to produce plausible sounding output, even if it's bullshit.

https://www.lawgazette.co.uk/news/appalling-high-court-judge...

crustycoder··on Prolog's Eternal September (2017)
I suggest you actually try the exercise before making assertions like that. Mind you, there's the old saying, "Real programmers can write FORTRAN in any language"...
crustycoder··on Prolog's Eternal September (2017)
Because learning a new language with a different world model gets you to think about problems on a different way. A library for a language you already know will not do that to anything like the same degree.
crustycoder··on Prolog's Eternal September (2017)
Thanks for the recommendation :-)
crustycoder··on Prolog's Eternal September (2017)
I hadn't come across that, In general I'm not a great fan of programming videos (life is too short) but the website content looks interesting - thanks!
crustycoder··on Prolog's Eternal September (2017)
I still have a fanfold printout somewhere of the OPS5 implementation I wrote in C, back in the 80s :-)
crustycoder··on Prolog's Eternal September (2017)
Coincidentally, on Friday I pulled my dusty 1987 copies of Sterling & Shapiro and Bratko off the bookshelf for the first time in literally decades, and built myself a copy of SWI so that I could have a tinker with it for something where I think it may be a good fit.

Sure there are now some shinier toys in the Prolog box but the problems with Prolog seem to be the same now as they were 35+ years ago - it's seen as a niche CS-only tool, where to get any traction at all you have to absorb reams of terminology that's mostly unknown outside of academia, or has been forgotten post-graduation - Prolog really doesn't do itself any favours, and never has.

I think expecting academia to ever "sell" Prolog is a bust - if it hasn't happened by now, it never will. Better to directly target people earning their crust writing code, and sell the benefits to them, with real examples, not Towers of Hanoi and N-Queens. And as far as practicable, try to relate them to things that they are more likely to already know, such as SQL or Functional programming?

crustycoder··on Why are there no thunderstorms in the UK?
Yes, but:

"Although most people think of twisters striking ‘Tornado Alley’ in the US, the UK actually has more tornadoes per area than any other country."

https://www.manchester.ac.uk/about/news/new-map-of-uk-tornad...

It's just they are small, and short lived.

crustycoder··on Cars and Key Fobs: Attacks on Car Remotes
This is an old article and whilst there are undoubtedly still vulnerable vehicles, with the advent of UWB it seems to be a solved problem.

My car has UWB, there's a LED on the fob that blinks when it is in range and if it's stationary for a short time, it inactivates as well. Some experimentation suggests you need to be within about 5m of the car to open the doors.

The localisation seems to be very accurate, even if you can open the car from a distance it won't start unless the fob is physically within it. If I sit in the driver seat the fob has to be less than 10mm away from the outside of driver's window, otherwise it refuses to start.

crustycoder··on Evolving Scala
> If anyone care to share their experience with GraalVM's native-image, I'd be interested in hearing that.

The main issue is if you are using reflection, which needs metadata adding to describe it so the necessary metadata is included in the image. Some libraries already have it built in, and there are tools to help.

For building, https://github.com/sbt/sbt-assembly supports native Image.

crustycoder··on Evolving Scala
I was half way through a project when the licensing change happened, I had to abandon Akka as a result. Fortunately my requirements for an Actor System are low-end, basically just message passing in a multithreaded single process, so I wrote my own simple Actor system library. Scala made that relatively easy.
crustycoder··on Evolving Scala
> And if you want portability, you can compile a Scala program with GraalVM's native-image and statically link everything with musl libc

Getting the musl stuff to work can be tricky, mostly-static (only libc dynamically linked) is an easier option.

I've built a CLI diagnostics app with Scala & NativeImage and I've embedded the Graal Python interpreter inside it to allow extension scripts to be written. The result is a zero-install executable that provides an n entire Python environment. I think that's a good showcase for one of Scala's strengths, it's interoperability with the Java ecosystem.

crustycoder··on English Multinyms
Many of these are totally pants/panz/pænts
crustycoder··on Tesla's sales plummet across Europe
How about reading the linked article before posting?

"Tesla’s drop came as the German EV market in January grew more than 50 per cent year on year, pushing its market share down from 14 to 4 per cent."

crustycoder··on UK police seize Cybertruck because it's illegal there
It seems to have escaped your attention that they did the exact opposite and "felt free" to drive and illegal vehicle on public roads with no insurance, so anyone they hit wouldn't have any compensation. And you can't buy them here so they brought it in knowing they couldn't legally drive it on the roads.

Not the sharpest, are you?

← PreviousPage 2 of 5Next →