3854 stories
·
3 followers

Announcing TypeScript 7.0 Beta

2 Shares

Today we are absolutely thrilled to announce the release of TypeScript 7.0 Beta!

If you haven’t been following TypeScript 7.0’s development, this release is significant in that it is built on a completely new foundation. Over the past year, we have been porting the existing TypeScript codebase from TypeScript (as a bootstrapped codebase that compiles to JavaScript) over to Go. With a combination of native code speed and shared memory parallelism, TypeScript 7.0 is often about 10 times faster than TypeScript 6.0.

Don’t let the “beta” label fool you – you can probably start using this in your day-to-day work immediately. The new Go codebase was methodically ported from our existing implementation rather than rewritten from scratch, and its type-checking logic is structurally identical to TypeScript 6.0. This architectural parity ensures the compiler continues to enforce the exact same semantics you already rely on. TypeScript 7.0 has been evaluated against the enormous test suite we’ve built up over the span of a decade, and is already in use in multiple multi-million line-of-code codebases both inside and outside Microsoft. It is highly stable, highly compatible, and ready to be put to the test in your daily workflows and CI pipelines today.

For over a year we’ve been working with many internal Microsoft teams, along with teams at companies like Bloomberg, Canva, Figma, Google, Lattice, Linear, Miro, Notion, Slack, Vanta, Vercel, VoidZero, and more to try out pre-release builds of TypeScript 7.0 on their codebases. The feedback has been overwhelmingly positive, with many teams reporting similar speedups, shaving off a majority of their build times, and enjoying a much more lightweight and fluid editing experience. In turn, we feel confident that the beta is in great shape, and we can’t wait for you to try it out soon.

Using TypeScript 7.0 Beta

To get TypeScript 7.0 Beta, you can install it via npm:

npm install -D @typescript/native-preview@beta

Note: the package name will eventually be typescript in a future release.

From there, you can run tsgo in place of the tsc executable.

> npx tsgo --version
Version 7.0.0-beta

The tsgo executable has the same behavior on all TypeScript code as tsc from TypeScript 6.0 – just much faster.

To try out the editing experience, you can install the TypeScript Native Preview extension for VS Code. The editor support is rock-solid, and has been widely used by many teams for months now. It’s an easy low-friction way to try TypeScript 7.0 out on your codebase immediately. It uses the same foundation as the command line experience, so you get the same performance improvements in your editor as you do on the command line. Notably, it’s also built on the language server protocol, making it easy to run in most modern editors or even tools like Copilot CLI.

Running Side-by-Side with TypeScript 6.0

To help you transition from TypeScript 6.0 to TypeScript 7.0, this beta release is available through the @typescript/native-preview package name using the tsgo entry point. This enables easy validation and comparison between tsc and tsgo.

However, as we mentioned above, the stable release of TypeScript 7.0 will be published under the typescript package and will use the tsc entry point.

Additionally, even though 7.0 Beta is close to production-ready, we won’t have a stable programmatic API available until at least several months from now with TypeScript 7.1. Given this, we have made it a priority to ensure TypeScript can be run side-by-side with TypeScript 6.0 for the foreseeable future without any conflicts around “which tsc is which?”

As part of the 6.0/7.0 transition process, we’ve published a new compatibility package, @typescript/typescript6. This package exposes a new entry point tsc6, so that (if needed) you can run the next release of TypeScript 7.0 (which will provide a tsc binary) side-by-side without naming conflicts. It will also re-export the TypeScript 6.0 API, so that you can use tsc for TypeScript 7, while other tooling can continue to rely on 6.0.

Because some tools like typescript-eslint expect to import from typescript directly via peer dependencies, we recommend achieving this via npm aliases. You should be able to run the following command

npm install -D typescript@npm:@typescript/typescript6

or modify your package.json as follows:

{
  "devDependencies": {
    "typescript": "npm:@typescript/typescript6@^6.0.0",
  }
}

In the future we will have more specific guidance for using a TS7-powered tsc alongside a TS6-powered tsc6.

Parallelization and Controls

TypeScript 7.0 now performs many steps in parallel, including parsing, type-checking, and emitting. Some of these steps, like parsing and emitting can mostly be done independently across files. As such, parallelization automatically scales well with larger codebases with relatively little overhead. But not every step in a TypeScript build is easily parallelizable.

Checker Parallelization

Other steps, like type-checking, have more complex dependencies across files. Most files end up relying on the same type information from their dependencies and the global scope, and so running type-checkers completely independently would be wasteful – both in computation and memory. On the other hand, type-checking occasionally relies on the relative ordering of information in a program, and so type-checking from scratch must always check the same files in an identical order to ensure the same results.

To enable parallelization while avoiding these pitfalls, TypeScript 7.0 creates a fixed number of type-checker workers with their own view of the world. These type-checking workers may end up duplicating some common work, but given the same input files, they will always divide them identically and produce the same results.

The default number of type-checking workers is 4, but it can be configured with the new --checkers flag. You may find that increasing this number can further speed up builds on larger codebases where typical machines have more CPU cores, but will typically come at the cost of increased memory usage. Likewise, machines with fewer CPU cores (e.g. CI runners) may want to decrease this number to avoid unnecessary overhead.

In rare cases, varying the number of --checkers may surface order-dependent results. Specifying a fixed number of checkers across your team can help ensure everyone is getting the same results, but is up to the discretion of each team.

Project Reference Builder Parallelization

TypeScript 7.0 can parallelize builds within a project, but it can now also build multiple projects at once as well. This behavior can be configured with the new --builders flag, which controls the number of parallel project reference builders that can run at once. This can be particularly helpful for monorepos with many projects.

Like --checkers, increasing the number of builders can speed up builds, but may come at the cost of increased memory usage. It also has a multiplicative effect with --checkers, so it’s important to find the right balance for your machine and codebase. For example, building with --checkers 4 --builders 4 allows up to 16 type-checkers to run at once, which may be excessive.

Unlike --checkers, varying the number of builders should not produce different results; however, building project references is fundamentally bottlenecked by the dependency graph of projects (with the exception of type-checking on codebases that leverage --isolatedDeclarations and separate syntactic declaration file emit).

Single-Threaded Mode

In some cases, it can be helpful to enforce single-threaded operation throughout the compiler. This may be useful for debugging, comparing performance with TypeScript 6 and 7, when orchestrating parallel builds externally, or for running in environments with very limited resources. To enable single-threaded mode, you can use the new --singleThreaded flag. This will not only cap the number of type-checking workers to 1, but also ensure parsing and emitting are done in a single thread.

Updates Since 5.x, and New Behaviors from 6.0

TypeScript 7.0 is made to be compatible with TypeScript 6.0’s type-checking and command-line behavior. Any TypeScript code that compiles cleanly with TypeScript 6.0 (with the stableTypeOrdering flag on, and without the ignoreDeprecations flag set) should compile identically in TypeScript 7.0.

With that said, TypeScript 7.0 adopts 6.0’s new defaults, and provides hard errors in the face of any flags and constructs deprecated in TypeScript 6.0. This is notable as 6.0 is still relatively new, and many projects will need to adapt to its new behaviors. We encourage developers to adopt TypeScript 6.0 to make the transition to TypeScript 7.0 easier, and you can also read the TypeScript 6.0 release blog post for more details on these deprecations.

At a glance, the notable default changes to configuration are:

  • strict is true by default.
  • module defaults to esnext.
  • target defaults to the current stable ECMAScript version immediately preceding esnext.
  • noUncheckedSideEffectImports is true by default.
  • libReplacement is false by default.
  • stableTypeOrdering is true by default, and cannot be turned off.
  • rootDir now defaults to ./, and inner source directories must be explicitly set.
  • types now defaults to [], and the old behavior can be restored by setting it to ["*"].

We believe the rootDir and types changes may be the most “surprising” changes, but they can be mitigated easily. Projects where the tsconfig.json sits outside of a directory like src will simply need to include rootDir to preserve the same directory structure.

  {
      "compilerOptions": {
          // ...
+         "rootDir": "./src"
      },
      "include": ["./src"]
  }

For the types change, projects that depend on specific global declarations will need to list them explicitly. For example,

  {
      "compilerOptions": {
          // Explicitly list the @types packages you need (e.g. bun, mocha, jasmine, etc.)
+         "types": ["node", "jest"]
      }
  }

The deprecations that have turned into hard errors with no-op behavior are:

  • target: es5 is no longer supported.
  • downlevelIteration is no longer supported.
  • moduleResolution: node/node10 are no longer supported, with nodenext and bundler being recommended instead.
  • module: amd, umd, systemjs, none are no longer supported, with esnext or preserve being recommended in conjunction with bundlers or browser-based module resolution.
  • baseUrl is no longer supported, and paths can be updated to be relative to the project root instead of baseUrl.
  • moduleResolution: classic is no longer supported, and bundler or nodenext are the recommended replacements.
  • esModuleInterop and allowSyntheticDefaultImports cannot be set to false.
  • alwaysStrict is assumed to be true and can no longer be set to false
  • The module keyword cannot be used in namespace declarations.
  • The asserts keyword cannot be used on imports, and must use the with keyword instead (to align with developments on ECMAScript’s import attribute syntax).
  • /// <reference no-default-lib /> directives are no longer respected under skipDefaultLibCheck.
  • Command line builds cannot take file paths when the current directory contains a tsconfig.json file unless passed an explicit --ignoreConfig flag.

JavaScript Differences

As we ported the existing codebase, we also took the opportunity to revisit how our JavaScript support works.

TypeScript originally supported JavaScript files by using JSDoc comments and recognizing certain code patterns for analysis and type inference. Lots of the time, this was based on popular coding patterns, but occasionally it was based on whatever people might be writing that Closure and the JSDoc doc generating tool might understand. While this approach was helpful for developers with loosely-written JSDoc codebases, it required a number of compromises and special cases to work well, and diverged in a number of ways from TypeScript’s analysis in .ts files.

