HNHacker News
TopNewBestAskShowJobs

kevincox

15,190 karma · joined November 20, 2013

https://kevincox.ca
submissionscomments
kevincox··on Muse Glimmer: 30B-parameter model optimized for always-on local agent workflows
I just downloaded the latest llama.cpp and poolside Q4 and within 10k tokens it corrupted "Use ~/p/kevincox.ca as a reference" into "kevinc.ai" and then starts doing stupid things because the directory "doesn't exist".

In previous testing the Q8 was better but still had the same problem frequently enough to be very difficult to use. I don't know if it is a runner bug or model bug but at least with llama.cpp this seems to always happen and I haven't seen an issue like this with any other model.

kevincox··on Muse Glimmer: 30B-parameter model optimized for always-on local agent workflows
For me Laguna frequently slightly corrupted text then it would be unable to notice the difference and get stuck making the dumbest conclusions. Thinks like typoed directory or function names. It was a great model other than that, but I ended up just going back to Qwen3.6
kevincox··on Auto mode is now the default in Claude Code
This just sounds like they bump their unspecified limits by N% to cover this usage. Which of course means nothing because the next time they re-evaluate their limits they will just ignore this bump.
kevincox··on Tail-call optimization in C is relatively recent (2025)
It's hard to argue that it isn't an optimization, because it doesn't affect the semantics of the program. However most optimizations are very hard to observe. The vast majority of optimizations only affect code size and runtime. TCO is one of the few exceptions. It affects memory usage, and more sensitive stack memory at that. This is why a missed optimization can be so much more catastrophic and it is worth considering things like `musttail` attributes so that the code fails to compile rather than misses the optimization.

I can only think of a few other optimizations that affect memory usage. Register spilling (arguably not really an optimization but a necessity), Rust's niche filling for enum discriminants and C++'s std::vec<bool> (a language-level optimization, arguably a different thing entirely).

I often think about how few memory optimizations we have. The reason is most likely that they tend to be non-local so are much harder to apply than CPU optimizations that generally have no effect outside of the function they are in.

kevincox··on Switching to electric stoves can dramatically cut indoor air pollution (2025)
I consider this a downside. Now whenever I am cooking on a gas stove I keep burning myself because everything in the vicinity of the stove is so hot. I love with induction that I can always grab the handles of the cookware and don't have to worry about stuff nearby on the stove getting hot (example my bowl of pancake batter next to the pan doesn't cook on the near side.

You are right about the wok, it isn't quite the same on the induction stove (at least the flat ones, there are wok-shaped ones but these are generally only found in professional units). If you cook most of your meals in it then you are probably right to go gas (or get a gas burner).

