frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

John Deere owners will get the right to repair equipment under FTC settlement

https://apnews.com/article/john-deere-right-to-repair-agriculture-equipment-cb7514ffedb95c130a976...
401•djoldman•3h ago•79 comments

I Think I Have LLM Burnout

https://www.alecscollon.com/blog/llm-burnout/
99•sosodev•1h ago•63 comments

Separating signal from noise in coding evaluations

https://openai.com/index/separating-signal-from-noise-coding-evaluations/
172•sk4rekr0w•6h ago•66 comments

Chatto is now open source

https://www.hmans.dev/blog/chatto-is-open-source
776•speckx•11h ago•205 comments

Remote Attestation

https://www.liamcvw.com/p/remote-attestation
37•lcvw•2h ago•16 comments

Patching MechCommander's "left arm bug" for fun and profit

https://mhloppy.com/2026/05/mechcommander-weapons-left-arm-bug-fix/
19•Narann•3d ago•8 comments

Mistral's Robostral Navigate: a state of the art robotics navigation model

https://mistral.ai/news/robostral-navigate/
426•ottomengis•13h ago•97 comments

Cloudflare Drop

https://www.cloudflare.com/drop/
287•coloneltcb•7h ago•143 comments

We made Grok 4.5, GPT-5.5, and Claude build the same apps

https://www.tryai.dev/blog/grok-4.5-vs-gpt-5.5-vs-claude-build-off
82•hershyb_•3h ago•37 comments

Unicode's transliteration rules are Turing-complete

https://seriot.ch/computation/uts35/
48•beefburger•17h ago•13 comments

Show HN: Microsoft releases Flint, a visualization language for AI agents

https://microsoft.github.io/flint-chart/#/
219•chenglong-hn•9h ago•78 comments

Grok 4.5

https://x.ai/news/grok-4-5
503•BoumTAC•9h ago•652 comments

MIRA: Multiplayer Interactive World Models Trained on Rocket League

https://mira-wm.com/
33•ethanlipson•2h ago•6 comments

Show HN: Yamanote.fun – A complete soundscape for Tokyo's Yamanote line

https://www.yamanote.fun/
68•madebymagnolia•1d ago•17 comments

Turning a pile of documents into a searchable useable knowledge base

https://github.com/linuxrebel/DocuBrowser
88•linuxrebe1•6h ago•15 comments

Benchmarking coding agents on Databricks' multi-million line codebase

https://www.databricks.com/blog/benchmarking-coding-agents-databricks-multi-million-line-codebase
7•tanelpoder•5h ago•2 comments

FAANG Simulator

https://www.abeyk.com/escape-the-rat-race/
315•nerdbiscuits•7h ago•123 comments

Rewriting Bun in Rust

https://bun.com/blog/bun-in-rust
340•afturner•5h ago•184 comments

GPT‑Live

https://openai.com/index/introducing-gpt-live/
621•logickkk1•10h ago•421 comments

A bug which affected only left handed users

https://shkspr.mobi/blog/2026/07/a-bug-which-only-affected-left-handed-users/
95•sixhobbits•13h ago•45 comments

New Sweden: the US's long-lost 'secret' colony

https://www.bbc.com/travel/article/20260629-new-sweden-the-uss-long-lost-secret-colony
57•bookofjoe•7h ago•11 comments

TypeScript 7

https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
493•DanRosenwasser•11h ago•194 comments

Decoding the obfuscated bash script on a Uniqlo t-shirt

https://tris.sherliker.net/blog/obfuscated-self-evaluating-bash-script-by-cdn-akamai-being-suppli...
1316•speerer•18h ago•210 comments

Apache Shiro security framework releases 3.0.0

https://shiro.apache.org/blog/2026/06/apache-shiro-300-released.html
6•lprimak•2d ago•0 comments

My road trip with the do-gooding cactus smugglers

https://economist.com/1843/2026/03/06/my-road-trip-with-the-do-gooding-cactus-smugglers
23•andsoitis•3d ago•1 comments

OpenMandriva: Statement regarding attempted distribution sabotage

https://forum.openmandriva.org/t/statement-regarding-attempted-distribution-sabotage/8997
84•workethics•8h ago•14 comments

Cloudflare Meerkat - Globally distributed consensus