In TypeScript 7.0, we have reworked our JavaScript support to be more consistent with how we analyze TypeScript files. Some of the differences include:

  • Values cannot be used where types are expected – instead, write typeof someValue
  • @enum is not specially recognized anymore – create a @typedef on (typeof YourEnumDeclaration)[keyof typeof YourEnumDeclaration].
  • A standalone ? is no longer usable as a type – use any instead.
  • @class does not make a function a constructor – use a class declaration instead.
  • Postfix ! is not supported – just use T.
  • Type names must be defined within a @typedef tag (i.e. /** @typedef {T} TypeAliasName */), not adjacent to an identifier (i.e. /** @typedef {T} */ TypeAliasName;).
  • Closure-style function syntax (e.g. function(string): void) is no longer supported – use TypeScript shorthands instead (e.g. (s: string) => void).

Additionally, some JavaScript patterns, like aliasing this and reassigning the entirety of a function’s prototype are no longer specially treated.

While some of our JS support is in flux, we have been updating this CHANGES.md file to capture the differences between TypeScript 6.0 and 7.0 in more detail.

Editor Experience

TypeScript 7.0’s performance improvements are not limited to the command line experience – they also extend to the editor experience too. The TypeScript Native Preview extension for VS Code provides a seamless way to try out TypeScript 7.0 in your editor, and has seen widespread use.

Since it first debuted, we’ve added in missing functionality like auto-imports, expandable hovers, inlay hints, code lenses, go-to-source-definition, JSX linked editing and tag completions, and more. Additionally, we’ve rebuilt much of our testing and diagnostics infrastructure to make sure the quality bar is high.

This extension respects most of the same configuration settings as the built-in TypeScript extension for Visual Studio Code, along with most of the same features. While a few things are still coming (like semantics-enhanced highlighting, more-specific import management commands, etc.), the extension is already powerful, stable, and fast.

Upcoming Work

In the coming weeks, we expect to ship a more efficient implementation of --watch, and meet parity on declaration file emit from JavaScript files. We will also be working on minor editor feature gaps like “find file references” from the file explorer, and surfacing the more granular “sort imports” and “remove unused imports” commands instead of just the more general “organize imports” command.

Beyond this, we’ll be developing a stable programmatic API for TypeScript 7.1 or later, improving our real-world testing infrastructure, and addressing feedback.

The Road to TypeScript 7.0

With TypeScript 7.0 Beta now available, the team is focusing on bug fixes, compatibility work, editor polish, and performance improvements as we move toward a stable release. Our current plan is to release TypeScript 7.0 within the next two months, with a release candidate available a few weeks prior. The release candidate will be the point where we expect TypeScript 7’s behavior to be finalized, with changes after that focused on critical fixes to regressions.

Between now and then, we would especially appreciate feedback from trying TypeScript 7.0 on real projects. If you run into any issues, please let us know on the issue tracker for microsoft/typescript-go so we can make sure the stable release is in great shape.

We also encourage you to share your experience using TypeScript 7.0 and tag @typescriptlang.org on Bluesky or @typescript@fosstodon.org on Mastodon, or @typescript on Twitter.

Our team is incredibly excited for you to try this release out, so try it today and let us know what you think. Happy hacking!

– The TypeScript Team

The post Announcing TypeScript 7.0 Beta appeared first on TypeScript.

Read the whole story
emrox
12 hours ago
reply
Hamburg, Germany
alvinashcraft
1 day ago
reply
Pennsylvania, USA
Share this story
Delete

Drunk Post: Things I’ve Learned as a Senior Engineer

1 Share

A few years ago, a data engineer on r/ExperiencedDevs got drunk and wrote down everything he learned in 10 years of engineering. The original account is deleted, but the post captures something real — the kind of honesty you only get after a few glasses of wine. Preserving it here, typos and all.

Contains the language you’d expect from someone who opened with ‘I’m drunk’.

I’m drunk and I’ll probably regret this, but here’s a drunken rank of things I’ve learned as an engineer for the past 10 years.

  • The best way I’ve advanced my career is by changing companies.

  • Technology stacks don’t really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it’s not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don’t fret overit.

  • There’s a reason why people recommend job hunting. If I’m unsatisfied at a job, it’s probably time to move on.

  • I’ve made some good, lifelong friends at companies I’ve worked with. I don’t need to make that a requirement of every place I work. I’ve been perfectly happy working at places where I didn’t form friendships with my coworkers and I’ve been unhappy at places where I made some great friends.

  • I’ve learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What’s the worse that can happen? He fire me? I’ll just pick up a new job in 2 weeks.

  • If I’m awaken at 2am from being on-call for more than once pesr quarter, then something is seriously wrong and I will either fix it or quit.

pour another glass

  • Qualities of a good manager share a lot of qualities of a good engineer.

  • When I first started, I was enamored with technology and programming and computer science. I’m over it.

  • Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.

  • The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there’s any recommendations, I’d seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)

  • Related to above, writing good proposals for changes is a great skill.

  • Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn’t matter... except one. See below.

  • The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.

  • If I ever find myself thinking I’m the smartest person in the room, it’s time to leave.

  • I don’t know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there’s another framework out there that companies want to use? Seriously, why are webdevs paid so little.

  • We should hire more interns, they’re awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.

sip

  • Don’t meet your heroes. I paid 5k to take a course by one of my heroes. He’s a brilliant man, but at the end of it I realized that he’s making it up as he goes along like the rest of us.

  • Tech stack matters. OK I just said tech stack doesn’t matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That’s because certain tools are really good at certain jobs. If you’re not sure what you want to do, just do Java. It’s a shitty programming language that’s good at almost everything.

  • The greatest programming language ever is lisp. I should learn lisp.

  • For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.

  • Tests are important but TDD is a damn cult.

  • Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you’ll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there’s a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.

  • Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they’ve been a third party recruiter for more than 3 years, they’re probably bad. The good ones typically become recruiters are large companies.

  • Options are worthless or can make you a millionaire. They’re probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.

  • Work from home is the tits. But lack of whiteboarding sucks.

  • I’ve never worked at FAANG so I don’t know what I’m missing. But I’ve hired (and not hired) engineers from FAANGs and they don’t know what they’re doing either.

  • My self worth is not a function of or correlated with my total compensation. Capitalism is a poor way to determine self-worth.

  • Managers have less power than you think. Way less power. If you ever thing, why doesn’t Manager XYZ fire somebody, it’s because they can’t.

  • Titles mostly don’t matter. Principal Distinguished Staff Lead Engineer from Whatever Company, whatever. What did you do and what did you accomplish. That’s all people care about.

  • Speaking of titles: early in your career, title changes up are nice. Junior to Mid. Mid to Senior. Senior to Lead. Later in your career, title changes down are nice. That way, you can get the same compensation but then get an increase when you’re promoted. In other words, early in your career (<10 years), title changes UP are good because it lets you grow your skills and responsibilities. Later, title changes down are nice because it lets you grow your salary.

  • Max out our 401ks.

  • Be kind to everyone. Not because it’ll help your career (it will), but because being kind is rewarding by itself.

  • If I didn’t learn something from the junior engineer or intern this past month, I wasn’t paying attention.

Oops I’m out of wine.

  • Paying for classes, books, conferences is worth it. I’ve done a few conferences, a few 1.5k courses, many books, and a subscription. Worth it. This way, I can better pretend what I’m doing.

  • Seriously, why aren’t webdevs paid more? They know everything!!!

  • Carpal tunnel and back problems are no joke. Spend the 1k now on good equipment.

  • The smartest man I’ve every worked for was a Math PhD. I’ve learned so much from that guy. I hope he’s doing well.

  • Once, in high school, there was thing girl who was a great friend of mine. I mean we talked and hung out and shared a lot of personal stuff over a few years. Then there was a rumor that I liked her or that we were going out or whatever. She didn’t take that too well so she started to ignore me. That didn’t feel too good. I guess this would be the modern equivalent to “ghosting”. I don’t wish her any ill will though, and I hope she’s doing great. I’m sorry I didn’t handle that better.

  • I had a girlfriend in 8th grade that I didn’t want to break up with even though I didn’t like her anymore so I just started to ignore her. That was so fucked up. I’m sorry, Lena.

  • You know what the best part of being a software engineer is? You can meet and talk to people who think like you. Not necessarily the same interests like sports and TV shows and stuff. But they think about problems the same way you think of them. That’s pretty cool.

  • There’s not enough women in technology. What a fucked up industry. That needs to change. I’ve been trying to be more encouraging and helpful to the women engineers in our org, but I don’t know what else to do.

  • Same with black engineers. What the hell?

  • I’ve never really started hating a language or technology until I started becoming intimately familiar with it. Also, I think a piece of tech is good if I hate it but I simultaneously would recommend it to a client. Fuck Jenkins but man I don’t think I would be commuting software malpractice by recommending it to a new client.

  • That being said, git is awful and I have choice but to use it. Also, GUI git tools can go to hell, give me the command line any day. There’s like 7 command lines to memorize, everything else can be googled.

  • Since I work in data, I’m going to give a data-specific lessons learned. Fuck pandas.

  • My job is easier because I have semi-technical analysts on my team. Semi-technical because they know programming but not software engineering. This is a blessing because if something doesn’t make sense to them, it means that it was probably badly designed. I love the analysts on the team; they’ve helped me grow so much more than the most brilliant engineers.

  • Dark mode is great until you’re forced to use light mode (webpage or an unsupported app). That’s why I use light mode.

  • I know enough about security to know that I don’t know shit about security.

