Schemas save you space, but then you lose the ability to understand the data without the schema. That's where JSON has always been handy despite its inefficiencies.
Of course you can get the same kind of thing in binary. I wrote a drop-in binary JSON replacement because it's easy to write a binary one that's twice as fast as simjson and yyjson. The important thing is to never give the drop-in replacement any extras that break roundtrip compatibility.
> Schemas save you space, but then you lose the ability to understand the data without the schema. That's where JSON has always been handy despite its inefficiencies.
Of course that’s orthogonal to using a text v binary representation, you can have a schema’d text format, and a self-describing binary format.
BSON, UBJSON, MessagePack and CBOR are binary but self-describing.
Yes, there were genuinely helpful people there. I strove to be helpful as well. But my most common experience there was:
- People asking why you're doing that (without answering the question).
- People telling you that you shouldn't do that (without answering the question or providing an alternative).
- People closing your question as off-topic or duplicate without actually reading and understanding what you wrote.
- People editing your question and changing the meaning (leading others to innocently conclude off-topic or duplicate). Or removing actually important details.
- People giving just plain wrong answers that get upvoted, with comments from more senior people begging them to change or remove it.
Or in the words of Brick Top: "If I throw a dog a bone, I don't want to know if it tastes good or not."
And yes, every so often a golden answer by an amazing person.
Now I can just ask a few LLMs, comparing and contrasting their answers. Even better: I can interrogate them on their answer.
Stack Overflow had a community of sorts, but it wasn't anywhere near like a physical community.
This was probably a bit later. And those LLMs are trained on SO presumably...
In the earlier days SO was more of a community. I guess the life-cycle of the Internet. I answered a few question back in the day. Asked a few. All in all positive experience. I still look fondly at some of my better accepted answers...
I definitely enjoyed SO at the start. But the site was "gamified" from the start - initially, it was gamified so with some skill and effort you could progress. Gradually the gamification reached the point that any progression required constant effort.
Unfortunately, it's hard to see the Internet having cycles overall. It's been more like a spiral over the last 35 years or so.
I just have my LLM read the PR, then give me a summary of what the PR is about, how important it is, and how good the PR itself actually is. Then I have a conversation with the LLM about specific points, especially things where I get that feeling that I don't have a 100% understanding.
Until I fully understand what's going on, the PR doesn't move and my interrogation of the LLM doesn't end. My interaction is littered with "Explain X" and "How does this square with Y?" and "What if Z happens?"
The interrogation is the point, without me having to wade through hundreds of lines of irrelevant code to get at the meat of the matter.
Personally I'm starting to see less and less "smart" people here, given how easily and quickly everyone jumps on random hype trains with very little investigation or thought put into it. And those who do investigate and put thought into it are then quickly down voted for being a hater. This forum has turned into almost like a FOMO echo chamber in a way.
I can read the room. Coding is going to go the way of some other disciplines where machines do most of the detail work and and we know stuff works by verification. There are other fields like this.
Do I like it or not? That doesn't really matter. I need a job, so I'm going to get good at the new way to ensure I continue to have a job. I consider this to be a smart thing to do for myself and my family.
I agree with the work changing more towards verification, but if the verification is one LLM reviewing another one, then that isn't really verification. At best you "assume", but you don't "verify".
Unfortunately I see a lot of (senior as well) engineers who think that just a vanilla LLM reviewing another LLM is sufficient, and my comment was directed towards those. If however you see the LLM era as needing more test support and systems than ever before in the form E2E tests and so forth, where "code review" as such becomes mostly irrelevant as you have such a strong test system in place that if that passes you can be sure it doesn't break anything for users, then yes, that's good.
What I mean is verification through testing, and perhaps other more formal means. This has happened to other engineering domains, yet us programmers have so much hubris that we think it can't happen to us. And everyone is throwing their toys out the cot because it looks like it is actually going to happen.
Code reviews may not even happen, or if they do, it'll be all automated, and the verification will be the key.
Ask anyone in the semiconductor industry when last they understood the design of those things.
At this point, what is a human dev even there for?
We have this at work : fully AI-generated code and description. People will give review comments generated by AI which the "author" replies with an AI-generated response, all with LLM wording full of jargons no one understands not even the person who sent it. When you ask them what they meant, yeah idk Claude said so
The human is there as the control valve, the one who keeps the overall context, and the one who injects actual creativity.
Every time the LLM throws jargon around, you call it. "What do you mean by gated wedge?" You call its bullshit, check what it's saying against your understanding of the overall system, and keep it on the straight and narrow.
It's a lot like supervising a junior dev who happens to be very quick at absorbing lots of info, but not so great at the big picture.
I spent today doing forensics on ten compromised WordPress sites sharing one hosting account.
I used two agents: One with network access to collect the evidence, and one with everything except the model endpoint cut off, which did the analysis.
The second agent's entire input was attacker-authored. So PHP droppers, obfuscated loaders, database rows, filenames, blah blah.
In this case I'm more worried about hostile input attacking the agent, and I need to contain the damage. My sandboxing solution does that by restricting access to the source data, making it read-only. The work dir can only transfer data via patch and apply (like a git workflow), so even my workspace can't be modified until I approve each change. And then restricted network means that any compromise ain't going noplace.
The second agent couldn't even install PHP or contact any CVE site to check if it was looking at a known attack, and that was by design. All it could do is write up a report about what it observed, not make assumptions about what it is. I could then take its (much smaller) clean output and pass that to a third agent with network access.
This is forensic work, so of course not your median dev's bread & butter. But the attack surface is only just starting to be plumbed. Compromising input can turn your agent into their agent, planting things as easily as planting worms was back in the early internet days when people connected without a firewall.
I just had a very annoying interaction with the tailscale Android app:
It wanted me to log in for some reason even though it had worked fine for months. Login uses my Google log in.
When I try that, Google asks me for a hardware key to complete the login, even though it's my phone and I'm already logged in.
Eventually I figured out that if you select "log in using another device" and then click cancel when it brings up the qr code, you can select a push notification on "another device", which actually pops up on the same device. Do that once and it fails. Do it a second time and it succeeds.
> This one time, turns out the colonialism was 100% on the side of moral right.
No, it wasn't.
It was just coincidental that the UK still held a 99 year lease (from 1898) when the communists took over mainland China. How they got the lease in the first place is another matter.
It was right every day after the communists took over China. That's quite a few years. And it was wrong of the UK to give back Hong Kong, as can be clearly seen today as China can't be trusted to honor the treaty, and certainly not be trusted to treat its citizens with a minimum of dignity.
Maybe how China treats its citizens is no business of the UK and the fact they were treated differently from other Chinese citizens in the first place is a historic injustice rooted in the UK's desire to force Chinese citizens into opium addiction for their own profit?
Why should the UK or you or I tell the Chinese how to do things? Who made us the ultimate arbiters of justice?
Who are you to define what is humane? Is the treatment of the homeless and the drug addicts in the capitalist US humane? Why don't you prioritize the humane treatment in your own backyard before lecturing a country on the other end of the world about your ideas? The universalism rings real shallow when the particular isn't even dealt with yet.
> Well, most people understand sanity. Now, YOU personally seem not to, so you shouldn't tell anyone how to behave :P
I would recommend refamiliarizing yourself with the HN guidelines.
Why should anyone honor an agreement with the drug dealer that attacked you so they could keep selling drugs and stole some of your property in the process?
If you were mugged and then the perp finally left you alone if you swore to do his bidding for another fifty years, you'd also tell them what they want to hear I assume. But I doubt you would honor your agreement once they no longer had power over you.
Why should the UK have any agreement with France, who for so long agitated and sponsored terorism in the UK?
Or germany that tried to invade not so long ago?
Or russia that killed parts of our royal family?
Times change, and the point about the treaty was guaranteeing the rights of the people that lived in the place now. In the same way that signing an extradition treaty with germany is about allowing citizens to enforce rights. (rather than an exploitative regime using it to punish political dissidents had it been in place in 1936)
the treaty meant that instead of having to evacuate all the hongkongers (only a small amount were "truly native") leading to a huge economic collapse and negating the entire point of getting the land back (and the island that was annexed through good old fashioned cannon)
Because China’s no different, and geopolitics don’t map well onto personal relationships, except that trust matters. Even in your example, it would be that the drug dealer attacked and stole from my great-great-great-grandfather, and now the drug dealer’s great-great-great-granddaughter is returning the property. It’s a bit foolish to treat her with the same level of distrust, and it would be even more foolish to be the one to break the agreement if I know that I will have to keep doing business with her in the future.
I have cabinets for cables (all tie-strapped), arranged in separate compartments:
- USB cables with at least one USB-C end
- All other USB cables
- Network cables
- Audio and video related (RCA, HDMI, SCART, phono, XLR, displayport, BNC, S/PDIF, etc)
- Power cables
- Power adapters
- Batteries and battery chargers
- Flash sticks, type adapters, diagnostic tools
- Spare keyboards and mice
Not a week goes by where I'm not grabbing something from that cabinet. A couple of months ago I actually needed a SCART cable for the first time in forever for some old hardware.
The problem with transit systems is that they aren't designed for competition. They're costly to make, have few builder companies to choose from (who all know the game very well and go over budget as a tactic), and extremely difficult to overhaul/retrofit when more efficient tech becomes available.
They're great for short distance travel in densely populated areas, but outside of that I doubt they'd hold up in long-term cost and efficiency vs autonomous electric cars for long.
As for parking, a fully autonomous car service would allow a car to come to you and pick you up. So it wouldn't need to park near where you are.
Of course you can get the same kind of thing in binary. I wrote a drop-in binary JSON replacement because it's easy to write a binary one that's twice as fast as simjson and yyjson. The important thing is to never give the drop-in replacement any extras that break roundtrip compatibility.
Was a fun little project to write, and quite useful for me: https://github.com/kstenerud/bonjson
reply