https://blog.cloudflare.com/meerkat-introduction/
228•bobnamob•13h ago•47 comments

Beyond Git: Real-Time Version Control for Godot – Lilith Duncan – GodotCon 2026 [video]

https://www.youtube.com/watch?v=CAJ_iIedx_I
20•surprisetalk•6d ago•1 comments

Show HN: Frugon – Find which LLM calls a cheaper model could handle (local, MIT)

https://github.com/Rodiun/frugon
15•jarodrh•1d ago•2 comments

EVE Online's Carbon engine is now open source: Fenris Creations explains why

https://www.gamesindustry.biz/eve-onlines-carbon-engine-is-now-open-source-fenris-creations-expla...
388•Stevvo•5d ago•137 comments
Open in hackernews

I Think I Have LLM Burnout

https://www.alecscollon.com/blog/llm-burnout/
96•sosodev•1h ago

Comments

hoppp•1h ago
Tell the llm to answer like a cavemen, if llm talk like cavemen, the answers become shorter and more compressed.

https://github.com/JuliusBrussee/caveman

It's for getting it to output shorter answers, but also could help with your burnout.

ysavir•58m ago
I surprisingly had good results when I told the LLM to only communicate in ASCII memes. It did a fantastic job of summarizing the situation using relevant memes, and the humor was enough to keep things fresh. As silly as it sounds, it's worth trying when you're in that LLM burnout corner.
Bratmon•1h ago
This is legitimately the reason I'm looking to leave programming.

I got into programming because the problems of programming were interesting to me. But if the problems go from "figure out why this calculator is off by one in France" to "Get this LLM to stop spamming cutsey emojis", then maybe it's time for a career change.