Crap I’m out of wine.

  • Being a good engineer means knowing best practices. Being a senior engineer means knowing when to break best practices.

  • If people are trying to assign blame to a bug or outage, it’s time to move on.

  • A lot of progressive companies, especially startups, talk about bringing your “authentic self”. Well what if your authentic self is all about watching porn? Yeah, it’s healthy to keep a barrier between your work and personal life.

  • I love drinking with my co-workers during happy hour. I’d rather spend time with kids, family, or friends.

  • The best demonstration of great leadership is when my leader took the fall for a mistake that was 100% my fault. You better believe I would’ve walked over fire for her.

  • On the same token, the best leaders I’ve been privileged to work under did their best to both advocate for my opinions and also explain to me other opinions that conflict with mine. I’m working hard to be like them.

  • Fuck side projects. If you love doing them, great! Even if I had the time to do side-projects, I’m too damn busy writing drunken posts on reddit

  • Algorithms and data strictures are important — to a point. I don’t see pharmacist interviews test trivia about organic chemistry. There’s something fucked with our industry’s interview process.

  • Damn, those devops guys and gals are f’ing smart. At least those mofos get paid though.

  • It’s not important to do what I like. It’s more important to do what I don’t hate.

  • The closer I am to the product, the closer I am to driving revnue, the more I feel valued regardless of how technical my work is. This has been true for even the most progressive companies.

  • Linux is important even when I was working in all Windows. Why? Because I eventually worked in Linux. So happy for those weekend where I screwed around installing Arch.

  • I’ve learned to be wary for ambiguous buzz words like big data. WTF is “big” data? I’ve dealt with 10k rows streaming every 10 minutes in Spark and Kafka and dealt with 1B rows batched up hourly in Python and MySQL. Those labels can go fuck themselves.

  • Not all great jobs are in Silicon Valley. But a lot are.