kevincox··on Switching to electric stoves can dramatically cut indoor air pollution (2025)
I usually hate touch controls. But for the stove I actually like them. I always hated cleaning in and around the knobs. When cooking on the stove you almost always get some sort of splatter so it is nice to clean them every time (something I often put off with knobs. So for something that so regularly gets dirty a flat surface can be very welcome.

So it is definitely a tradeoff, but I am happy I picked a stove with touch controls. Although I did pay attention that they were good touch controls (touch anywhere on the arc to set that temperature directly for example). Although there is a small annoying delay after turning on before you can set the temperature. Almost perfect.

kevincox··on A zero-dependency, ultra-lightweight database time machine for SQLite
It uses `safeAtomicCopy` so you know it is good.

Of course safeAtomicCopy only ensures that the output is atomic, it doesn't lock the database in anyway. So yes, you will get corruption. It also attempts to support WAL but just copies the extra files afterwards without any locking so even more corruption.

So I would definitely heed the warnings that this is not for production use.

kevincox··on Windows 11's built-in Weather app wastes more than 1 GB of RAM
Mostly rendering. A bunch of images, text, UI elements. On a modern high resolution display it adds up quite quickly. You can surely cut it down a bit, but 100MB isn't absurd.
kevincox··on We replaced Redis with MySQL for inventory reservations and it scaled
Flash sales are a huge scaling issue for Shopify. There are celebrities who want to sell thousands of items in a few minutes window at the end of an advertised countdown.

Basically this is an incredibly rare case but a feature that they want to support.

kevincox··on Improving Heuristics for A* Pathfinding
Ah, I figured it out. It is because he isn't using the distance to the landmark as the heuristic but the difference between the distance to the current location and the distance to the target. This means landmarks behind you will be negative (or useful in an undirected graph). This is also important for making the heuristic admissible as otherwise your heuristic would say zero when you are standing on top of the landmark.
kevincox··on Improving Heuristics for A* Pathfinding
I don't understand how the multiple landmarks works. If you just max all of the landmark distances wouldn't some landmark near the starting point eventually dominate as you move away from it? Once you get halfway through the path the useful landmarks would be returning lower and lower values while ones behind you return larger and larger values. Or just in general one far-away landmark would complete nullify any input from useful ones.

It seems to me that you would need a step to select useful landmarks but the code doesn't seem to do this and I don't see it discussed.

kevincox··on Signal can easily work across multiple Android devices and iPhones now
It seems that this is still a primary device that the replica devices connect to. So if your primary is offline, out of battery or broken your other device are still useless. Not proper multi-device support.
kevincox··on _for-sale DNS records
My personal website is a "low quality blog" but I definitely feel that it shouldn't be up for grabs because I don't want to pay thousands of dollars a year.
kevincox··on Atom is better than RSS, in ways that matter
RSS is no simpler. And in fact when you have to take account the ambiguity of different clients interpreting the sloppy specification differently it just gets more complex.

Even the trivial case of trying to include "&" in a title is ambiguous and different clients will handle it differently.

kevincox··on DeepSeek-V4-Flash Update
At least in the past it was GLM-4.6. IDK if it is ever changed.

https://github.com/anomalyco/opencode/issues/4276

kevincox··on Show HN: Distilling DeepSeek into GPT-OSS doesn't transfer censorship. Try it
Scrolling on desktop is also broken.
kevincox··on Laguna S 2.1
This seems like a great option for local usage. With 16 GiB of VRAM on the official (https://huggingface.co/poolside/Laguna-S-2.1-GGUF) Q4_K_M quant (which seems to be recommended) I can get about 50 t/s in and 10 t/s out. Definitely not winning any speed benchmarks but totally usable for background tasks.

The intelligent and decision making looks good overall. It seems to roughly compare to unsloth/Qwen3.6-27B-GGUF:UD-Q8_K_XL while being way faster on my hardware. It does often get stuck considering the same decision over and over again but maybe this is how it makes the better decisions.

However it does seem to have a bad habit of corrupting things (most often my name). It will rewrite kevincox to kevinc or kevcox or kevancox. Then fail to read directories or rewrite code with the wrong string and mess it up. Then it can't identify it's mistake.

Maybe I'll have try try out the Q8 model, but the description seems to push away from this one.

kevincox··on I showed an AI an image it couldn't see – then caught it lying about what it saw
Wow an LLM hallucinated? What a novel discovery.
kevincox··on Should you wash your solar panels?
See also why houses are often painted when being staged for selling just so that the new purchaser can paint immediately after with their preferred colour. Wasteful but it works.
kevincox··on Show HN: Reverse Minesweeper
In minesweeper you start with nothing visible and explore while avoiding the bombs. In this you start with all of the hints visible and place the bombs.

However in practice it is very similar since identifying where the bombs are to not click them is exactly the same logic as identifying where the bombs need to go. The only functional difference ends up being that all of the hints are visible upfront rather than needing to discover them.

kevincox··on Memory safety absolutists
Traversing a linked list is terrible for performance. But in cases like the cache you are only poping from the front, appending to the back or removing which are all quite fast and require little pointer chashing.

Cache cost of individual allocations can be an issue but that can also be mitigated with a good allocator and even without special care can be quite performant in many applications.

I agree the linked lists shouldn't be the first structure you reach to. But there are situations where they can perform very well.

kevincox··on Programming language file extensions that match ISO 3166-1 alpha-2 country codes
.eu is an exception as it is for the European Union but they don't consider themselves a country.
kevincox··on A shell colon does nothing. Use it anyway
I am not a huge fan of most of these, but a few do seem useful.

    : "${1:?missing argument, aborting!}"
I wouldn't use this because I would want to give $1 a name for the rest of the script, so I would assign. But it can be a nice way to give a clear error for missing required environment variables.

Many of the others (like truncating files) are probably more clearly written with dedicated commands, but may come in useful if you are going to extreme lengths to avoid dependencies outside of the shell.

kevincox··on Worse on Purpose – How Corporate Greed Killed Product Quality
I think a very knowledgeable reviewer can make a decent guess. But to really know you would need to tear it apart and analyze all of the materials used (maybe the metal or plastic has been swapped to a slightly different material which is very hard to identify by just looking or touching). You need a team of engineers. Probably the best you can hope for is noticing a part is changed and make an educated guess why it was changed.
kevincox··on Private healthcare makes industries less innovative. It's time for change
Not to mention that tying your insurance to your job is a *huge* pain. If you switch jobs or get fired you need to deal with coverage gaps, considering individual coverage for the duration, and you may need to switch care providers depending on what your new coverage is.

It is just a really awful system overall.

kevincox··on Worse on Purpose – How Corporate Greed Killed Product Quality
> and advertisements (and even review sites!) almost never address it properly

The thing that annoys me the most is when the reviewer opens the box, shakes it gently and says "feels well built" or "plastic build". It is actually harmful. Weight doesn't equal quality (there is some correlation, building well often results in more weight, but it is unreliable and easy to game) and plastic is a huge range of materials and some are absolutely the most robust option for many use cases (think a sturdy plastic water bottle that outlasts and glass or metal equivalent).

The problem is quality is very hard to measure. The only really good test is to use the product for many years. But by that time the existing model hasn't been sold for years, in theory you could correlate the new model's quality with the old one but brands are apparently disposable these days so it is very likely that all costs were cut on the new one once their previous model gained a reputation for quality.

I think the only real measure for quality is a warranty. That is the manufacturer promising a lifespan. However they are usually short, can be unreliable to get (often at manufacturer discretion) and more often than not cover only "manufacturing defects" not reasonable wear and tear.

kevincox··on Roblox Officially Supports GrapheneOS
While that is true the bigger issue is that LineageOS doesn't qualify for "They do not break the AOSP security model" as it allows users to get root access without modifying the OS. So even if there was verified boot Roblox would still block it.

For me this means that Roblox's requirements are fundamentally incompatible with any device I would want to use as they want to restrict my access and I want full access.

kevincox··on “We have information that Moonshot distilled Fable for the development of K3”
If anything this distillation is more ethical than the original as it is on machine-generated content rather than copyrighted human-labour products.
kevincox··on GPT-5.6 used a prompt to close a 30-year gap in convex optimization
I'm strongly in favour of this. I think income tax should approach 100%. So your second billion you still make more. But not twice as much. The exact decay function is up to date. But I really don't think your post-tax take home should scale linearly with your income once you hit the max bracket.

We can also remove all of the loopholes that result in the biggest companies paying basically no taxes. I also think it may make sense to have a dramatically different tax structure for businesses than effectively income tax.

kevincox··on GPT-5.6 used a prompt to close a 30-year gap in convex optimization
The problem isn't that we are gaining more knowledge and better technology. The problem is that we are allowing the rich to use the technology to subjugate the majority.

If AI improves human productivity so much that millions of people no longer need to work that should be an incredible thing. But the flawed structure of our society punishes those people rather than freeing them to persue endeavors that interest then.

← PreviousPage 2 of 34Next →