Very strange. Either the author uses some magic AI, or I am holding it wrong. I used LLMs since a couple of years, as a nice tool.
Besides that:
I have tried using LLMs to create cartoon pictures. The first impression is “wow”; but after a bunch of pictures you see the evidently repetitive “style”.
Using LLMs to write poetry results is also quite cool at first, but after a few iterations you see the evidently repetitive “style”, which is bland and lacks depth and substance.
Using LLMs to render music is amazing at first, but after a while you can see the evidently repetitive style - for both rhymes and music.
Using NotebookLM to create podcasts at first feels amazing, about to open the gates of knowledge; but then you notice that the flow is very repetitive, and that the “hosts” don’t really show enough understanding to make it interesting. Interrupting them with questions somewhat dilutes this impression, though, so jury is out here.
Again, with generating the texts, they get a distant metallic taste that is hard to ignore after a while.
The search function is okay, but with a little bit of nudge one can influence the resulting answer by a lot, so I wary if blindly taking the “advice”, and always recheck it, and try to make two competing where I would influence LLM into taking the competing viewpoints and learn from both.
Using the AI to generate code - simple things are ok, but for non-trivial items it introduces pretty subtle bugs, which require me to ensure I understand every line. This bit is the most fun - the bug quest is actually entertaining, as it is often the same bugs humans would make.
So, I don’t see the same picture, but something close to the opposite of what the author sees.
Having an easy outlet to bounce the quick ideas off and a source of relatively unbiased feedback brought me back to the fun of writing; so literally it’s the opposite effect compared to the article author…
We need to distinctly think about what tasks are actually suitable for LLMs. Used poorly, they'll gut our abilities to think thoughtfully. The push, IMO, should be for using them for verification and clarification, but not for replacements in understanding and creativity.
Example: Do the problem sets yourself. If you're getting questions wrong, dig deeper with an AI assistant to find gaps in your knowledge. Do NOT let the AI do the problem sets first.
I think it was similar to how we used calculators in school in the 2010s at least. We learned the principles behind the formulae and how to do them manually, before introducing the calculators to abstract the usage of the tools.
I've let that core principle shape some of how we're designing our paper-reading assistant, but still thinking through the UX patterns -- https://openpaper.ai/blog/manifesto.
Maybe you are not that great at using the most current LLMs or you don't want to be? I find that increasingly to be the most likely answer, whenever somebody makes sweeping claims about the impotence of LLMs.
I get more use out of them every single day and certainly with every model release (mostly for generating absolutely not trivial code) and it's not subtle.
> Maybe you are not that great at using the most current LLMs or you don't want to be?
I’m tired of this argument. I’ll even grant you: both sides of it.
It seems as though we prepared our selves to respond to llms in this manner with people memeing, or simply recognizing, that there was a “way” to ask questions to get better results early on when ranked search broadened the appeal of search engines.
The reality is that both you and the op are talking about the opinion of the thing, but leaving out the thing itself.
You could say “git gud”, but what if you showed op what “gud” output to you was, and they recognized it as the same sort of output that they were saying was repetitive?
It’s ambiguity based on opinion.
I fear so many are taking part each other.
Perhaps linking to example prompts and outputs that can be directly discussed is the only way to give specificity to the ambiguous language.
The problem is that, knowing the public internet, what would absolutely happen, is people arguing the ways in which
a) the code is bad
b) the problem is beneath what they consider non-trivial
The way that OP structured the response, I frankly got a similar impression (although the follow up feels much different). I just don't see the point in engaging in that here, but I take your criticism: Why engage at all. I should probably not, then.
Could totally be the case, that, as I wrote in the very first sentence, I am holding it wrong.
But I am not saying LLMs are impotent - the other week Claude happily churned me ~3500 lines of C code that allowed to implement a prototype capture facility for network packets with flexible filters and saving the contents into pcapng files. I had to fix a couple of bugs that it made, but overall it was certainly at least 5x-10x productivity improvement compared to me typing these lines of code by hand. I don’t dispute that it’s a pretty useful tool in coding, or as a thinking assistant (see the last paragraph of my comment).
What I challenged is the submissive self deprecating adoration across the entire spectrum.
Reading this I am not sure I got the gist of your previous post. Re-reading the previous post, I still don't see how the two posts gel. I submit we might just have very different interpretations of the same observations. For example I have a hard imagining the described 3500 LOC program as 'simple'. Limited in scope, sure. But if you got it done 5-10x faster, then it can't be that simple?
Anyway: I found the writers perspective on this whole subject to be interesting, and agree on the merits — I definitely think they are correct on their analysis and outlook, and here the two of us apparently disagree – but I don't share their concluding feelings.
I suspect indeed we have the difference in terminology.
I put distinction between “simple” and “easy”.
Digging a pit of 1m * 1m * 1m is simple - just displace a cubic meter of soil; but it is not easy as it’s a lot of monotonous physical work.
A small excavator makes the task easy but arguably less simple since now you need to also know how to operate the excavator.
LLMs make a lot of coding tasks “easy” by being this small excavator. But they do not always make them “simple” - more often than not, they make bugs, for fixing which you need to understand subject matter, so they don’t eliminate the need to learn it.
I actually considered that option, while writing the comment (and should probably have said so, my bad). I guess I considered it improbable that the task you describe you would actually think of as easy. To me, it does not seems to meet the characteristics, specially not after 3500 LOC.
To put a little bone on the flesh from my side of the isle: I am currently writing what I would consider a fairly complex (web) system in Rails, managing all aspects of a medical startup (patient portal, provider platform, documentation, billing, scheduling, PWAs). Think in terms of complexity and aspiration what might be required to run https://www.onemedical.com/
I understand that it is not John Carmack type work, but I would not describe it as either easy or simple. But maybe you would – and then this is where all the confusion ends :)
I do this mostly in Windsurf using the new Gemini 2.5 pro (which just came out recently and is a huge jump up; before that it was mostly Sonnet 3.7). It writes probably around 95% of LOC and it also definitely does what I would consider some of the code design, although there the contribution percentage is much lower and it's definitely more of a thought partner, that can do some things better than I can. There is definitely a lot of collaborative plan writing involved, todo lists with check-off boxes and explicit instructions on the process.
What it absolutely does not do is, well, anything, unless I explain to it what I want good enough. That part comes relatively natural, because I would normally just write a lot before coding/designing to understand that it is what I want. That lends itself to work with the LLM I guess (and I just now wonder if most of the daylight can be found there)
Interesting, so in your experience Gemini 2.5 Pro bests Claude 3.7 ? I didn’t pay much attention to it, will give it a go, thanks for the reference!
Again, I think of the task I mentioned as not easy (it’s a lot of code) but it is simple (it’s a very boring for me code that I know how to write).
Caveat: (and I realized this throughout our exchange) is that the definition of “simple” differs a lot depending on the person and the field they are in vs. the domain of the task.
In part the task was “simple” by my standard is I have three decades of experience in the field, and the task is within my domain (networking protocols). 3500 LoC was what LLM generated, I will need to refactor and probably reduce that.
What you describe in my view would be probably “ complicated” (will require a lot of knowledge I don’t have) & “not easy” (it is lots of code) - I can imagine the data model is probably not trivial, plus you have to think a lot about potential extension points, future data migrations, etc)
Collaborative planning is an interesting new use, I will try it out, thanks for sharing!
FWIW, this past week I wrote up my uses of LLM (Claude 3.7) and published them, for a longer form experience than my comments here).
Your comment that you have to explain very well to it what you want is in part what I wanted to convey - LLM is an amplifier/executor, rather than a creative generator. The initiative is still fully yours.
They can't do anything elaborate or interesting for me beyond literal tiny pet project proof of concepts. They could potentially help me uncover a bug, explain some code, or implement a small feature.
As soon as the complexity of the feature goes up either in its side-effects, dependencies, or the customization of the details of the feature, they are quite unhelpful. I doubt even one senior engineer at a large company is using LLMs for major feature updates in codebases that have a lot of moving parts and significant complexity and many LOC.
Use LORAs, write better prompts. I've done a lot of diffusion and especially in 2025 it's not difficult to get out something quite good.
Repetitive style is funny, because that's what human artists do for the most part. I'm a furry, I look at a lot of art and individual styles are a well established fact.
I am ex-smoker for more than 12 years after smoking between half a pack and a pack a day for 15 years, and I went through the process which may be similar to what you describe. So I thought to write here some of my self-observations - maybe they could be useful for you or anyone else reading this.
Cigarettes for me combined many aspects that are psychological and social rather than physical:
- the sucking reflex. Same calming mechanism as the babies with the pacifier
- the comfort of routine, where they support the familiar (the first cig with a coffee, a morning or evening cigarette)
- the social interactions (smokers areas are a great place for a conversation and there is no hierarchy)
- last but not least - physical effect of calming
- the very strong associative effect caused by movies with smoking scenes
- the nice feeling of appetite reduction caused by cigarettes/nicotine
What helped me was:
0) for the routines - replacing with a different ones that do not need cigarettes.
1) to not set the goal to quit outright, but rather to reduce, and then when it went to zero it was “temporarily stop, I can always restart if I consciously find it worth it”.
2) make every cigarette subject of a conscious decision after a discussion with yourself. Do not prohibit it outright - it only heats up the impatience for it. Make it a conscious decision.
3) Look at adjacent habits, like alcohol. My last infrequent routine, which persisted irregularly for some years after I stopped, was to have a cigarette sometimes socially when I had a drink. After I reduced the drinking to almost zero, I once had tried social smoking and didn’t like how it tasted at all, and had a headache the next day. Which was remarkable as I never had this before. No social impulse felt anymore.
4) take up some sport for half an hour a day, preferably aerobic (I do cycling on a stationary bike). If you manage to go for a streak without cigarettes/alcohol, the difference in performance and feeling will be very apparent which will help at (2).
5) watch out for potential weight gain after stopping smoking. Was hard for me (I gained more than 20 kilos), eventually I lost weight because I moved for half a year to another city where I led a much more active lifestyle.
6) the company of smokers at work. This may be hard but super important if you can tackle it. Eventually I started going for the “breath breaks” but just having a chat rather than smoke, but since this strongly triggers the “routine” programming, this is something I could do only 2 years into stopping.
It is a different journey for everyone, but hopefully some of the above may ring true for you and be useful in your journey. Good luck!
Blue sky allows you to have many different kinds of feeds and I can say the difference in adrenaline level and mood is palpable depending on the feed I use.
News items - frustration at the state the world is in.
Urban bicycle feed: annoyance at the atrocities of the inept drivers.
Feed with cycle side trip pictures: fun.
Rust projects, Electronics: the curiosity of learning.
Also: Bluesky has an absolutely amazing feature which is you can subscribe to someone else’s block lists. That changes the experience quite a lot, to the better.
Bluesky has felt like the healthiest experience I have ever had with social media. I don't really use any algorithmic feeds (though I have been toying with building my own), just my following feed.
I find the algorithmic topical feeds nicely solve the problem of discovery for me. There’s a lot of people who are experts in their fields, totally different to mine (e.g. astronomy, physics, photography etc) which makes it interesting for me.
Yeah, I'm sure they're useful! I have just found myself in a neat community, and I have > 700 followers and followers (mostly mutual), so I haven't really felt a need for discovery. I usually just find people through replies to people I know already at this point.
> Also: Bluesky has an absolutely amazing feature which is you can subscribe to someone else’s block lists. That changes the experience quite a lot, to the better.
Oh yeah I remember how this worked on Twitter. Make a post that annoys some anonymous blocklist maintainer, and suddenly you're blocked by a whole swath of accounts. Sometimes just following the wrong person or liking the wrong post is enough. No accountability for these decisions and no way to reverse them, or even figure out whom to approach to reverse them.
Sounds awfully exclusionary for a service that purports to be inclusive. It encourages the formation of authoritarian cliques, as tends to happen in any left-wing group sooner or later.
I was always polite and respectful on Twitter and still wound up on a blocklist. So did many others. There was no notification or explanation provided and no recourse, I just suddenly found myself blocked from various accounts to the extent it degraded the utility of the platform.
Lots of people on the left love to be little commissars, and this sort of thing provides a perfect opportunity.
The implication of your statement is "you probably did something to deserve it, comrade" which is very much in keeping with that mentality.
If they blocked you, evidently you didn’t clear the bar for them, and even if it was some completely lunatic reason - you have to respect their right to not talk to you, however lunatic it looks for you.
Now, if their blocklists were popular - either they weren’t lunatics or there was a crowd of lunatics. Now, why would you worry about not talking with a crowd of lunatics ?
But, regardless - again - nobody is entitled to an interaction with those that don’t want it, directly or by proxy.
Baffles me, why is it so hard to understand this ?
People can do whatever they want. I simply observed that this is a toxic practice that reinforces my decision to stay away from the platform. Entitlement has nothing to do with it, and I don’t appreciate the implication of your statement.
(You do know that blocking removes the ability to view posts, not just interact with them, right?)
* Bluesky is from the same people that launched Twitter and, optics aside, just the same ideology. There is no real deep divide on values. It is about locking up people in echo chambers, information filtering and ultimately ripping out people's ability to organize around a common good.
There is only one danger for the 0.1%. The 99,9%.
* The people that got disturbed by Twitter's boosting of extremists and nazis, now took refuge to bsky. Only to get ripe for the next iteration. But see how many people are still on X, increasingly less aware of the abnormality they are drowning in.
This playbook of cultural engineering should be super clear by now. Ad tech => Private Intelligence.
* How to sell it? Invest in narratives that bend the notion of free trade in order to instill rigid beliefs about Free Markets. Now look at the free markets. :) It only takes you a few million bucks and a dinner to set your company free.
Like parent hinted at, "social media" means the opposite for society.
I can not argue about the values of people I do not know personally. I only said that the tool they made seems to be okay in my experience, which I shared.
“Free markets” is an uneducated nonsense. An entirely unregulated market evolves into monopoly. Even without corruption.
Social media for me is just a tool (HN is also social media btw). I find it useful and it meaningfully interacts with the other aspects of my life. When it stops being the case (eg facebook and twitter) - I leave it behind.
As for the hierarchy: it had always existed and for better or worse the humans and other animals are wired for it. Likewise, they are wired for maintaining the total perceived fairness of the system - so the system eventually autocorrects the extreme imbalance. Often brutally, though.
> I only said that the tool they made seems to be okay in my experience,
I could understand that! I wanted to make a general comment, to warn people that although things feel fine now, they should imho pay caution to what these things devolve into. There doesn't even need to be any particular evil scheming from people involved. We usually focus on tech solutions. While blindness to cultural forces is generally what leads us into problems. It is a self-feedback loop in which societal fracturing and extremism is fostered.
> When it stops being the case (eg facebook and twitter) - I leave it behind.
I feel the same. But most people, not only the young, are hooked to social media. For the young, they are essential for social validation, and thus they are easily pried on by people with less morality than you likely do.
> HN is also social media btw
Sure, but it is in a different class. HN at least does it best to be the least dopamine awarding. It is hard to read, and it is difficult to see if someone replied to a question or remark you made.
Traditional fora, mailing lists, HN--they are far more benign than what we are talking about.
Absolutely true about focusing too much on tech solutions, it’s often a very tricky problem that is best solved at non-technical layer.
To your other points: I find that people who are addicted never heed the warnings, they just get annoying. Just occurred to me: wonder if the addiction is to some extent internalization of the habit; so that fighting the habit becomes fighting oneself….
About HN being less addictive than the others: that is arguable :-) though it is much less driven by pure emotions than the other forms of exchange, indeed !
“You had an MTU problem. You enable jumbo frames. Now you have two MTU problems”
Unless you control the entire set of possible paths (can be many!) and set all the MTUs to match well, this (while maybe on surface helping with the problem, depending on many things) can set one up with a nasty footgun, whereby black hole will show in the most terrible moment of high traffic. See my PMTUD/PLPMTUD rant elsewhere in this thread.
Given this is a trading system where application latencies are measured in microseconds, the default would be to assume that jumbo frames are totally a valid approach.
From the pragmatic standpoint: manually hard coding a safe minimum is the only approach which consistently works.
PMTUD somehow missed that packet networks ditching the OOB mechanisms of circuit switched networks was a good thing. By adding an OOB mechanism of attempted MTU discovery. Unauthenticated.
Yes, matching the 5-tuple from the original payload somewhat helps against the obvious security problem with this. (It was a fun 3-4 years while it was being added to systems across the ‘net while everyone was blocking the ICMP outright to avoid the exploitation. The burps of that one might still find in some security guidelines)
But the number of the network admins who understand what do they have to configure in their ACLs and why, is scarily small compared to the overall pool size.
Here’s another hurdle: for about two decades, to generate ICMP you have to punt the packet from hardware forwarding to the slow path. Which gets rate-limited. Which gives one a fantastic way to create extremely entertaining and hard to debug problems: a single misbehaving or malicious flow can disable the ICMP generation for everyone else.
Make hardware that can do it in fast path ? Even if you don’t punt - you still have to rate-limit to prevent the unauthenticated amplification attack (28 bytes of added headers is not comparable with some of the DNS or NTP scenarios, but not great anyway)
So - practically speaking, it can’t be relied on, other than a source for great stories.
PLPMTUD is a little better, in a sense that it attempts to limit itself to inband probes, but then there is the delicate dance of loss customarily being used to signal the congestion.
So this mechanism isn’t too reliable either, in very painful ways for the poor soul on call dealing with the outcomes. Ask me how I know.. ;-)
Now, let’s add to this the extremely pragmatic and evil hack that is the TCP MSS clamping, coming back from the first PPPoE days; which makes just enough of the eyeball traffic work to make this a “small problem with unimportant traffic that no one cares for anyway”.
So yes, safe minimums are a practical solution.
Until one start to build the tunnels, that is. A wireguard tunnel inside IPSec tunnel. Because policy. Inside VXLAN tunnel inside another IPSec tunnel, because SD-WAN. Which traverses NAT64, because transition and address scarcity.
At which point the previously safe minimums might not be safe anymore and we are back to square 1. I suspect when folks will start running QUIC over wireguard/ipsec/vxlan + IPv6 en masse we will learn that (surprise!) 1200 was not a safe value after all.
So, with this in mind, I posit it’s nice to attempt to at least fantasize about the universe where MTU determination would be done entirely inline, even if hypothetical - if we had the benefit of today’s hindsight and could time travel - could we have made it better ?
P.s. unidirectional protocols could be taken care of by fountain codes not unlike the I-, P- and B- frames in video world, with similar trade offs, moreover, I feel the unequal probability of loss depending on a place in the packet might allow for some interesting tricks.
Agree wholeheartedly on the pragmatic standpoint of just using minimums.
With regard to the problems of out of band signaling in plain PMTUD I fully agree with all your well stated points, doubly so on PLPMTUD! PLPMTUD is my preferred variation of PMTUD and I was glad to see the datagram form utilized in QUIC (especially since it's really a generic secure network tunneling protocol, not just the HTTP variant). I'm also glad QUIC's security model naturally got rid of MSS clamping... it was somewhat pragmatic in one view... but concerning/problematic in others :D. Of course it's not like TCP/mss clamping have exactly gone away though :/.
Also fully agree on both PLPMTUD still not being as reliable/fast as one would like (though I still think it's the best of the options) + safe minimums never seeming to stay "safe". At least IPv6 attempted to hedge this by putting pressure on network admins, saying "everyone is expecting 1280". Of course... we all know that doesn't mean every client ends up with 1280, particularly if they are doing their own VPN tunnel or something, but at least it gives us network guys an extra wall of "well, the standard says we need to allow expectation of 1280 and the rate of bad things which happen will be much higher lower than that".
You seem to have some really neat perspectives on networking, do you mind if I ask about what you do/where you got your experience? I came up through the customer side and eventually over time morphed my way into NOS development at some network OEMs and it feels like I run into fewer and fewer folks who deal with the lower layers of networking as time has went on. I think the most "fun" parts are trying to design overlay/tunneling systems which are hardware compatible with existing ASICs or protocols but are able to squeeze some more cleverness out of the usage (or, as you put it, if we had the benefit of today’s hindsight and could time travel - could we have made it better). The area I'd say I've been least involved in, but would like to, is anything to do with time sensitive networking or lossless ethernet use cases.
This works great until there is an app that is expecting 1280 and there is an operator that gives you 1280, and you have to run this app over an encrypted GENÈVE tunnel that attempts to add half a kilobyte of metadata :-). RADIUS with EAP or DHCP with a bunch of options can be a good example of a user app like this. Unfortunately this is a real-world problem.
The smaller mismatch but nonetheless painful is the 20 byte difference between IPv4 and IPv6 header sizes. It trips up every NAT64 deployment.
> where you got your experience?
A long path along all the OSI layers :-). Fiber and UTP networks install between ~95 and 2000. CCIE R&S#5423 in ‘99 and from 2000 almost 10 years in TAC and one of the first CCIE in Europe. Then some years working on IPv6 transition. Large scale IPv6 WiFi. Some folks know me by “happy eyeballs”; some by a “nats are good” YouTube video (scariest thing it’s still funny a decade later). These days - relops at fd.io VPP + internal CI/CD pipeline for a bunch of projects using VPP; and as a side gig - full-cycle automation of the switched fleet (~500 boxes) at #CLEUR installations. One of the recent fun projects was [0] - probably industry first of this scale, for an event network: more than 15K WiFi clients on IPv6Mostly. Though we were benefitting from work of a lot of folks that pushed the standardization and did smaller/more controlled deployments, specifically to shout huge thanks to Jen Linkova and Ondřej Caletka.
If you like low level network stuff, you might like VPP - and given it’s Apache licensed, pretty easy to use it for your own project.
One minor Ethernet MTU thing I would change with a time machine is to have the network header portion of the MTU be more like 802.11. I.e. instead of sized exactly to the headers of the day it intentionally was larger to allow variation over time. It wouldn't really do anything for most of the MTU concerns discussed here or for clients but I think it would have been helpful for the evolution of wired protocols.
Happy eyeballs! Yes, I loved that one! I was always a huge IPv6 nerd as well, though I didn't get started until shortly after that. The "nats are good" video isn't ringing any bells but if you have a link I'd definitely give it a watch as it sounds right up my humour alley.
Unfortunately all of that Cisco affiliation means we are forever blood enemies and can never speak again... ;). I kid, I came up through the Nortel heritage originally so I'm bound by contract to make such statements.
I've heard great things about the Fast Data Project, I'll definitely have to look into it some before the Oblivion remake comes out :). Maybe after this current project at work I'll finally get to mess with software based dataplanes properly.
It was great running into you here, I hope to catch you around more now that I know to look!
L2 is “relatively simple” in a sense that it’s usually under the same administrative control; unlike with L3. And even then, if you have a look at all the complexity between the maintaining the interop in the wireless space… it’s amazing it works as well as it does, with so much functionality being conditional.
> I came up through the Nortel heritage originally
My networking cradle is Netware 4.1, and in those times it was a zoo of protocols anyway. I really liked conceptually the elegance of Nortel management being SNMP-first. Makes me smile hearing all these “API-first!” claims today.
> It was great running into you here
Indeed, nice to meet you too ! :-)
I do a fair bit of lurking. yesterday was a bit of an anomaly since the whole “truncation as a means to do PMTUD” was a subject of my idle ponder for more than a decade, so it struck the chord :-)
With IPv4, clearing the DF bit in all egress packets and hacking on top of QUIC could give just enough of a wiggle room to make it possible to explore this between a pair of cooperating hosts even in today’s Internet.
Anti-DDoS middle boxes will be almost certainly unhappy with lone fragments and UDP in general, so it’s a bit of a thorny path.
The big question is what to do with IPv6, since the intermediary nodes will only drop. This bit unfortunately makes the whole exercise pretty theoretical, but it can be fun nonetheless to explore.
Feel free to contact me at my github userid at gmail, if this is a topic of interest.
Most carrier/enterprise/hardware IPv4 routers, particular those on the internet, will not actually perform IPv4 fragmentation on behalf of the client traffic even though it's allowed by the IPv4 standard. Typically fragmentation is reserved for boxes which already have another reason to care about it (such as needing to NAT or inspect the packets) or the client endpoints themselves. I.e. the internet will (sparing security middleboxes) allow arbitrary IPv4 fragments through but it won't typically turn a 8000 byte packet into 6 fragments to fit through a 1500 byte MTU limitation on behalf of the clients. E.g. if you send a 1500 byte IPv4 ping without DF set to a cellular modem or someone with a DSL modem using PPPoE it'll almost always get dropped by the carrier rather than fragmented.
Of course nothing is stopping you from labbing it up at home. Firewalls and software routers can usually be made to do refragmentation.
Of course on the carrier boxes the fragmentation is done also not inline, so its behavior will depend on the aggressiveness of the CoPP configuration, and will be subject to the same pitfalls as the ICMP packet too big generation.
Thanks for keeping me straight here!
Based on the admittedly old study at [0] seems like some carriers just don’t bother to fragment, indeed - but by far not all of them.
Firewalls might do virtual reassembly, so the trick with the initial fragment won’t fly there.
This MTU subject is interesting for me because I have a little work in progress experiment: https://gerrit.fd.io/r/c/vpp/+/41914/1/src/plugins/pvti/pvti... (the code itself is already in, but has a few crashy bugs still and I need to take make it not suck performance wise, but that is my attempt to revisit the issue of MTU for tunnel use case. The thesis is that keeping the 5-tuple will make “chunking”/“de-chunking” at tunnel endpoints much much simpler on the endpoints of the tunnel.
The source of inspiration was a very practical setup at [1], which is, while looking horrible in theory (locally fragmented GRE over L2TP), actually gives a decent performance with 1500-byte end to end MTU over the tunnel.
The open question is which inner MTU will be sane, taking into account the increased probability of loss with bigger inner MTU… intuitively seems like something like ~2.5K should just double the loss probability (because it’s 2x packets) and might be a workable compromise in 2025….
One could also do the same trick over QUIC, of course, but i wanted something tiny and easier to experiment with - and the ability to go over IPSec or wireguard as well as a secured underlay.
Very interesting! It's like the best of the fragment-pre-encrypt world (everything appears as single packet 5 tuples to middleboxes) and fragment-post-encrypt world (transported packet data remains untouched) debate seen on IPsec deployments.
Like you mention you could do this under QUIC but then you'd be hamstrung to some of the design mandates such as encryption. This is way better as it's just datagrams doing your one goal - hiding that you're transporting fragments.
Potentially. However, anecdotally a lot of service providers treat UDP to stricter rate limiting than TCP because it’s unauthenticated nature, so there is a back-pressure factor there.
Also: RFC9000 for QUIC is almost 50% longer than RFC9293 that is the new one for TCP - so, I would expect the implementation would be probably more complex ?
In the absence of that, everything will go over HTTP :-)
I have just went through this with a project of mine, though unfortunately the code wasn’t autogenerated, so I needed to do a lot of mind-numbingly boring search-and-replace commands. I have cobbled together a little utility that allowed to automate the process somewhat.
Mostly a throwaway code with a heavy input from Claude, so the docs are in the code itself :-)
The evidently misguided assumption was that whoever uses it will need to tweak it anyhow, so might as well read it through. As I wrote - it’s very close to throwaway code.
Anyway, I decide to experiment with Claude also writing a README - the result doesn’t seem too terribly incorrect on the first squint, and hopefully gives a slightly more impression of what that thing was attempting to do. (Disclaimer: I didn’t test it much other than my use case, so YMMV on whether it works at all).
> The evidently misguided assumption was that whoever uses it will need to tweak it anyhow, so might as well read it through. As I wrote - it’s very close to throwaway code.
Even if that assumption is true for part of the potential users, they would appreciate a starting point, you know.
Now I have bookmarked it and will check it out at one point.
If you ever figure you want to invest some more effort into it: try make it into an LSP server so it can integrate with LSP Code Actions directly.
Thanks, hopefully it will be of any use and not too buggy ! (It was a classic “worked on my machine for my needs”, but I would be very suspicious of the autogenerated code being 100% bug-free).
I looked shortly at LSP but never had experience with it, and it looked very overwhelming… (and given that I generally use vi, it seemed like a bit too much overhead to also start using a different editor or learn integrations - which I looked at but they seemed a bit unsatisfying).
As a result this exercise got me into an entirely worse kind of shiny: writing my own TUI editor, with a function/type being the unit of editing rather than file. facepalm.
probably entirely worthless exercise, but it is a ton of fun and that is what matters for now ! :-)
Well, you can at least check out Zed and Helix first? Many people say they work perfectly for them and that they are simpler than both Emacs and [Neo]vim.
LSP Code Actions is super neat though. You can have a compiler error or a warning and when your cursor is positioned on it (inside the editor) you can invoke LSP Code Actions and have changes offered to you with a preview, then you can just agree to it and boom, it's done.
Obviously this might be too much work or too tedious for a hobby project, but it's good for you to know what's out there and how it's used. I don't use LSP Code Actions too often but find them invaluable when I do.
I clicked through to the project at
https://github.com/FractalFir/rustc_codegen_clr - from a quick glance at it, with 1.8k stars and 17 contributors, it deserves a better treatment than a passive—aggressive dismissal like this as a top comment.
Right, and that probably should have been the link rather than some in-process thoughts about popcount or w/e. Sorry for not figuring it out and clicking around effectively.
The linked article was mostly meant for people already lossely familiar with the project, but it seems it escaped its intended audience.
I do have a whole bunch of articles about the project on my website, going trough the entire journey of the project, from its start as a Rust to .NET compiler, to the current state.
I should have probably linked the previous articles in this one - I'll add that to my website. I'll also look into adding some more context to the articles next time.
I guess the complaint was more about your fans updooting stuff, so apologies if it sounded like I was shitting on this. Cool project, and I really am awaiting the presentation/writeup.
Just noticing this exact phenomenon as a beginner learning wing foil: over two days, one day I can barely stand up, and only on one side, feeling very wobbly.
The very next day, I am easily standing up on both sides, and can pump (which involved jumping on the board and jerk-pulling the wing).
There was definitely something happened with my brain while I didn’t train.
Besides that:
I have tried using LLMs to create cartoon pictures. The first impression is “wow”; but after a bunch of pictures you see the evidently repetitive “style”.
Using LLMs to write poetry results is also quite cool at first, but after a few iterations you see the evidently repetitive “style”, which is bland and lacks depth and substance.
Using LLMs to render music is amazing at first, but after a while you can see the evidently repetitive style - for both rhymes and music.
Using NotebookLM to create podcasts at first feels amazing, about to open the gates of knowledge; but then you notice that the flow is very repetitive, and that the “hosts” don’t really show enough understanding to make it interesting. Interrupting them with questions somewhat dilutes this impression, though, so jury is out here.
Again, with generating the texts, they get a distant metallic taste that is hard to ignore after a while.
The search function is okay, but with a little bit of nudge one can influence the resulting answer by a lot, so I wary if blindly taking the “advice”, and always recheck it, and try to make two competing where I would influence LLM into taking the competing viewpoints and learn from both.
Using the AI to generate code - simple things are ok, but for non-trivial items it introduces pretty subtle bugs, which require me to ensure I understand every line. This bit is the most fun - the bug quest is actually entertaining, as it is often the same bugs humans would make.
So, I don’t see the same picture, but something close to the opposite of what the author sees.
Having an easy outlet to bounce the quick ideas off and a source of relatively unbiased feedback brought me back to the fun of writing; so literally it’s the opposite effect compared to the article author…