Oh shit I found beer: let’s keeping going.

  • I once hated a programming language (C#) until I started using it. Now I hated it but think it’s useful.

  • Then I started hating a programming language (C#) and left it and came back. Wow, that programming language has really improved.

  • The greatest thing about functional languages is that functions are first class and all other programmers know that.

  • No matter how great or superior a language is, it doesn’t matter if people don’t use it.

  • Learning a language isn’t hard. It’s learning the ecosystem.

  • Pair programming is great, it just takes a lot of time — time that the company usually doesn’t want to spend.

  • Working with smart engineers has made me a better coder. Working with smart non-technical co-workers has made me a better engineer.

  • Don’t spend time outside of the 9-5 working. Unless you want to because you got a banging project and you’re in the groove. That shit is awesome.

  • Happy hours and social hours across teams are 99% just chilling and getting to know coworkers. That’s cool. Every once in a while, the 1% is about a critical project with a critical piece of code and you’re glad you brought up work in a social setting because shit would’ve hit the fan otherwise. I’m not saying that I should hang out with other teams outside of work because of this. I just want to bond. But it sure as hell is a nice perk.

  • If the company is half remote and half on-site, it’s important to determine if the remote people aren’t treated as second-class citizens. If major decisions are made “at the water cooler”, then it’s better to try to change the company culture (hard) or move on to a different company that treats its remote employees as first class citizens.

  • The second worst major downside of working from home is no whiteboard.

  • The first major downside of working from home is that it’s hard to learn from coworkers. Unless I’m (a) confident and assertive to ask questions and (b) the company has a culture where remote workers are equivelent to on-site workers, I think it was best that I worked on-side for the first 5 years of my career.

  • Everyone knows that tech changes. The tech landscape of the past 10 years has changed dramatically. But fundamentals don’t change very much, especially fundamentals that apply to my field.

  • Hacker news and r/programming is only good to get general ideas and keep up-to-date. The comments are almost worthless.

  • There’s a lot of vocal amateurs with strong opinions about technology. Even amateurs published on “respectable” journals and blogs. I found it to keep abreast of the rumors but to figure things out for myself.

  • I work at a cutting edge startup and we don’t use the latest XYZ tech that was present at ABC cutting edge tech company. And it turn out, what they usually present is only a small percentage of their engineering department and that most of them are using the same tech we are.

  • That being said, it’s important to read the signs. If you want to work with modern tech and you’re company is still doing the majority of it’s development in jQuery, might be time to re-evauluate.

  • Fuck it I’m a data engineer so I might as well give more specific, target advice/experience

  • SQL is king. Databases like MySQL, Postgres, Oracle, SQL Server, SQLite is still supreme. Even if you work with new tech, most of it transfers anyway.

  • Most companies aren’t doing streaming. It’s hard and complicated. If you’re 10 years into your career and you don’t know how to work with 10k records per second, don’t worry about it, there’s still jobs out for you.

  • Airflow is shit, yes. There are other products out there, but fuck me if Airflow isn’t the most widely used.

  • Machine learning projects are highly prone to failure. They’re complicated and hard to implement. Don’t believe me? How easy is it to write fucking unit test a machine learning model? Yeah.

  • Our field is new. There’s no good book on data engineering, just go and “do it”. Can’t learn it through a bootcamp and shit. This will probably change in 10 years as we all figure out what the fuck we’re doing.

  • People die. Do you want your code to be your legacy? If yes, then spend a lot of time on it because that’s your fucking legacy and you go! But if you are like me, your legacy is surrounded with family, friends, and people in your life and not the code you write. So don’t get too hung up on it.

  • Good people write shitty code. Smart people write shitty code. Good coders and good engineers write shitty code. Don’t let code quality be a dependent variable on your self worth.

  • I got into tech and coding because tech was my hobby. Now my hobby is is the same as work and work has ruined my hobby. So now if I want to enjoy tech I need to quit my hobby. Or I need to be OK that tech is no longer my hobby and find new hobbies.

  • Programming and computer science is like, what, 80 years old? Compare that with any other engineering discipline. Yeah, we collectively don’t know what the fuck we’re doing.

  • I’m making pretty good money. Be grateful and appreciate. Also, save.

  • I’ve built large platforms and libraries that are used by multiple teams and people for many years. Yet for some reason, the most proud I was of the code I wrote was the small script that was used by me.

  • The proudest accomplishment of my career has been helping other people be better at their jobs. That’s probably because I’m destined to be a people manager, so this is probably not helpful to other people.

  • When I was looking for a job, I created an updated my Linkedin. I got shit replies and deleted it. Now I use Linkedin to find other candidates to join my company. Bottom line, Linkedin is a lot of noise. I only find it valuable because now, part of my job is contributing to that noise.

  • Once, I found out in college that a girl liked me. I didn’t believe it because I had poor self esteem, but then she asked me out. I told her I wasn’t interested even though she was really cool. That was one of the proudest moments in my life because I as mature enough at 19 to say “no” in a mature way.

  • r/cscareerquestions is such a cesspool of ego and misinformation that I don’t know what to do about it. Like, WTF. I want to shake all those people and try to explain to them how the world really is, but they wouldn’t believe me.

  • I’m drunk and I usually don’t drink, so I would think that everything I say is probably cringy or terrible

  • I feel strongly that people should save and invest money. If you have a 6 figure salary, do your best to max our your 401k please.

  • I’ve become what I’ve always hated: someone who works in tech in a career but avoid tech in real life. Maybe that comes with being old.

  • r/ExperiencedDevs is a pretty cool community. Thank you mods. You get way less appreciation than you deserve. Seriously, thank you.

  • I probably owe my career, my salary, my life to Reddit. Reddit gets a lot of shit but the communities here have lifted me out of poverty (working at a gas station earning min wage) to learning Linux, SQL, python, C#, Python, and others to get me where I am.

  • Kids are great. I don’t have kids by choice. Why? Because I love kids and I’m scared about what kind of father I would be. Oh shit, is that too personal for a post here?

  • Once, someone asked me who I looked up to and I said Conan O’Brien, and they laughed at me. But I was being serous because on his last show on the Tonight Show, he told his audience to be kind and work hard. It happend during a difficult period of my life, and when I watched him say that, I said, you know what, I’m going to do just that. Because what would I have to lose? And you know what? I’ve met some brilliant people who I’ve learned from over 10+ years because I was kind to them. And I’ve grown a lot by working hard and not being afraid to try new things. And my life is infinitely, infinitely better because of those words. So yes, it might seem silly and even ridiculous to say that I’ve achieved a level of fulfillment in my life because of a late night talk show. But you know what, fuck it, it’s my life and I will proudly say that I owe any success I’ve achieved because a fucking comic on late night television.

I’m highly intoxicated so please disregard anything I say. Also apologies for ranting.

I saved this because it’s one of the most honest things I’ve read about our industry. As a data engineer with 10+ years in, I agree with almost all of it — especially the parts about SQL being king, tech stacks not mattering as much as you think, and the best code being no code at all. The only thing I’d push back on is the dynamic languages take. But hey, the man was drunk.

Read the whole story
emrox
14 hours ago
reply
Hamburg, Germany
Share this story
Delete

The Bag of Tricks for View Transitions

1 Share

The vtbag logo

Your browser does not support view transitions. For details visit the test page.

We honor your request for reduced motion. View transitions are switched off on this site.

Spark up a discussion on the Bag’s Discord or on 🦋 Bluesky! Hit the Discuss on 🦋 buttons to share your thoughts and please stay connected with The Bag and me for all the latest!

The Basics

Everything you ever wanted to know about the View Transition API, in one place. Explore what your browser is capable of and what is new in the API specification.

Dive into examples and see what holds the world of pseudo elements and their styling together at its core.

Tools & Libraries

As you dig deeper into View Transitions, you will quickly see how a little JavaScript here and there can unlock much more and make things even more fun.

You do not have to build everything yourself. The Bag provides battle tested libraries and tools that make working with View Transitions easier, more enjoyable, and practical for real projects.

Fun with View Transitions

A journey told in episodes, starting with simple use cases and moving toward more advanced applications.

Along the way, it covers basic setup, image morphing, fixing broken text transitions, and extended same page examples.

Tips & Tricks

What would a bag of tricks be without a few tips and tricks along the way? Everything here comes straight from real world practice, built for real world use.

I have stumbled through the rough edges, chased down the weird bugs, and made all the mistakes already, so you do not have to.

Tech Demos

Last but not least, it is all about “show, don’t tell”. New techniques are always easier to grasp when you can see them in action instead of just reading about them.

The Tech Demos section at the end of the navigation links to all the examples, and there are, if I may say so with a bit of modesty, a few real gems in there.

Read the whole story
emrox
1 day ago
reply
Hamburg, Germany
Share this story
Delete

Fructose: metabolic signal and modern hazard

1 Share
  • Malik, V. S. & Hu, F. B. The role of sugar-sweetened beverages in the global epidemics of obesity and chronic diseases. Nat. Rev. Endocrinol. 18, 205–218 (2022).

    Article  PubMed  PubMed Central  Google Scholar 

  • World Health Organization. Guideline: sugars intake for adults and children. WHO https://www.who.int/publications/i/item/9789241549028 (2015).

  • Yang, Q. et al. Added sugar intake and cardiovascular diseases mortality among US adults. JAMA Intern. Med. 174, 516–524 (2014).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Russell, C., Baker, P., Grimes, C., Lindberg, R. & Lawrence, M. A. Global trends in added sugars and non-nutritive sweetener use in the packaged food supply: drivers and implications for public health. Public Health Nutr. 26, 952–964 (2023).

    Article  PubMed  Google Scholar 

  • Magkos, F. et al. On the pathogenesis of obesity: causal models and missing pieces of the puzzle. Nat. Metab. 6, 1856–1865 (2024).

    Article  PubMed  Google Scholar 

  • Herman, M. A. & Birnbaum, M. J. Molecular aspects of fructose metabolism and metabolic disease. Cell Metab. 33, 2329–2354 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Woods, H. F. & Krebs, H. A. Lactate production in the perfused rat liver. Biochem. J. 125, 129–139 (1971).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Johnson, R. J. et al. The fructose survival hypothesis for obesity. Philos. Trans. R. Soc. Lond. B. Biol. Sci. 378, 20220230 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Diggle, C. P. et al. Ketohexokinase: expression and localization of the principal fructose-metabolizing enzyme. J. Histochem. Cytochem. 57, 763–774 (2009).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Li, Y. et al. Ketohexokinase-dependent metabolism of cerebral endogenous fructose in microglia drives diabetes-associated cognitive dysfunction. Exp. Mol. Med. 55, 2417–2432 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Helsley, R. N. et al. Tissue-specific fructose metabolism in obesity and diabetes. Curr. Diab. Rep. 20, 64 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Maenpaa, P. H., Raivio, K. O. & Kekomaki, M. P. Liver adenine nucleotides: fructose-induced depletion and its effect on protein synthesis. Science 161, 1253–1254 (1968).

    Article  CAS  PubMed  Google Scholar 

  • van den Berghe, G., Bronfman, M., Vanneste, R. & Hers, H. G. The mechanism of adenosine triphosphate depletion in the liver after a load of fructose. A kinetic study of liver adenylate deaminase. Biochem. J. 162, 601–609 (1977).

    Article  PubMed  PubMed Central  Google Scholar 

  • Bawden, S. J. et al. Investigating the effects of an oral fructose challenge on hepatic ATP reserves in healthy volunteers: a (31)P MRS study. Clin. Nutr. 35, 645–649 (2016).

    Article  CAS  PubMed  Google Scholar 

  • Abdelmalek, M. F. et al. Higher dietary fructose is associated with impaired hepatic adenosine triphosphate homeostasis in obese individuals with type 2 diabetes. Hepatology 56, 952–960 (2012).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Bode, J. C., Zelder, O., Rumpelt, H. J. & Wittkamp, U. Depletion of liver adenosine phosphates and metabolic effects of intravenous infusion of fructose or sorbitol in man and in the rat. Eur. J. Clin. Invest. 3, 436–441 (1973).

    Article  CAS  PubMed  Google Scholar 

  • Samarah, L. Z. et al. Spatial metabolic gradients in the liver and small intestine. Nature 648, 182–190 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Van den Berghe, G. Fructose: metabolism and short-term effects on carbohydrate and purine metabolic pathways. Prog. Biochem. Pharmacol. 21, 1–32 (1986).

    PubMed  Google Scholar 

  • Petrie, J. L. et al. The rate of production of uric acid by hepatocytes is a sensitive index of compromised cell ATP homeostasis. Am. J. Physiol. Endocrinol. Metab. 305, E1255–E1265 (2013).

    Article  CAS  PubMed  Google Scholar 

  • Cox, C. L. et al. Consumption of fructose- but not glucose-sweetened beverages for 10 weeks increases circulating concentrations of uric acid, retinol binding protein-4, and gamma-glutamyl transferase activity in overweight/obese humans. Nutr. Metab. 9, 68 (2012).

    Article  CAS  Google Scholar 

  • Zhang, P. et al. Dietary intake of fructose increases purine de novo synthesis: a crucial mechanism for hyperuricemia. Front. Nutr. 9, 1045805 (2022).

    Article  PubMed  PubMed Central  Google Scholar 

  • Evans, P. R., Farrants, G. W. & Hudson, P. J. Phosphofructokinase: structure and control. Philos. Trans. R. Soc. Lond. B. Biol. Sci. 293, 53–62 (1981).

    Article  CAS  PubMed  Google Scholar 

  • Sun, S. Z. & Empie, M. W. Fructose metabolism in humans - what isotopic tracer studies tell us. Nutr. Metab. 9, 89 (2012).

    Article  Google Scholar 

  • Woods, H. F., Eggleston, L. V. & Krebs, H. A. The cause of hepatic accumulation of fructose 1-phosphate on fructose loading. Biochem. J. 119, 501–510 (1970).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Topping, D. L. & Mayes, P. A. Comparative effects of fructose and glucose on the lipid and carbohydrate metabolism of perfused rat liver. Br. J. Nutr. 36, 113–126 (1976).

    Article  CAS  PubMed  Google Scholar 

  • Delannoy, P. et al. Aldose reductase, fructose and fat production in the liver. Biochem J. 482, 295–307 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Liu, L. et al. Triose kinase controls the lipogenic potential of fructose and dietary tolerance. Cell Metab. 32, 605–618 (2020).

    Article  CAS  PubMed  Google Scholar 

  • Kim, M. et al. Intestinal, but not hepatic, ChREBP is required for fructose tolerance. JCI Insight 2, e96703 (2017).

    Article  PubMed  PubMed Central  Google Scholar 

  • Kim, M. S. et al. ChREBP regulates fructose-induced glucose production independently of insulin signaling. J. Clin. Invest. 126, 4372–4386 (2016).

    Article  PubMed  PubMed Central  Google Scholar 

  • An, J. et al. Integration of metabolomic and transcriptomic analyses reveals regulatory functions of the ChREBP transcription factor in energy metabolism. Cell Rep. 44, 115278 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Kabashima, T., Kawaguchi, T., Wadzinski, B. E. & Uyeda, K. Xylulose 5-phosphate mediates glucose-induced lipogenesis by xylulose 5-phosphate-activated protein phosphatase in rat liver. Proc. Natl Acad. Sci. USA 100, 5107–5112 (2003).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Lanaspa, M. A. et al. Uric acid stimulates fructokinase and accelerates fructose metabolism in the development of fatty liver. PLoS ONE 7, e47948 (2012).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Softic, S. et al. Divergent effects of glucose and fructose on hepatic lipogenesis and insulin signaling. J. Clin. Invest. 127, 4059–4074 (2017).

    Article  PubMed  PubMed Central  Google Scholar 

  • Beysen, C. et al. Dose-dependent quantitative effects of acute fructose administration on hepatic de novo lipogenesis in healthy humans. Am. J. Physiol. Endocrinol. Metab. 315, E126–E132 (2018).

    Article  CAS  PubMed  Google Scholar 

  • Stanhope, K. L. et al. Consuming fructose-sweetened, not glucose-sweetened, beverages increases visceral adiposity and lipids and decreases insulin sensitivity in overweight/obese humans. J. Clin. Invest. 119, 1322–1334 (2009).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Taskinen, M. R. et al. Adverse effects of fructose on cardiometabolic risk factors and hepatic lipid metabolism in subjects with abdominal obesity. J. Intern. Med. 282, 187–201 (2017).

    Article  CAS  PubMed  Google Scholar 

  • Cox, C. L. et al. Consumption of fructose-sweetened beverages for 10 weeks reduces net fat oxidation and energy expenditure in overweight/obese men and women. Eur. J. Clin. Nutr. 66, 201–208 (2012).

    Article  CAS  PubMed  Google Scholar 

  • Chong, M. F., Fielding, B. A. & Frayn, K. N. Mechanisms for the acute effect of fructose on postprandial lipemia. Am. J. Clin. Nutr. 85, 1511–1520 (2007).

    Article  CAS  PubMed  Google Scholar 

  • Softic, S. et al. Dietary sugars alter hepatic fatty acid oxidation via transcriptional and post-translational modifications of mitochondrial proteins. Cell Metab. 30, 735–753 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Lanaspa, M. A. et al. Uric acid induces hepatic steatosis by generation of mitochondrial oxidative stress: potential role in fructose-dependent and -independent fatty liver. J. Biol. Chem. 287, 40732–40744 (2012).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Zhao, S. et al. Dietary fructose feeds hepatic lipogenesis via microbiota-derived acetate. Nature 579, 586–591 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Tharabenjasin, P. et al. Acute interactions between intestinal sugar and calcium transport in vitro. Am. J. Physiol. Gastrointest. Liver Physiol. 306, G1–G12 (2014).

    Article  CAS  PubMed  Google Scholar 

  • Johnson, R. J. et al. Fructokinase, fructans, intestinal permeability, and metabolic syndrome: an equine connection? J. Equine Vet. Sci. 33, 120–126 (2013).

    Article  PubMed  PubMed Central  Google Scholar 

  • Todoric, J. et al. Fructose stimulated de novo lipogenesis is promoted by inflammation. Nat. Metab. 2, 1034–1045 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Bergheim, I. et al. Antibiotics protect against fructose-induced hepatic lipid accumulation in mice: role of endotoxin. J. Hepatol. 48, 983–992 (2008).

    Article  CAS  PubMed  Google Scholar 

  • Stanhope, K. L. et al. Consumption of fructose and high fructose corn syrup increase postprandial triglycerides, LDL-cholesterol, and apolipoprotein-B in young men and women. J. Clin. Endocrinol. Metab. 96, E1596–E1605 (2011).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Fowle-Grider, R. et al. Dietary fructose enhances tumour growth indirectly via interorgan lipid transfer. Nature 636, 737–744 (2024).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Taylor, S. R. et al. Dietary fructose improves intestinal cell survival and nutrient absorption. Nature 597, 263–267 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Hirano, T., Mamo, J., Poapst, M. & Steiner, G. Very-low-density lipoprotein triglyceride kinetics in acute and chronic carbohydrate-fed rats. Am. J. Physiol. 255, E236–E240 (1988).

    CAS  PubMed  Google Scholar 

  • Hieronimus, B. & Stanhope, K. L. Dietary fructose and dyslipidemia: new mechanisms involving apolipoprotein CIII. Curr. Opin. Lipidol. 31, 20–26 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Crescenzo, R. et al. Increased hepatic de novo lipogenesis and mitochondrial efficiency in a model of obesity induced by diets rich in fructose. Eur. J. Nutr. 52, 537–545 (2013).

    Article  CAS  PubMed  Google Scholar 

  • Hieronimus, B. et al. Effects of consuming beverages sweetened with fructose, glucose, high-fructose corn syrup, sucrose, or aspartame on OGTT-derived indices of insulin sensitivity in young adults. Nutrients 16, 151 (2024).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Aeberli, I. et al. Moderate amounts of fructose consumption impair insulin sensitivity in healthy young men: a randomized controlled trial. Diabetes Care 36, 150–156 (2013).

    Article  CAS  PubMed  Google Scholar 

  • Baena, M. et al. Fructose, but not glucose, impairs insulin signaling in the three major insulin-sensitive tissues. Sci. Rep. 6, 26149 (2016).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Li, P. et al. A high-fructose diet impairs Akt and PKCzeta phosphorylation and GLUT4 translocation in rat skeletal muscle. Horm. Metab. Res. 40, 528–532 (2008).

    Article  CAS  PubMed  Google Scholar 

  • Rai, A. K. et al. Fructose-induced AGEs-RAGE signaling in skeletal muscle contributes to impairment of glucose homeostasis. J. Nutr. Biochem. 71, 35–44 (2019).

    Article  CAS  PubMed  Google Scholar 

  • Marek, G. et al. Adiponectin resistance and proinflammatory changes in the visceral adipose tissue induced by fructose consumption via ketohexokinase-dependent pathway. Diabetes 64, 508–518 (2015).

    Article  CAS  PubMed  Google Scholar 

  • Andres-Hernando, A. et al. Deletion of fructokinase in the liver or in the intestine reveals differential effects on sugar-induced metabolic dysfunction. Cell Metab. 32, 117–127 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Seyssel, K. et al. Fructose overfeeding in first-degree relatives of type 2 diabetic patients impacts energy metabolism and mitochondrial functions in skeletal muscle. Mol. Nutr. Food Res. 60, 2691–2699 (2016).

    Article  CAS  PubMed  Google Scholar 

  • Schwarz, J. M. et al. Effect of a high-fructose weight-maintaining diet on lipogenesis and liver fat. J. Clin. Endocrinol. Metab. 100, 2434–2442 (2015).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Agrawal, R. et al. Dietary fructose aggravates the pathobiology of traumatic brain injury by influencing energy homeostasis and plasticity. J. Cereb. Blood Flow Metab. 36, 941–953 (2016).

    Article  CAS  PubMed  Google Scholar 

  • Garcia-Arroyo, F. E. et al. Allopurinol prevents the lipogenic response induced by an acute oral fructose challenge in short-term fructose fed rats. Biomolecules 9, 601 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Choi, Y. J. et al. Uric acid induces fat accumulation via generation of endoplasmic reticulum stress and SREBP-1c activation in hepatocytes. Lab Invest. 94, 1114–1125 (2014).

    Article  CAS  PubMed  Google Scholar 

  • Sanchez-Lozada, L. G. et al. Uric acid activates aldose reductase and the polyol pathway for endogenous fructose and fat production causing development of fatty liver in rats. J. Biol. Chem. 294, 4272–4281 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Cicerchi, C. et al. Uric acid-dependent inhibition of AMP kinase induces hepatic glucose production in diabetes and starvation: evolutionary implications of the uricase loss in hominids. FASEB J. 28, 3339–3350 (2014).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Kang, D. H., Park, S. K., Lee, I. K. & Johnson, R. J. Uric acid-induced C-reactive protein expression: implication on cell proliferation and nitric oxide production of human vascular cells. J. Am. Soc. Nephrol. 16, 3553–3562 (2005).

    Article  CAS  PubMed  Google Scholar 

  • Crescenzo, R. et al. Increased skeletal muscle mitochondrial efficiency in rats with fructose-induced alteration in glucose tolerance. Br. J. Nutr. 110, 1996–2003 (2013).

    Article  CAS  PubMed  Google Scholar 

  • Garcia-Berumen, C. I. et al. The severity of rat liver injury by fructose and high fat depends on the degree of respiratory dysfunction and oxidative stress induced in mitochondria. Lipids Health Dis. 18, 78 (2019).

    Article  PubMed  PubMed Central  Google Scholar 

  • Cioffi, F. et al. Fructose-rich diet affects mitochondrial DNA damage and repair in rats. Nutrients 9, 323 (2017).

    Article  PubMed  PubMed Central  Google Scholar 

  • Hernandez-Rios, R. et al. Low fructose and low salt diets increase mitochondrial DNA in white blood cells of overweight subjects. Exp. Clin. Endocrinol. Diabetes 121, 535–538 (2013).

    Article  CAS  PubMed  Google Scholar 

  • Wolf, J. P., Nguyen, N. U., Dumoulin, G. & Berthelay, S. Influence of hypertonic monosaccharide infusions on the release of plasma arginine vasopressin in normal humans. Horm. Metab. Res. 24, 379–383 (1992).

    Article  CAS  PubMed  Google Scholar 

  • Andres-Hernando, A. et al. Vasopressin mediates fructose-induced metabolic syndrome by activating the V1b receptor. JCI Insight 6, e140848 (2021).

    Article  PubMed  PubMed Central  Google Scholar 

  • Kanbay, M. et al. The speed of ingestion of a sugary beverage has an effect on the acute metabolic response to fructose. Nutrients 13, 1916 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Enhorning, S. et al. Plasma copeptin, a unifying factor behind the metabolic syndrome. J. Clin. Endocrinol. Metab. 96, E1065–E1072 (2011).

    Article  PubMed  Google Scholar 

  • Sigala, D. M. et al. Consuming sucrose- or HFCS-sweetened beverages increases hepatic lipid and decreases insulin sensitivity in adults. J. Clin. Endocrinol. Metab. 106, 3248–3264 (2021).

    Article  PubMed  PubMed Central  Google Scholar 

  • Jang, C. et al. The small intestine converts dietary fructose into glucose and organic acids. Cell Metab. 27, 351–361 (2018).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Ushijima, K., Riby, J. E., Fujisawa, T. & Kretchmer, N. Absorption of fructose by isolated small intestine of rats is via a specific saturable carrier in the absence of glucose and by the disaccharidase-related transport system in the presence of glucose. J. Nutr. 125, 2156–2164 (1995).

    Article  CAS  PubMed  Google Scholar 

  • Roncal-Jimenez, C. A. et al. Sucrose induces fatty liver and pancreatic inflammation in male breeder rats independent of excess energy intake. Metabolism 60, 1259–1270 (2011).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Socha-Banasiak, A. et al. Intestinal fructose transporters GLUT5 and GLUT2 in children and adolescents with obesity and metabolic disorders. Adv. Med. Sci. 69, 349–355 (2024).

    Article  CAS  PubMed  Google Scholar 

  • Sundborn, G. et al. Are liquid sugars different from solid sugar in their ability to cause metabolic syndrome? Obesity 27, 879–887 (2019).

    Article  CAS  PubMed  Google Scholar 

  • Gonzalez, J. T. Are all sugars equal? Role of the food source in physiological responses to sugars with an emphasis on fruit and fruit juice. Eur. J. Nutr. 63, 1435–1451 (2024).

    Article  PubMed  PubMed Central  Google Scholar 

  • Jung, S. et al. Dietary fibre-adapted gut microbiome clears dietary fructose and reverses hepatic steatosis. Nat. Metab. 7, 1801–1818 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Francey, C. et al. The extra-splanchnic fructose escape after ingestion of a fructose-glucose drink: an exploratory study in healthy humans using a dual fructose isotope method. Clin. Nutr. ESPEN 29, 125–132 (2019).

    Article  PubMed  Google Scholar 

  • Jones, N. et al. Fructose reprogrammes glutamine-dependent oxidative metabolism to support LPS-induced inflammation. Nat. Commun. 12, 1209 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Song, Z. et al. Role of fructose and fructokinase in acute dehydration-induced vasopressin gene expression and secretion in mice. J. Neurophysiol. 117, 646–654 (2017).

    Article  CAS  PubMed  Google Scholar 

  • Staltner, R. et al. Fructose intake enhances lipoteichoic acid-mediated immune response in monocytes of healthy humans. Redox Biol. 85, 103729 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Nakagawa, T. et al. Fructose might be a clue to the origin of preeclampsia insights from nature and evolution. Hypertens. Res. 46, 646–653 (2023).

    Article  CAS  PubMed  Google Scholar 

  • Jones, A. R. & Connor, D. E. Fructose metabolism by mature boar spermatozoa. Reprod. Fertil. Dev. 12, 355–359 (2000).

    Article  CAS  PubMed  Google Scholar 

  • Lanaspa, M. A. et al. High salt intake causes leptin resistance and obesity in mice by stimulating endogenous fructose production and metabolism. Proc. Natl Acad. Sci. USA 115, 3138–3143 (2018).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Wang, M. et al. Elevated fructose and uric acid through aldose reductase contribute to experimental and human alcoholic liver disease. Hepatology 72, 1617–1637 (2020).

    Article  CAS  PubMed  Google Scholar 

  • Mirtschink, P. & Krek, W. Hypoxia-driven glycolytic and fructolytic metabolic programs: pivotal to hypertrophic heart disease. Biochim. Biophys. Acta 1863, 1822–1828 (2016).

    Article  CAS  PubMed  Google Scholar 

  • Kanbay, M. et al. Responses to hypoxia: how fructose metabolism and hypoxia-inducible factor-1a pathways converge in health and disease. Curr. Nutr. Rep. 12, 181–190 (2023).

    Article  PubMed  Google Scholar 

  • Andres-Hernando, A. et al. Protective role of fructokinase blockade in the pathogenesis of acute kidney injury in mice. Nat. Commun. 8, 14181 (2017).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Mirtschink, P. et al. HIF-driven SF3B1 induces KHK-C to enforce fructolysis and heart disease. Nature 522, 444–449 (2015).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Shepherd, E. L. et al. Ketohexokinase inhibition improves NASH by reducing fructose-induced steatosis and fibrogenesis. JHEP Rep. 3, 100217 (2021).

    Article  PubMed  Google Scholar 

  • Wang, S. et al. Acute heat stress upregulates Akr1b3 through Nrf-2 to increase endogenous fructose leading to kidney injury. J. Biol. Chem. 301, 108121 (2025).

    Article  CAS  PubMed  Google Scholar 

  • van Zuylen, M. L. et al. Perioperative cerebrospinal fluid sorbitol and fructose concentrations in patients undergoing thoracic aortic surgery. Br. J. Anaesth. 129, e73–e76 (2022).

    Article  PubMed  Google Scholar 

  • Hwang, J. J. et al. Fructose levels are markedly elevated in cerebrospinal fluid compared to plasma in pregnant women. PLoS ONE 10, e0128582 (2015).

    Article  PubMed  PubMed Central  Google Scholar 

  • Lanaspa, M. A. et al. Endogenous fructose production and metabolism in the liver contributes to the development of metabolic syndrome. Nat. Commun. 4, 2434 (2013).

    Article  PubMed  PubMed Central  Google Scholar 

  • Andres-Hernando, A. et al. Identification of a common ketohexokinase-dependent link driving alcohol intake and alcohol-associated liver disease in mice. Nat. Metab. 7, 2250–2267 (2025).

  • Lanaspa, M. A. et al. Endogenous fructose production and fructokinase activation mediate renal injury in diabetic nephropathy. J. Am. Soc. Nephrol. 25, 2526–2538 (2014).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Roncal Jimenez, C. A. et al. Fructokinase activity mediates dehydration-induced renal injury. Kidney Int. 86, 294–302 (2014).

    Article  CAS  PubMed  Google Scholar 

  • Park, T. J. et al. Fructose-driven glycolysis supports anoxia resistance in the naked mole-rat. Science 356, 307–311 (2017).

    Article  CAS  PubMed  Google Scholar 

  • Hwang, J. J. et al. The human brain produces fructose from glucose. JCI Insight 2, e90508 (2017).

    Article  PubMed  PubMed Central  Google Scholar 

  • Prockop, L. D. Hyperglycemia, polyol accumulation, and increased intracranial pressure. Arch. Neurol. 25, 126–140 (1971).

    Article  CAS  PubMed  Google Scholar 

  • Regenold, W. T. et al. Relationship of cerebrospinal fluid glucose metabolites to MRI deep white matter hyperintensities and treatment resistance in bipolar disorder patients. Bipolar Disord. 10, 753–764 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Regenold, W. T., Phatak, P., Makley, M. J., Stone, R. D. & Kling, M. A. Cerebrospinal fluid evidence of increased extra-mitochondrial glucose metabolism implicates mitochondrial dysfunction in multiple sclerosis disease progression. J. Neurol. Sci. 275, 106–112 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Smith, S. L., Novotny, M. & Karmen, A. Elevation of certain polyols in the cerebrospinal fluid of patients with multiple sclerosis. J. Chromatogr. 336, 351–355 (1984).

    Article  CAS  PubMed  Google Scholar 

  • Tigchelaar, C. et al. Elevated cerebrospinal fluid glucose levels and diabetes mellitus are associated with activation of the neurotoxic polyol pathway. Diabetologia 65, 1098–1107 (2022).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Watanabe, S., Kamiyama, J., Chigasaki, H. & Yoshioka, S. Polyol content of cerebrospinal fluid in brain-tumor patients. J. Neurosurg. 70, 183–189 (1989).

    Article  CAS  PubMed  Google Scholar 

  • Xu, J. et al. Elevation of brain glucose and polyol-pathway intermediates with accompanying brain-copper deficiency in patients with Alzheimer’s disease: metabolic basis for dementia. Sci. Rep. 6, 27524 (2016).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Zhao, Q. et al. AKR1B1-dependent fructose metabolism enhances malignancy of cancer cells. Cell Death Differ. 31, 1611–1624 (2024).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Aloia, J. F. Monosaccharides and polyols in diabetes mellitus and uremia. J. Lab. Clin. Med. 82, 809–817 (1973).

    CAS  PubMed  Google Scholar 

  • Daniels, L. J. et al. Elevated myocardial fructose and sorbitol levels are associated with diastolic dysfunction in diabetic patients, and cardiomyocyte lipid inclusions in vitro. Nutr. Diabetes 11, 8 (2021).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Heaf, D. J. & Galton, D. J. Sorbitol and other polyols in lens, adipose tissue and urine in diabetes mellitus. Clin. Chim. Acta 63, 41–47 (1975).

    Article  CAS  PubMed  Google Scholar 

  • Nakatsuka, Y. et al. Hyperfructosemia in sleep disordered breathing: metabolome analysis of Nagahama study. Sci. Rep. 13, 12735 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Canovas, J. A., Wang, L., Mohamed, A. A. M., Abbott, L. F. & Zuker, C. S. A brain center that controls consummatory responses. Cell 118, 6907–6922.e17 (2025).

    Article  Google Scholar 

  • de Araujo, I. E. et al. Food reward in the absence of taste receptor signaling. Neuron 57, 930–941 (2008).

    Article  PubMed  Google Scholar 

  • Andres-Hernando, A. et al. Sugar causes obesity and metabolic syndrome in mice independently of sweet taste. Am. J. Physiol. Endocrinol. Metab. 319, E276–E290 (2020).

    Article  PubMed  PubMed Central  Google Scholar 

  • Payant, M. A. & Chee, M. J. Neural mechanisms underlying the role of fructose in overfeeding. Neurosci. Biobehav. Rev. 128, 346–357 (2021).

    Article  CAS  PubMed  Google Scholar 

  • Cha, S. H., Wolfgang, M., Tokutake, Y., Chohnan, S. & Lane, M. D. Differential effects of central fructose and glucose on hypothalamic malonyl-CoA and food intake. Proc. Natl Acad. Sci. USA 105, 16871–16875 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Luo, S., Monterosso, J. R., Sarpelleh, K. & Page, K. A. Differential effects of fructose versus glucose on brain and appetitive responses to food cues and decisions for food rewards. Proc. Natl Acad. Sci. USA 112, 6509–6514 (2015).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Purnell, J. Q. et al. Brain functional magnetic resonance imaging response to glucose and fructose infusions in humans. Diabetes Obes. Metab. 13, 229–234 (2011).

    Article  CAS  PubMed  Google Scholar 

  • Johnson, R. J., Wilson, W. L., Bland, S. T. & Lanaspa, M. A. Fructose and uric acid as drivers of a hyperactive foraging response: a clue to behavioral disorders associated with impulsivity or mania? Evol. Hum. Behav. 42, 194–203 (2021).

    Article  PubMed  Google Scholar 

  • Johnson, R. J. et al. Could Alzheimer’s disease be a maladaptation of an evolutionary survival pathway mediated by intracerebral fructose and uric acid metabolism? Am. J. Clin. Nutr. 117, 455–466 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Friedman, M. I., Harris, R. B., Ji, H., Ramirez, I. & Tordoff, M. G. Fatty acid oxidation affects food intake by altering hepatic energy status. Am. J. Physiol. 276, R1046–R1053 (1999).

    CAS  PubMed  Google Scholar 

  • Ishimoto, T. et al. Opposing effects of fructokinase C and A isoforms on fructose-induced metabolic syndrome in mice. Proc. Natl Acad. Sci. USA 109, 4320–4325 (2012).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Shapiro, A. et al. Fructose-induced leptin resistance exacerbates weight gain in response to subsequent high-fat feeding. Am. J. Physiol. Regul. Integr. Comp. Physiol. 295, R1370–R1375 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Shapiro, A., Tumer, N., Gao, Y., Cheng, K. Y. & Scarpace, P. J. Prevention and reversal of diet-induced leptin resistance with a sugar-free diet despite high fat content. Br. J. Nutr. 106, 390–397 (2011).

    Article  CAS  PubMed  Google Scholar 

  • Dushay, J. R. et al. Fructose ingestion acutely stimulates circulating FGF21 levels in humans. Mol. Metab. 4, 51–57 (2015).

    Article  CAS  PubMed  Google Scholar 

  • Togo, J., Hu, S., Li, M., Niu, C. & Speakman, J. R. Impact of dietary sucrose on adiposity and glucose homeostasis in C57BL/6J mice depends on mode of ingestion: liquid or solid. Mol. Metab. 27, 22–32 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Miller, C. O. et al. Ketohexokinase knockout mice, a model for essential fructosuria, exhibit altered fructose metabolism and are protected from diet-induced metabolic defects. Am. J. Physiol. Endocrinol. Metab. 315, E386–E393 (2018).

    Article  CAS  PubMed  Google Scholar 

  • Hallfrisch, J. et al. Effects of dietary fructose on plasma glucose and hormone responses in normal and hyperinsulinemic men. J. Nutr. 113, 1819–1826 (1983).

    Article  CAS  PubMed  Google Scholar 

  • Smajis, S. et al. Metabolic effects of a prolonged, very-high-dose dietary fructose challenge in healthy subjects. Am. J. Clin. Nutr. 111, 369–377 (2020).

    Article  PubMed  Google Scholar 

  • Perez-Pozo, S. E. et al. Excessive fructose intake induces the features of metabolic syndrome in healthy adult men: role of uric acid in the hypertensive response. Int. J. Obes. 34, 454–461 (2010).

    Article  CAS  Google Scholar 

  • Cox, C. L. et al. Circulating concentrations of monocyte chemoattractant protein-1, plasminogen activator inhibitor-1, and soluble leukocyte adhesion molecule-1 in overweight/obese men and women consuming fructose- or glucose-sweetened beverages for 10 weeks. J. Clin. Endocrinol. Metab. 96, E2034–E2038 (2011).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Reungjui, S. et al. Thiazide-induced subtle renal injury not observed in states of equivalent hypokalemia. Kidney Int. 72, 1483–1492 (2007).

    Article  CAS  PubMed  Google Scholar 

  • Sievenpiper, J. L. et al. Effect of fructose on body weight in controlled feeding trials: a systematic review and meta-analysis. Ann. Intern. Med. 156, 291–304 (2012).

    Article  PubMed  Google Scholar 

  • Sullivan, J. S. et al. Oral fructose absorption in obese children with non-alcoholic fatty liver disease. Pediatr. Obes. 10, 188–195 (2015).

    Article  CAS  PubMed  Google Scholar 

  • Nakagawa, T. et al. A causal role for uric acid in fructose-induced metabolic syndrome. Am. J. Physiol. Renal Physiol. 290, F625–F631 (2006).

    Article  CAS  PubMed  Google Scholar 

  • Reungjui, S. et al. Thiazide diuretics exacerbate fructose-induced metabolic syndrome. J. Am. Soc. Nephrol. 18, 2724–2731 (2007).

    Article  CAS  PubMed  Google Scholar 

  • Erkin-Cakmak, A. et al. Isocaloric fructose restriction reduces serum d-lactate concentration in children with obesity and metabolic syndrome. J. Clin. Endocrinol. Metab. 104, 3003–3011 (2019).

    Article  PubMed  PubMed Central  Google Scholar 

  • Jensen, T. et al. Fructose and sugar: a major mediator of non-alcoholic fatty liver disease. J. Hepatol. 68, 1063–1075 (2018).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Ouyang, X. et al. Fructose consumption as a risk factor for non-alcoholic fatty liver disease. J. Hepatol. 48, 993–999 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Maersk, M. et al. Sucrose-sweetened beverages increase fat storage in the liver, muscle, and visceral fat depot: a 6-mo randomized intervention study. Am. J. Clin. Nutr. 95, 283–289 (2012).

    Article  CAS  PubMed  Google Scholar 

  • Schwimmer, J. B. et al. Effect of a low free sugar diet vs usual diet on nonalcoholic fatty liver disease in adolescent boys: a randomized clinical trial. JAMA 321, 256–265 (2019).

    Article  PubMed  PubMed Central  Google Scholar 

  • Schwarz, J. M. et al. Effects of dietary fructose restriction on liver fat, de novo lipogenesis, and insulin kinetics in children with obesity. Gastroenterology 153, 743–752 (2017).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Ishimoto, T. et al. High-fat and high-sucrose (Western) diet induces steatohepatitis that is dependent on fructokinase. Hepatology 58, 1632–1643 (2013).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Wang, M. et al. Elevated fructose and uric acid via aldose reductase contribute to experimental and human alcoholic liver disease. Hepatology 72, 1617–1637 (2020).

    Article  CAS  PubMed  Google Scholar 

  • Shi, C. et al. Inhibition of aldose reductase ameliorates alcoholic liver disease by activating AMPK and modulating oxidative stress and inflammatory cytokines. Mol. Med. Rep. 16, 2767–2772 (2017).

    Article  CAS  PubMed  Google Scholar 

  • Singh, A. K. et al. Fructose-induced hypertension: essential role of chloride and fructose absorbing transporters PAT1 and Glut5. Kidney Int. 74, 438–447 (2008).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Zhang, R. et al. Abnormal activation of the mineralocorticoid receptor in the aldosterone-sensitive distal nephron contributes to fructose-induced salt-sensitive hypertension. Preprint at bioRxiv https://doi.org/10.1101/2024.08.19.608663 (2024).

  • Sanchez-Lozada, L. G. et al. Sugar, salt, immunity and the cause of primary hypertension. Clin. Kidney J. 16, 1239–1248 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Cirillo, P. et al. Ketohexokinase-dependent metabolism of fructose induces proinflammatory mediators in proximal tubular cells. J. Am. Soc. Nephrol. 20, 545–553 (2009).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Lodge, M. et al. Fructose regulates the pentose phosphate pathway and induces an inflammatory and resolution phenotype in Kupffer cells. Sci. Rep. 14, 4020 (2024).

    Article  PubMed  PubMed Central  Google Scholar 

  • Johnson, R. J. et al. Do thrifty genes exist? Revisiting uricase. Obesity 30, 1917–1926 (2022).

  • Roncal-Jimenez, C. A. et al. Aging-associated renal disease in mice is fructokinase dependent. Am. J. Physiol. Renal Physiol. 311, F722–F730 (2016).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Chen, W. L. et al. GLUT5-mediated fructose utilization drives lung cancer growth by stimulating fatty acid synthesis and AMPK/mTORC1 signaling. JCI Insight 5, e131596 (2020).

    Article  PubMed  PubMed Central  Google Scholar 

  • Carreno, D. V. et al. Dietary fructose promotes prostate cancer growth. Cancer Res. 81, 2824–2832 (2021).

    Article  CAS  PubMed  Google Scholar 

  • Liu, H. et al. Fructose induces transketolase flux to promote pancreatic cancer growth. Cancer Res. 70, 6368–6376 (2010).

    Article  CAS  PubMed  Google Scholar 

  • Kang, Y. L. et al. The polyol pathway and nuclear ketohexokinase A signaling drive hyperglycemia-induced metastasis of gastric cancer. Exp. Mol. Med. 56, 220–234 (2024).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Kim, J. et al. Ketohexokinase-A acts as a nuclear protein kinase that mediates fructose-induced metastasis in breast cancer. Nat. Commun. 11, 5436 (2020).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Goncalves, M. D. et al. High-fructose corn syrup enhances intestinal tumor growth in mice. Science 363, 1345–1349 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Bu, P. et al. Aldolase B-mediated fructose metabolism drives metabolic reprogramming of colon cancer liver metastasis. Cell Metab. 27, 1249–1262 (2018).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Xu, D. et al. The protein kinase activity of fructokinase A specifies the antioxidant responses of tumor cells by phosphorylating p62. Sci. Adv. 5, eaav4570 (2019).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Tee, S. S. et al. Ketohexokinase-mediated fructose metabolism is lost in hepatocellular carcinoma and can be leveraged for metabolic imaging. Sci. Adv. 8, eabm7985 (2022).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Jeong, S. et al. High fructose drives the serine synthesis pathway in acute myeloid leukemic cells. Cell Metab. 33, 145–159 (2021).

    Article  CAS  PubMed  Google Scholar 

  • Yan, H. et al. Hexokinase 2 senses fructose in tumor-associated macrophages to promote colorectal cancer growth. Cell Metab. 36, 2449–2467 (2024).

    Article  CAS  PubMed  Google Scholar 

  • Schild, T. et al. Metabolic engineering to facilitate anti-tumor immunity. Cancer Cell 43, 552–562 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Page, K. A. et al. Effects of fructose vs glucose on regional cerebral blood flow in brain regions involved with appetite and reward pathways. JAMA 309, 63–70 (2013).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Regenold, W. T., Phatak, P., Kling, M. A. & Hauser, P. Post-mortem evidence from human brain tissue of disturbed glucose metabolism in mood and psychotic disorders. Mol. Psychiatry 9, 731–733 (2004).

    Article  CAS  PubMed  Google Scholar 

  • Wang, Z. et al. Early life high fructose impairs microglial phagocytosis and neurodevelopment. Nature 644, 759–768 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Cisternas, P. et al. Fructose consumption reduces hippocampal synaptic plasticity underlying cognitive performance. Biochim. Biophys. Acta 1852, 2379–2390 (2015).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Mohamed, H. E., Asker, M. E., Shaheen, M. A., Eissa, R. G. & Younis, N. N. Alleviation of fructose-induced Alzheimer’s disease in rats by pioglitazone and decaffeinated green coffee bean extract. J. Food Biochem. 45, e13715 (2021).

    Article  CAS  PubMed  Google Scholar 

  • Mohamed, H. E., Asker, M. E., Younis, N. N., Shaheen, M. A. & Eissa, R. G. Modulation of brain insulin signaling in Alzheimer’s disease: new insight on the protective role of green coffee bean extract. Nutr. Neurosci. 23, 27–36 (2020).

    Article  CAS  PubMed  Google Scholar 

  • Steinmann, B., Gitzelmann, R. & Van den Berghe, G. in The Metabolic and Molecular Basis of Inherited Disease (eds Scriver C. et al.) 1489–1520 (McGraw-Hill, 2001).

  • Lanaspa, M. A. et al. Ketohexokinase C blockade ameliorates fructose-induced metabolic dysfunction in fructose-sensitive mice. J. Clin. Invest. 128, 2226–2238 (2018).

    Article  PubMed  PubMed Central  Google Scholar 

  • Andres-Hernando, A. et al. Endogenous fructose production and metabolism drive metabolic dysregulation and liver disease in mice with hereditary fructose intolerance. Nutrients 15, 4376 (2023).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Koene, E. J. et al. Safety and efficacy of pharmacological inhibition of ketohexokinase in hereditary fructose intolerance. J. Clin. Invest. 135, e187376 (2025).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Cleave, T. L. & Campbell, G. D. The saccharine disease. Am. J. Proctol. 18, 202–210 (1967).

    CAS  PubMed  Google Scholar 

  • US Department of Health and Human Services. Centers for Disease Control and Prevention. After 20-year increase, new diabetes cases decline. CDC Archive https://archive.cdc.gov/www_cdc_gov/diabetes/research/reports/cdc-research-20yr-report.html (2018).

  • Rader, B., Hazan, R. & Brownstein, J. S. Changes in adult obesity trends in the US. JAMA Health Forum 5, e243685 (2024).

    Article  PubMed  PubMed Central  Google Scholar 

  • Korsmo, H. W., Ekperikpe, U. S. & Daehn, I. S. Emerging roles of xanthine oxidoreductase in chronic kidney disease. Antioxidants 13, 712 (2024).

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  • Saxena, A. R. et al. A phase 2a, randomized, double-blind, placebo-controlled, three-arm, parallel-group study to assess the efficacy, safety, tolerability and pharmacodynamics of PF-06835919 in patients with non-alcoholic fatty liver disease and type 2 diabetes. Diabetes Obes. Metab. 25, 992–1001 (2023).

    Article  CAS  PubMed  Google Scholar 

  • Park, S. H. et al. Knockdown of ketohexokinase versus inhibition of its kinase activity exert divergent effects on fructose metabolism. JCI Insight 9, e184396 (2024).

    Article  PubMed  PubMed Central  Google Scholar 

  • Johnson, R. J. et al. Water scarcity and conservation and their role in obesity in nature and in humans. J. Intern. Med. 298, 562–577 (2025).

    Article  CAS  PubMed  Google Scholar 

  • Perheentupa, J. & Raivio, K. Fructose-induced hyperuricaemia. Lancet 2, 528–531 (1967).

    Article  CAS  PubMed  Google Scholar 

  • Brown, C. M., Dulloo, A. G., Yepuri, G. & Montani, J. P. Fructose ingestion acutely elevates blood pressure in healthy young humans. Am. J. Physiol. Regul. Integr. Comp. Physiol. 294, R730–R737 (2008).

    Article  CAS  PubMed  Google Scholar 

  • Sanchez-Lozada, L. G. et al. Fructose-induced metabolic syndrome is associated with glomerular hypertension and renal microvascular damage in rats. Am. J. Physiol. Renal Physiol. 292, F423–F429 (2007).

    Article  CAS  PubMed  Google Scholar 

  • Read the whole story
    emrox
    4 days ago
    reply
    Hamburg, Germany
    Share this story
    Delete

    The Physics Of GPS | An Interactive Exploration

    1 Share

    How geometry, stopwatches, and Einstein's theories work together to make GPS possible.

    Shri Khalpada

    Shri Khalpada

    If you're like me, you might be entirely dependent on GPS to navigate the world. At some point, you may have caught yourself wondering during those panicked moments when an exit is coming up and your phone is recalibrating: how does my phone even know where I am?

    The answer is in some ways simpler than you'd expect, and in other ways more complex. GPS is fundamentally a translation tool: it converts time into distance. A satellite sends a signal, your phone catches it, and the delay between those two events tells the phone exactly how far away the satellite is. Everything else is about making that measurement precise enough to be useful: accounting for bad clocks, satellite geometry, and eventually, Einstein's theories.

    The Ruler

    TL;DR

    GPS turns time into distance. 1 nanosecond of signal travel = 0.3 meters.

    Every GPS measurement starts with a stopwatch. A satellite broadcasts a signal at the speed of light. Your phone receives it and checks how long the trip took. Multiply the travel time by the speed of light, and you get the distance.

    This is the fundamental building block of GPS.

    One Satellite, One Ring

    TL;DR

    One satellite tells you how far away you are, but not which direction. You could be anywhere on a ring.

    Measuring a single satellite gives you a distance, but not a direction. If a signal takes to reach your phone, you are roughly from the satellite. If you took every point at that distance from the satellite, you would get a ring on the surface of the Earth (technically an oblate spheroid, but effectively a ring for our purposes). One satellite tells us we're somewhere on that ring, but it can't tell us where exactly.

    Not to scale

    Satellite A sends a signal to your phone at the speed of light.

    The ring shows every point on Earth at the same distance from the satellite. You are somewhere on this ring.

    Three Satellites, One Point

    TL;DR

    Three satellites produce three rings that intersect at a single point: your location.

    One ring isn't enough since you could be anywhere along it. A second satellite produces a second ring which crosses the first one at exactly two points. A third satellite produces a third ring, which passes through only one of those two points.

    This process is called trilateration. Each satellite gives you one equation:

    is the known position of satellite , and is the measured distance. We can solve for three unknowns with three equations.

    Not to scale

    Each satellite's ring passes through your location.

    Three rings converge on a single point. We've turned time into a coordinate!

    The Clock Problem

    TL;DR

    Your phone's clock is (relatively) bad. A 4th satellite fixes it because with four satellites, there is only one clock correction that makes all four spheres intersect at a single point.

    There's a problem with the math above: it assumes your phone knows the travel time perfectly.

    Each GPS satellite carries an incredibly precise atomic clock, accurate to about . Your phone has a much cheaper quartz crystal oscillator that can naturally drift by microseconds (thousands of nanoseconds). Since of clock error produces of position error, even of drift puts you off. Without accounting for this, GPS would become pretty useless pretty quickly!

    The fix is to add another satellite.

    In simple terms: there is only one specific clock correction possible where all four spheres intersect at a single, perfect point. The 4th satellite gives the receiver enough information to find it. Once it does, it corrects every distance measurement at once, and the previously fuzzy answer snaps into focus. Conceptually, you can think about the system doing some math to figure out how to make the new red ring below perfectly intersect with the other three rings.

    Not to scale

    The 4th satellite adds a 4th equation. With three satellites, any clock error produces multiple possible intersections. With four, there is only one clock correction that makes all four spheres meet at a single point.

    This is also why your phone's clock is so accurate. It's constantly being synced to atomic clocks in space!

    The Relativity Tax

    TL;DR

    Without Einstein's corrections, GPS drifts by ~10 km per day.

    Even with four satellites and a solved clock, we're not quite done yet.

    To understand why, we have to think of time itself as a clock that can be sped up or slowed down by its surroundings. GPS has to account for two specific distortions:

    • Special Relativity (speed): Einstein discovered that the faster an object moves, the slower time passes for it. GPS satellites move at roughly , so their clocks lose about per day compared to ours.
    • General Relativity (gravity): Gravity also warps time. The further you are from a massive object like Earth, the faster time ticks. The satellites orbit at altitude in weaker gravity, so their clocks gain about per day.

    These two effects don't cancel out. The gravity gain is much stronger than the speed loss.

    Without a correction, the satellite clocks would run ahead of ground clocks every day. Because light travels every microsecond, that small offset would cause your position to drift by roughly every 24 hours.

    Engineers bake this correction into the hardware. The satellite clocks are built to tick slightly too slow on the ground, at instead of the nominal . Once in orbit, the combination of weaker gravity and orbital speed makes them tick at exactly the correct rate.

    Not to scale

    Day 0: drift = 0 μs≈ 0 km error

    Without these corrections, GPS would become unusable within hours. The fact that your phone can pinpoint your location to within a few meters is, in addition to being a modern miracle, a quiet and continuous proof that Einstein was right.

    A Joint Effort

    In practice, your phone doesn't stop at four satellites. Modern receivers typically lock onto 8 to 12 at once, sometimes more. The extra signals don't change the core math, but they let the receiver average out errors and pick the best satellite geometry. More satellites means sharper intersections and a more stable fix.

    And it's not just the American GPS constellation. Russia operates GLONASS, the EU has Galileo, and China has BeiDou. Your phone can listen to all of them simultaneously. That means over 100 atomic stopwatches orbiting overhead, built by different countries, all working together to tell you where you are.

    Distances and Earth's size are to scale. Showing 147 live GNSS satellites via CelesTrak (data refreshed within last hour).

    GPS (USA) GLONASS (Russia) BeiDou (China) Galileo (EU)

    Satellite placement also matters. If the satellites are clumped together in one part of the sky, their rings intersect at very shallow angles. This creates a wide, blurry area of uncertainty around the true position. GPS engineers call this Geometric Dilution of Precision (GDOP). Good geometry means satellites spread across the sky, so that their rings cross at sharp angles and produce a tight, high-confidence intersection point. Your phone's GPS chip automatically selects the best combination of visible satellites to minimize GDOP.

    In cities, GPS signals can bounce off buildings before reaching your phone. This makes the stopwatch think you are further away than you actually are, because the signal took a longer path. This is called multipath error, and it's the main reason GPS gets less accurate in dense urban areas. Modern receivers use multiple techniques to detect and filter out these reflected signals, but it remains one of the hardest problems in GPS.

    With all that said, I find it amazing that your phone can pinpoint your location to within a few meters using nothing more than the time it takes light to travel from a few satellites tens of thousands of kilometers away.

    If you want to go much deeper, Bartosz Ciechanowski's interactive explainer on GPS is the gold standard. It covers signal modulation, orbital mechanics, and receiver architecture in far more detail than we do here.

    Thank you!

    If you like this type of content, you can follow me on BlueSky. If you wanted to support me further, buying me a coffee would be much appreciated. It helps us keep the lights on and the servers running! ☕

    Read the whole story
    emrox
    10 days ago
    reply
    Hamburg, Germany
    Share this story
    Delete

    Morale

    1 Share

    Morale

    And more PROD3000.

    Read the whole story
    emrox
    29 days ago
    reply
    Hamburg, Germany
    Share this story
    Delete
    Next Page of Stories