Bratmon•53m ago
(And I admit I'm salty that the "I don't give a shit about why the calculator doesn't work in France, I'm just here because they pay me to fix it" people were the ones vindicated by technological progress)
teaearlgraycold•50m ago
The people just here for the paychecks have always been the problem.
slopinthebag•44m ago
In every industry, and we wonder why everything is being enshittified.

I'm not looking forward to using computers or technology over the next decade. There is a non-zero chance myself or a loved one is killed because of vibe coding.

fragmede•35m ago
There's also a non zero chance that someone in your life is going to have fun and whimsy and their life improved by vibe coding. Why focus on the negative?
QwenGlazer9000•25m ago
Are you fr?
slopinthebag•18m ago
Yes who cares if they die as long as they had some fun and whimsy first! :P
nzeid•1h ago
I do not have the burnout but I certainly operate similarly to the author. I continue to be unable to establish a workflow where allowing the LLM to generate code that I review is faster than writing the code myself. Literally the only two ways out of this dilemma is to blindly trust what was generated or to generate an uncharacteristically exhaustive suite of unit tests to validate every possible scenario. I just write the business logic myself and have the LLM do a lot of the rest. Boilerplate falls into the latter as well.
jaggederest•58m ago
> generate an uncharacteristically exhaustive suite of unit tests to validate every possible scenario.

This is what you want. You want comprehensive tests at every level, far more than is reasonable for a human to build or maintain, from unit, functional, to full end to end and beyond. Adversarial testing (both TDD-style "write tests to demonstrate this bug", and posthoc "prove this patch wrong with a new test") is the best way to keep AI on track and make those diffs you have to read clean and easy.

An even better way is to use a more strongly typed language and really lock it down, but you can use testing in any language. I feel like my background in TDD and "TATFT" has been secret sauce when working with AI

dprkh•53m ago
I used an LLM to build this

https://github.com/dprkh/eventfs

It has good test coverage, mostly unit tests but also a number of end-to-end tests. I also made the LLM build a benchmark, which you can find at the bottom of the readme. It is obviously slow, but I thought that it is good enough to work. When I tried to write a 1 GiB file, I found that it broke down, and after writing half the file, the speed went to under one megabyte per second. Implementation is 10k+ LoC, and I have no idea what is going on there.

nzeid
hyperhello•59m ago
I don’t understand what could possibly need to be made so fast that isn’t totally made up billable hours. Running at top speed long enough to be burned out is either ineffective, or valuable enough that someone else can take over while you sleep.
razster•23m ago
Even with Fabel and all that I constantly keep having to babysit it and correct it like it’s an adolescent and it gets really old and the amount of code. It produces not all of its great at all. I’m burnt out looking at. It’s poor coating that somehow magically works.
Terr_•58m ago
It sounds kind of like being stuck working with coworkers who--while not overtly hostile--need constant hand-holding and repeat the same kinds of mistakes every day and can't even be genuinely sorry about it.

Just because we work with computers doesn't mean we don't take, er, social-damage. Or perhaps parasocial damage, in this case.

dirtbag__dad•58m ago
> My main project right now is to establish a framework for large-scale, unsupervised code generation in our codebase

Anyone else working on something like this or know of any projects attempting it?

jaggederest•51m ago
https://github.com/gastownhall/gascity is certainly a choice. I enjoyed playing with gas town but it was a little too nondeterministic for production code, I think.

Directionally if what you're doing is straightforward it's an amazing experience to be able to slap in an epic planning document and wake up the next day to it being "done", with a big asterisk that done-ness is directly proportional to how good of a spec and how good of a model you were using.

That being said, these days if you use Fable, slap in an epic planning document, and ask it to run a workflow (be sure to specify that subagents should use, say, Sonnet, or wave goodbye to your wallet), it's almost as good as gastown/gascity but far more predictable.

Exoristos•50m ago
An almost infinite supply of such modern-day alchemists.
jaggederest•56m ago
I think having style guidance in your context is valuable for avoiding this kind of thing. Having to read awful, cliched text all day is even worse than having to read reams of useless code. I have some simple humanizing content in there that specifically calls out the rhetorical devices that AI loves, and it drastically improves the diffs and comments. It also makes the coding performance generally slightly worse, but ergonomics uber alles.
internet2000•54m ago
Avoid Gemini and the lesser ChatGPT models and your emoji problem goes away.
dpc_01234•54m ago
I don't think I have a "burnout", but LLMs are really exhausting due to amount of pressure they generate. No one is really pushing me to increase my workload, but at every moment there is always something ready, done by my clankers or clankers of other people that I could be unblocking. In the past (before LLMs) it was already hard to keep up, but now it feels like there's 10x more things waiting at any given time, and there could be 10x more if everyone just "optimized" and streamlined processes fed the AI even more tasks in parallel faster. It just being a bottleneck of everything, all the time is tiring...

I am happy about all the little side-projects, and ideas it help my realize, and I enjoy exploring this new world, but I've noticed LLMs feed my unhealthy "don't want to take a break and waste time being idle" mindset, and I need to correct it.

W.r.t. article's main complain - I think the similar thing happened due to factory manufacturing automation. What used to be a varied skillful craft in a shop became standing in a single place of an assembly line doing the exact same thing whole day. LLM took away the more creative and variable part of the work, and left the repetitive QA rubber-stamping. Probably some of the mitigations used back then could be rediscovered today.

walrus01•38m ago
> No one is really pushing me to increase my workload, but at every moment there is always something ready, done by wankers

I confess that the above variant on the quotation is how I originally read it. And that's just about how I feel now with trying to sort through vibe-coded slop projects that are put forth by (well-meaning, probably good intentioned, not evil) people who represent them as if they're the handcrafted result of one dedicated developer.

wisty•35m ago
Individual gains from llm seem much larger than net productivity increases. I think a major source of this discrepency is people creating more work for their coworkers at the speed of slop. Especially the people with no idea.

"I did a Chat output, please fix and review it " is the kind of thing that empowers the people who used to have a minimal productivity, and now lets them to wreck things on an industrial scale.

readme•51m ago
I don't have much success with using the LLM to make changes to a big legacy codebase. Instead, I use the LLM to gripe about things I don't like in the code. Usually, it is a brilliant commiserator.
block_dagger•48m ago
I've started feeling slightly physically ill when I read Opus output for hours straight. This article rings very true for me. I've started complaining about it with my team; at least have a personal style guide in your agent rules that eliminates emdashes, the "it's not X, it's Y"s, the long lists of modifiers before the noun, using the word "land" to mean finish, etc. I hope this is just a phase of adolescent LLMs.
wxre•42m ago
I don't mind interacting with LLMs myself and find they increase my productivity a decent amount. I just can't stand dealing with other people's slop.

Getting sent IM responses that are copy pasted LLM nonsense. Getting a massive PR to review that was generated overnight and the author didn't read it first.

deeprack4sure•42m ago
Learn to code
Cider9986•9m ago
How?
kyzcdev•41m ago
What to do to achieve this kind of burn out, I feel like I am a stubborn old developer, I'm coding since 2013 and I am 25 years old.

My mind still can't function well without having knowledge about everything.

anonu•34m ago
It's burnt me out too. I'm generating 10x more features and multitasking across 4 disparate projects. My greatest concern is I don't really have a strong connection to the underlying fundamentals anymore. I need to see how the things works to internalize it. Now I just trust that the agent wrote this piece correctly.

The productivity drive and the sheer feature set you can generate in record time makes it easy to forget proper sdlc hygiene.

slopinthebag•32m ago
I don't really understand how this isn't a self-inflicted problem? Perhaps it's because I'm not really mandated to use LLMs in a particular way, but I've had great success doing a combination of writing code myself and using smaller but faster models as a sort of "flood fill". The larger models can also be useful when you're implementing something which already exists in similar form in the codebase, because you can just put that code in the context and you'll get something very similar outputted. So the more code you write, the better the LLM can be later on. Codebases should get easier to add to the bigger they get, not harder.

Of course if you're supposed to achieve so much output that it's not possible to do anything but vibe it, fair enough.

anigbrowl•21m ago
started to dread reading LLM output because I know what I’m going to find. False assumptions and hallucinations. Emphatic, staccato fragments. Excessive emojis .

I do not understand these complaints. Yes, those are the defaults and they're annoying, although the general public seems to like them. But you are not stuck with these. You can just tell the LLM how it should interact with you. If you're using any sort of harness beyond the chat window in a web browser, you can codify these instructions in a rules.md file or similar and have it automatically included in any new chat. It's not any harder than changing the default wallpaper or color scheme on your desktop operating system.

In reverse order, you can just tell the LLM to never use emojis. I don't like emphatic staccato fragments either, so I tell it to eschew the language of marketing and hype and stick to a factual and plain language, or to employ an academic tone. I explicitly instruct mine to ask clarifying questions whenever context is ambiguous and to push back on false assumptions or common misconceptions (by me). Hallucinationsa re the biggest problem of those you mention; it's not easy to totally eliminate them (for the same reason it's not easy to instruct people to not fall for scams or disinformation), but you can considerably reduce them by setting standards for citations.

I have ideas about reducing hallucinations over work material (ie a codebase) but am omitting them here as they are not fully thought out or tested.

jamesjhare•17m ago
i think we're interacting with a character not a person.
jamesjhare•14m ago
is there any evidence that Alec Scollon, the first time blog author responsible for this post, even exists? look up the name. boo this post and the premise behind it.
dthedavid•11m ago
If you can afford it, I highly recommend quitting and going independent at least for a while. It’s so much fun building right now.
treefry•3m ago
From my experience, there are mainly 3 burnout reasons. 1. Multi-tasking is the top one. I usually have to frequently switch between 3 to 5 agent windows which are on different things. It's extremely exhausting when each round takes a few minutes. Before coding agent era, I believe most developers had chance to spend 2+ hours focusing on one thing. Now coding agents have increased my spectrum on the tech stack, but the bandwidth to do deep work isn't increased. 2. Agents are good at getting things running without crash, but do not guarantee to produce correct code. This is quite different from human experts with fundamental knowledge. 3. I also get frustrated when reviewing piles of AI generated low quality PRs. My attention is a limited resource. I don't waste too much energy on other people's work, but if I don't spend more effort, the entire project is corrupted quickly by reckless AI generated code without human author's careful thoughts and designs. Working with people who have less due diligence in mind is painful, working with them in coding agent era is 10x painful because they produce 10x shit. It's a team culture challenge that cannot be easily enforced.
canada_dry•2m ago
The reason I'm getting LLM burnout is from dealing with the obvious neutering and opaque downgrading of all the top models.

Prior to the last 12mos AI companies were hell bent on squeezing out the best results from mediocre models.

But... now that the top models have progressed, those same AI companies have switched their efforts into reducing the computation (cost of a producing a result) as much as possible without being too obvious.

What was an exponential slope in the quality of results over the last 36 months has now nearly flat lined.

esseph
•
12m ago
We're all going to die.

Have your fun and whimsy.

fragmede•10m ago
To each their own. Would you rather live a long boring safe life, or a fast short exciting one? You decide!
dinkleberg•4m ago
But there is a much higher chance of getting killed by any number of other concerns like by a drunk driver. Putting that one on the list of things to stress about seems unwarranted.
mc3301•40m ago
Hmm... I think the majority of people working jobs are mostly just there "for the paychecks."

It'd be rather beautiful if all jobs were purely passion driven, but that is simply not the case. Nor could it be. And yeah, there are programmers with jobs that are mostly driven by passion, but most would pack it up and go home immediately if there was a sudden "we have stopped paying you" announcement.

sodapopcan•35m ago
> Hmm... I think the majority of people working jobs are mostly just there "for the paychecks."

And the majority of software is terrible so ya. Life is generally unfortunate.

bobthebob•24m ago
So - most of human society?
irjustin•34m ago
Giving my "otherside", because the pressure to output more at work is real, but at the same time, out side of work, I love this. I'm able to do way more projects than ever before because a barrier to entry was always the amount of research+time required to start up a pet project.

My latest is, I'm really into fizzy/soda water and wanted my own continuous carbonator. My entire build from water source to tap with an ESP32 controlled pump, pressure, water level, cooling fans.

There were so many areas I made mistakes in my shopping cart and it found it - like Home Brewer likes 8mm lines but water filter systems like 9.5mm. Really optimized the versions from a simple on/off pump w/ float switch to effectively a full on PLC system. So many iterations gained by chatting with "someone more experienced". Once I get the parts I can build and have the software side running in less than an hour.

It doesn't make money, but man I really enjoy it.

altairprime•32m ago
Accounting is desperate for accountants because they’re necessary for legal and compliance reasons. Join up today!
MitziMoto•7m ago
I'm no longer in corporate America, so maybe I'm out of touch a bit, but could you just...not...use an LLM? You can still solve interesting problems on your own if you choose to do so?
krackers•6m ago
Part of the annoying thing is that if you're working on a product which uses LLMs, at some level you run out of levers to pull in terms of being able to fix things. At best you're stacking hacks on top of hacks to prevent unwanted output, but at the end of the day if the LLM really decides it simply doesn't want to follow your instructions, you can't do much other than resign to adding *IMPORTANT* and hoping the next model fixes it.

The experience is much closer to working with an external API that you don't have control over and which simply doesn't do what the documentation says. Those have always been the most frustrating parts of programming, but at least previously you could reverse engineer the actual implementation to work around bugs. You can't even do that now because the "boundary" randomly change every day.

•
51m ago
Yep.
jaggederest•43m ago
That's interesting because I would feed that benchmark back into the agent and loop over it, to see how much faster you could get it, and agents are really good at that kind of recursive optimization. And I would definitely add at least a simulated 1GiB write test, probably a real one honestly, if I was building something like that.

At least with agent-run tests I care about loop speed a lot, but I care about complete coverage more, so having the odd heavy weight full stack integration test is fine, I think.

dprkh•28m ago
You're right. This was just a performance issue, but what if next time it is a corruption bug or a security vulnerability or really anything that can cause real consequences if happened in production? I don't think that LLM systems are inherently bound to have this flaw, but I think that we are pretty far from harnesses and algorithms becoming advanced enough so that the LLM system can kind of continuously evaluate its output and ensure it is good in all aspects.
rafterydj•50m ago
I see this get mentioned a lot but I still am skeptical that AI can generate tests we can trust more than any other code we know we cannot trust.

Yes tests are conceptually isolated and that helps, but I've personally seen unit tests get generated that are semantically incorrect - that is, they test the structure of the code (e.g. they can check function output types and values), but they can't know _why_ the unit tests need to be there, so the really really helpful tests never get generated. Not to mention the obvious issues with generated tests only testing is x = x, or needless redundant tests for the same thing, or them essentially testing basic features of the language.

jaggederest•46m ago
You have to iterate on the tests, review and validate them, just like any other code, and if you generate a whole project's tests all at once the quality is abysmal, of course. I've been using a lot of old school data-driven testing techniques, where the harness is just code I review, and the data itself is e.g. json files and drives the system.

I actually have a public (AGPL) example here: https://github.com/pgdogdev/pgdog/tree/main/integration/sql - pgdog is particularly testable since it is trying for complete transparency, so you have a perfect oracle in hand via base postgresql, but it demonstrates the concept at least.

nzeid•41m ago
Which is why test generation has to be carefully guided as well, and this is something at which I've incidentally been fast. Ultimately it's a constant battle between LLM handholding and doing things yourself.
skydhash•31m ago
I don't even care about tests being correct as you can still verify them even when tedious. What I care is that, more often than not, the shape of the solution is not fixed. Having unit tests for those can be extremely costly as when the changes happens, you have to change all the tests.

I've been burned by this in my honeymoon period with unit testing (pretty much the reason it ended). These days, I prefer broader scope of testing, especially user-facing part. The users may be other developers or end users. I only do unit testing for tricky algorithms or math formulae.

rapind•44m ago
100% this is what I've done. I sucked it up and adapted myself to the tool (agents) by having as many implicit guardrails (static typing, functional, no nulls, great linting) and then layering on explicit guardrails (TDD) on top. I also want my workflow to be portable because I don't really trust the frontier model providers.

It is different though. Basically a lot of what I do has changed over the last 2 years. I totally get that a lot of people won't want to adapt though.

skydhash•27m ago
> I totally get that a lot of people won't want to adapt though.

Or people don't want to be reverse centaur keeping the clankers happily running. Instead of helping to solve users/consumers problem.

stillpointlab•57m ago
I've just been carefully reading the code. It is easy to slip into just accepting what comes out to speed things up, but reading the code is important.

I save myself by skimming things like tests, templates, some UI. Anything cosmetic. But I have to read the majority of code that ends up on my back end systems.

dylan604•52m ago
And for those that have similar-ish sentiments, what mental defect is had that prevents them from just drinking that sweet tasty kool-aid and just use the slop created. What demented trait is in them that causes everyone to just be a stick in the mud trying to ruin everyone else's good time?

In my personal experience, the ones most enthusiastic about LLM magic are those that can't code, but can now walk away with something functional if not quite the best code. Now that they can produce workable code, it will make everyone better. Yet, they have no idea how maintainable the slop is or if it's slop at all.

dools•52m ago
Don’t read the code!!
jaggederest•41m ago
I actually dispute this, I read all the code, the core thing people have to give up is not "reading the code" per se, it's giving up on "that's not how I would have done it".

When you see a perfectly clear function or object that just isn't your style, you have to accept it and move on. Where there are concrete concerns, or it's unreadable, demand excellence, but treat it like a coworker, not an IDE.

FunHearing3443•23m ago
Yeah this is how I feel about it. Does it look correct? is it doing something weird? Is it forgetting about some gotcha in our domain that it hasn't been taught about yet? Otherwise, ship it.
apsurd•15m ago
This is valid in the other direction as well. Principle engineers, CTOs, with legitimately earned authority end up using that authority to 100x their output onto the team as if it was a Godsend unlock.

It's not. There is no one person that has universally good taste. Also, we're not in your head, no matter how much better of a coder or whatever. We're not in your head and it's all terribly painful to navigate.

bicx•13m ago
> LLM took away the more creative and variable part of the work, and left the repetitive QA rubber-stamping.

This 1000 times. The number of times I now have to use my brain to do something engineer-y is now something like 5 times per week, usually eyeballing some architectural decision from (as you mentioned above) someone else's LLM.

I really loved writing code, and I loved that I could do it for a living. Obviously, nothing is stopping me from continuing to write code and solve problems with my own brain, but that's absolutely not the efficient way to work anymore.

The most high-leverage activity I've done in the last 6 months is a build-out of internal AI orchestration platforms and data access layers so every employee in the company can built with AI against our own data (particularly non-engineers). It has unlocked so much for everyone. Yet, my only real claim is a) coming up with the idea and general architecture and b) ensuring smooth roll-outs and hosting "office hours" for months to help new employees onboard to these new AI tools I built.

High-level design and architecture decisions, quality assurance, and balancing decision-making through subjective areas like UI/UX. That's mostly all I do. Now that I'm leading engineering, I just think even higher-level while the engineers use orchestrated AI do built vast swaths of code. Then I frantically bounce around approving sensitive PRs and architecture decisions -- most of which were written by Claude, described by Claude, and usually don't need a lot of correction.