I hate that I kinda like the significant whitespace for arithmetic. Also, for someone who's had to install and uninstall the gigabyte-big "Visual Studio Installer" multiple times just to get one or two things, the "DreamBerd installer installer" hits close to home!
16:00 I would make a habit of just using the keyword “unction” for all my functions, to heap blessings upon my code. This would also allow for some interesting usage of “on” as the function keyword before event handlers, “ui” before render functions in front end frameworks, and others…
that const const const example was a mistake; now pi is permanently just 3 significant figures... that means we now need a pi2 with more significant figures....
I love how the const const, const var, ..., is actually a thing in rust its just like this: let x: &mut str = ... //const const let x: & str = ... //const var let mut x: & str = ... //var const let mut x: &mut str = ... //var var
The question mark is actually a really nice feature... Just type a character instead of having to set up debuggers and connections and ehat not in your IDE...
Gd Theo, when did you become the funniest UA-camr? Also, thank you for voicing a clear and firm stance on the rights of queer people. This is a scary time for lots of people, particularly transgender people, and I know the opinion of one person isn't make or break, but by collectively standing together and affirming that queer people deserve the same rights and respect as anybody, we can make the world a better place and I appreciate you doing your part.
13:28 Common Lisp and Scheme (including Racket) and a bunch of other Lisps also have fractions. It's pretty nice. In Scheme and Racket, there is a distinction between exact and inexact numbers --- 1/3 is exact, and you can turn it into the floating point approximation with the function "exact->inexact" (as far as I remember). Racket's reference documentation about numbers is a pretty good read. An excerpt: "All numbers are complex numbers. Some of them are real numbers, and all of the real numbers that can be represented are also rational numbers, except for +inf.0 (positive infinity), +inf.f (single-precision variant, when enabled via `read-single-flonum`), -inf.0 (negative infinity), -inf.f (single-precision variant, when enabled), +nan.0 (not-a-number), and +nan.f (single-precision variant, when enabled). Among the rational numbers, some are integers, because `round` applied to the number produces the same number."
This looks so cool. I have honestly been wondering why we are sticking so closely with JS and why there isn't an evolution in front end language. we have 1000's of back end languages and 1 front end language.
13:27 Haskell has a boatload of built-in numeric types, including Rational (aka Ratio Integer), which is for "arbitrary-precision rational numbers." You can even have a Complex Rational without requiring any packages!
5:17 Maybe some count as follows: 0, 1, the next one should be 2, but I ran out of them, so there are 2 In C/C++: int i = 0; while (cats >> cur) ++i; You can use the for loop for 1-based counting, too. However, the variable would be incremented once more. So, if you move the declaration outside the loop, you get int i; for (i = 1; i
I am speechless at the sheer brilliance that this language embodies. It is truly perfect (though just as clearly requires more additions to further enhance the perfection). The day DreamBerd replaces all other languages will be a day to celebrate. A global holiday will be made to commemorate such a day when (not if, if's don't exist after all;) it comes to pass. Remember to suppor [pending on AI completion]
Thank you for the video, it's a funny concept although I doubt this language is going to be practical. It's true that it kinda challenges the way we got used to code but the thing is there are reasons why we do a lot of things the way we do them. For instance, there are reasons why no language allows you to define lifetime duration for a variable: no code ever runs consistently, there's no telling how long a specific procedure will take on different cpus/systems/machines, even during different runs on the same machine; and if some piece of your code is dependent on a variable with a specific lifetime duration it may work one time and fail another time in the most unpredictable ways. There are also a lot of features that look curious but make no real use, like the ability to redefine 5 and make it become 4. There is absolutely no use case when allowing that could do anything helpful but it definitely makes it easier to "shoot your leg with a -gun- cannon". And that can be said for a lot of other features of the language. Anyways thanks for bringing it up
Mathematica (Wolfram Language) actually makes some of those choices, like the best of both worlds in 0-1 index starting position (array elements starts at [1], but [0] is also meaningful as heads), keep fractions by default, do overload as pattern matching, and allowing "overloading" variables
7:20 The lifetime of objects sounds like fun unexpected behavior between 'lifetime ended' and GC cleanup. Or should the interpreter check the time for each line which would be absurd to do lol
I know it's old, but I would love to see you react to the INTERCAL spec. I like the question mark operator, but "debug info" on what's already a print statement seems of dubious usefulness. I'd have liked them to provide a better example. :D "When" is really cool, as is floating point array indices, but the -1 starting index is cursed. Although nothing is more cursed than the ; operator... Not having loops is actually something you can probably solve with When statements. This might actually be an amazing language for hardware development. It's effectively a state machine. Negative indentation! Haha, that's beautiful. I would never want to _use_ it, but that's great. With integers being digit arrays (...wow) that also means reassigning a number as a variable affects any number that _contains_ it. That's wild. The single-equals and zero quote strings are actually cool too. Theoretically the language could figure out if it's making a comparison (inside an if, for instance) and _not_ reassign. Or reassigning also returns the comparison of the prior values, _then_ assigns. But a zero quote string... sure, if the thing you assign isn't yet a variable I can see it just making it a string. Otherwise it's also assignment. That could make for some cursed debugging. I think I understand why there's a question mark operator now... Mandatory factory pattern. Just. Mandatory factory pattern. This language was apparently designed to make coding the Fibonacci sequence really convenient. And apparently not much else, but it does that really well. :D
Theo the fact that youre so obsessed with emogis as variables is wild. lol i mean i get that you like it. thats fine. but to say its "annoying" that a language doesnt support that is crazy. its a programimng language, youre not texting your bff lol love your content though, great video!
6:00 floats for indices... imagine that! I made a draggable list of items in one application that was using DECIMAL format for index column in database, which was used for sorting elements. it allowed for easy inserting or moving items through a list without updating many records XD
10:58 Fine, then I will: In binary, the number of bits required to store a value that can take on up to N states is log2(N) and log2(2) = 1 log2(4) = 2 thus log2(3) must be 1,5 saving half a bit for other data. This is great for cache locality, allowing the developer to fit more data into the processor's cache and increasing performance of the app. Q.E.D.
I wasn't a subscriber, this video just happened to come across my feed because I've been watching a lot of programming videos recently. I thought it was funny and pretty good, but I didn't think I'd subscribe, just like and move on. And then 54:50 happened. Instant subscribe.
13:42 Rationals don't usually exist as a language feature, but many languages have libraries for them. Nobody uses them though because they aren't actually as good as you'd expect. Not everything can be represented as a fraction first of all, and also, it's much harder to round fractions. This is important since the numerators and denominators tend to inflate to rather large values, which, unless you want to use BigInts, requires you to do some form of rounding to manage.
Burp, please excuse my dear aunt sally Brackets > Parenthesis > exponents > mult/divide > add/substract The one thing i will never forget from 6th grade math class apparently.
I could see negative indents being useful for conditionals that with "maybe" keyword to write functions with multipurposes, like if the variable is not maybe, process the code block below including negative and positive indents, but if it is maybe, parse only the negative indents.
Great satire, lets learn from it, here's what i like: Declarations + but mixed var const is cursed, make use of numbers, so const3 instead of const const const, oh, and 'const' now means const2 Functions + but not like this, let me assign const4 fn= function (const4 means its a part of the language now) Types + this helps support lexers, but allow it to restrict type, give me byte for int8 and Bigint for int300 Time + sometimes the client has their clock wrong and it affects synchronization, so just fix it :)
as someone who calls functions methods, i would greatly appreciate if in this language, you could also use the same thing as the function keyword, but with method as well. so for instance, you could create a function using "meth" as a valid keyword. alternatively, it could be made so that in the case that "meth" is used, all numbers written within the function will instead be random and/or swapped with each other.
In Godot, a const Dictionary is immutable, unlike a const Object. I don't _want_ immutability, I just want to prevent reassignment. The "const const" syntax from DreamBerd sounds like it would be great to have.
Youre forgetting how attrocious OS were at emoji before win 10. As someone stuck with win 7 for memory saving reasons I just cannot use them natively anywhere.
The 1½ bits per tristate sound stupid, but could be useful. Imagine you pack many of those together. Two of them occupy 3 bits, not 4. That means when you code for a PDP-10 with its 9-bit bytes, you can store 6 tristates packed in a single byte.
Ok but the programming language Uiua is totally different to C, JS and even DreamBerd it implements a bunch of nice things and is genuinely a really useful and fun language. (and it uses ? for debug)
17:25 The Mathematician in me has to object. Only 0/0 is undefined, since everything x0 is 0. 1/0 is AN infinity. Both undefined and the infinity of 1/0 are elements of the Set NaN.
Parenthesis Exponent Multiplication Divison Addition Subtraction do not think multiplication comes before divison they are in the same step so for that you read left to right with the calculation of multiplication and division and the same is true for addition and subtraction, they are in the same step do left to right with the calculation.
@t3dotgg I am using Next.js 14 with the app router. In my main layout file, I am fetching user data using a server component and then sharing that data with a client component. I have a context provider that passes this data to the context, allowing me to easily access the user data across all client components on different pages. However, I am facing an issue: while I can easily access the user data from the context in client components on all pages, I need to access this data in a few server components on other pages as well. How can I achieve this? Should I use cookies on the server side for this, or is there a better approach?
Satire aside, ending a statement with a question mark to print debug information honestly is so sick as an idea
var_dump()
atleast rust has debug macro
question mark is for resolving return type errors
you could define a macro in c++ to replace any line ending with ?, #PreProcessors
@@fionnlanghansduh
SageMath does something like this
What says intuitive like realizing "union" is a keyword that defines a fUNctION
Also futon
I'm a fan of funion
so is IO
"FUC" is also a valid lne
"on"
31:16 "delete fun" is a thing that some languages just do by default.
yeah espesically c++
real
Python likes to do that. :/
c++
c#
c because it's really annoSegmentation fault (core dumped)
javascript
any form of assembly
lua
java (on occasion)
@@halfsine lua creates fun
I hate that I kinda like the significant whitespace for arithmetic. Also, for someone who's had to install and uninstall the gigabyte-big "Visual Studio Installer" multiple times just to get one or two things, the "DreamBerd installer installer" hits close to home!
It's a top meme language. This language allow people to declare function "fuct".
or just fuc
also fucn
@@michawhite7613 could you also use "nct" to make a function or would it have to be starting from the start of the word function?
@@lordender_kitty_official Yes that works too. Also "union" declares a function.
It's how you know a language isn't defunct
16:00 I would make a habit of just using the keyword “unction” for all my functions, to heap blessings upon my code. This would also allow for some interesting usage of “on” as the function keyword before event handlers, “ui” before render functions in front end frameworks, and others…
that const const const example was a mistake; now pi is permanently just 3 significant figures... that means we now need a pi2 with more significant figures....
Could be useful for quick approximates for engineering so that it's just as fast and easy as using -0.5 sigfigs...
@@theapexsurvivor9538Yes, but this is a computer doing the calculation, not a puny human brain.
Just use 5 equals ===== for even more precision 😂😂😂😂
Can someone explain the difference between const const and const const const? Isn't it already immutable if the value can't be changed?
Just remember to have pi2 and pi3 installed, and then set up an entirely new environment for each project to ensure stability.
I like the question mark as "What the f* is this" operator
That and the double const/var keyword actually struck me as good ideas.
Aaaaand then it devolved into meme hell.
Nobody:
Me calling all my functions "funion" because I can
Andiamo fratello
One and a half bits isn't enough for a three-valued variable though. That would log2(3), approx 1.585 bits.
The 0.085 bits come from a hardware-backed quantum noise chip
The actual way to do it would be with one and two thirds bits.
Not enough "duh"'s
I love how the const const, const var, ..., is actually a thing in rust its just like this:
let x: &mut str = ... //const const
let x: & str = ... //const var
let mut x: & str = ... //var const
let mut x: &mut str = ... //var var
You mixed up the first 2:
const const - let x: &str
const var - let x: &mut str
var const - let mut x: &str
var var - let mut x: &mut str
it's a thing in C too with constant variables and pointers to mutable data and vice versa :з
honestly some of the concepts in this are actually good, like the question mark to print debug information.
And the signals with the 'when' syntax
My programming language actually implements floating-point numbers as fractions (pgcl)
const const const pi = 3.14!
Nothing can change this!
delete pi!
😂😂😂
var var pi = 3.1415!!
@@christopheriman4921 this language needs a const const const const for undeleteable....time to contribute...
Just wait for infinity time to pass and it'll delete itself!
Or, even better, just do
Infinity = 1!
and it'll be delete 1 second after it was created!
ngl some concepts are really interesting. Questionmark at the end, previous/next. I actually like that.
The question mark is actually a really nice feature... Just type a character instead of having to set up debuggers and connections and ehat not in your IDE...
I wish the "don't skip this section" section wasn't skipped. It's very important.
?
If it’s important make a PR and add more exclamation marks to the statement? Idk I haven’t read it either
It was revisited at the end
4:30 don't you think, 👍should be the boolean "True" and 👎should be the boolean "False"? It would be so much more international!
In Brazil, a thumbs-up is equivalent to flipping someone off.
It's just variable declaration. You can do for False also. Even use 🤔 for maybe 😂
👎👊
ah yes, todepond reaction video
Gd Theo, when did you become the funniest UA-camr?
Also, thank you for voicing a clear and firm stance on the rights of queer people. This is a scary time for lots of people, particularly transgender people, and I know the opinion of one person isn't make or break, but by collectively standing together and affirming that queer people deserve the same rights and respect as anybody, we can make the world a better place and I appreciate you doing your part.
13:28 Common Lisp and Scheme (including Racket) and a bunch of other Lisps also have fractions. It's pretty nice.
In Scheme and Racket, there is a distinction between exact and inexact numbers --- 1/3 is exact, and you can turn it into the floating point approximation with the function "exact->inexact" (as far as I remember).
Racket's reference documentation about numbers is a pretty good read. An excerpt:
"All numbers are complex numbers. Some of them are real numbers, and all of the real numbers that can be represented are also rational numbers, except for +inf.0 (positive infinity), +inf.f (single-precision variant, when enabled via `read-single-flonum`), -inf.0 (negative infinity), -inf.f (single-precision variant, when enabled), +nan.0 (not-a-number), and +nan.f (single-precision variant, when enabled). Among the rational numbers, some are integers, because `round` applied to the number produces the same number."
Also c# has decimal type, that allow precise fraction arithmetic
Also, Raku (Perl 6) has fractions by default.
I want the Theo "duh" sound byte as my morning alarm.
real?
This was great! Got a really good laugh. Thanks 👍
This looks so cool. I have honestly been wondering why we are sticking so closely with JS and why there isn't an evolution in front end language. we have 1000's of back end languages and 1 front end language.
As for 'when', Tcl has this feature in form of the 'watch' command.
major props for the donation at the end
13:27 Haskell has a boatload of built-in numeric types, including Rational (aka Ratio Integer), which is for "arbitrary-precision rational numbers." You can even have a Complex Rational without requiring any packages!
Lol it’s literally just the language that guy proposed in his talk about making the worst language
can someone give me a duh count
Someone replied above, saying 58.
Also "obvious" count, please
If I use DreamBerd Enterprise Edition, do I need to use 'whilst' instead of 'when'?
Meanwhile is preferred
Fuzzy keyword matching could be a thing.
This was so much fun to watch, Love it!
"No other language that I know of supports fractions"
Ruby's Rational class:
Take a shot everytime Theo says "duh" or "obviously"
this has inspired me to try to create an interpreter for some subset of dreamberd. thank you!
5:17 Maybe some count as follows: 0, 1, the next one should be 2, but I ran out of them, so there are 2
In C/C++:
int i = 0;
while (cats >> cur) ++i;
You can use the for loop for 1-based counting, too. However, the variable would be incremented once more. So, if you move the declaration outside the loop, you get
int i;
for (i = 1; i
the int array of digits got me
TodePond is great, makes awesome videos
13:26 Wolfram Mathematica defaults to fractions until you pass to a numerical function.
constconstconst writes a value to blockchain lol
I thought that was const const const const?
the only thing more permanent than literally redefining reality: a blockchain
brainrot language
const const const 3 = 3;
3 = 3 // maybe?
@@bloozy85 Use ! not ; Now you got the opposite of what you want :O
@@theunknown4834 😂😂👍👍
@@theunknown4834 i mean it still works for negative priority
"You could use their while instead"
Uh
Tail Call, recursion?
I am more hyped that a new Fortran is out!
I am speechless at the sheer brilliance that this language embodies. It is truly perfect (though just as clearly requires more additions to further enhance the perfection).
The day DreamBerd replaces all other languages will be a day to celebrate. A global holiday will be made to commemorate such a day when (not if, if's don't exist after all;) it comes to pass.
Remember to suppor [pending on AI completion]
this language looks stupid
agreed. unironically funny tho thanks for this masterpiece!
Yeah, a smart language would use frogs and not birds
Thank you for the video, it's a funny concept although I doubt this language is going to be practical. It's true that it kinda challenges the way we got used to code but the thing is there are reasons why we do a lot of things the way we do them. For instance, there are reasons why no language allows you to define lifetime duration for a variable: no code ever runs consistently, there's no telling how long a specific procedure will take on different cpus/systems/machines, even during different runs on the same machine; and if some piece of your code is dependent on a variable with a specific lifetime duration it may work one time and fail another time in the most unpredictable ways.
There are also a lot of features that look curious but make no real use, like the ability to redefine 5 and make it become 4. There is absolutely no use case when allowing that could do anything helpful but it definitely makes it easier to "shoot your leg with a -gun- cannon". And that can be said for a lot of other features of the language.
Anyways thanks for bringing it up
My broccoli brain is now a balloon
Mathematica (Wolfram Language) actually makes some of those choices, like the best of both worlds in 0-1 index starting position (array elements starts at [1], but [0] is also meaningful as heads), keep fractions by default, do overload as pattern matching, and allowing "overloading" variables
Imagine adding let to the equation
10:27 undefined is just property of window, you can do this: {const undefined='maybe';}
7:20 The lifetime of objects sounds like fun unexpected behavior between 'lifetime ended' and GC cleanup. Or should the interpreter check the time for each line which would be absurd to do lol
I know it's old, but I would love to see you react to the INTERCAL spec.
I like the question mark operator, but "debug info" on what's already a print statement seems of dubious usefulness. I'd have liked them to provide a better example. :D
"When" is really cool, as is floating point array indices, but the -1 starting index is cursed. Although nothing is more cursed than the ; operator...
Not having loops is actually something you can probably solve with When statements. This might actually be an amazing language for hardware development. It's effectively a state machine.
Negative indentation! Haha, that's beautiful. I would never want to _use_ it, but that's great.
With integers being digit arrays (...wow) that also means reassigning a number as a variable affects any number that _contains_ it. That's wild.
The single-equals and zero quote strings are actually cool too. Theoretically the language could figure out if it's making a comparison (inside an if, for instance) and _not_ reassign. Or reassigning also returns the comparison of the prior values, _then_ assigns. But a zero quote string... sure, if the thing you assign isn't yet a variable I can see it just making it a string. Otherwise it's also assignment. That could make for some cursed debugging.
I think I understand why there's a question mark operator now...
Mandatory factory pattern. Just. Mandatory factory pattern.
This language was apparently designed to make coding the Fibonacci sequence really convenient. And apparently not much else, but it does that really well. :D
make a PR Theo, you got so many idea to make this a better language.
This kind of videos needs its own special tag in title.
So those who don't need their daily dose of sarcasm won't waste time clicking on it.
It wouldn't be so bad if it wasn't so over the top. Sarcasm is fine, but it became annoying so quickly that I can't even finish the video lol
debug info from a exclamation is actually quite cool
Theo the fact that youre so obsessed with emogis as variables is wild. lol
i mean i get that you like it. thats fine.
but to say its "annoying" that a language doesnt support that is crazy.
its a programimng language, youre not texting your bff lol
love your content though, great video!
6:00 floats for indices... imagine that! I made a draggable list of items in one application that was using DECIMAL format for index column in database, which was used for sorting elements. it allowed for easy inserting or moving items through a list without updating many records XD
10:58 Fine, then I will:
In binary, the number of bits required to store a value that can take on up to N states is log2(N)
and log2(2) = 1
log2(4) = 2
thus log2(3) must be 1,5 saving half a bit for other data. This is great for cache locality, allowing the developer to fit more data into the processor's cache and increasing performance of the app.
Q.E.D.
LISPs like Common Lisp, Racket, and Clojure have native rationals. 13:38
did you know the best april fools jokes are not done on april first?
11:17 No actually though fuck pemdas. (G/P)EMA on top.
I wasn't a subscriber, this video just happened to come across my feed because I've been watching a lot of programming videos recently. I thought it was funny and pretty good, but I didn't think I'd subscribe, just like and move on.
And then 54:50 happened.
Instant subscribe.
13:42 Rationals don't usually exist as a language feature, but many languages have libraries for them. Nobody uses them though because they aren't actually as good as you'd expect. Not everything can be represented as a fraction first of all, and also, it's much harder to round fractions. This is important since the numerators and denominators tend to inflate to rather large values, which, unless you want to use BigInts, requires you to do some form of rounding to manage.
Burp, please excuse my dear aunt sally
Brackets > Parenthesis > exponents > mult/divide > add/substract
The one thing i will never forget from 6th grade math class apparently.
The language is not even out yet, but all the jobs require 2+ years of commercial experience with it...
why are they still using print(scores[0])!
instead of just scores[0]?
I could see negative indents being useful for conditionals that with "maybe" keyword to write functions with multipurposes, like if the variable is not maybe, process the code block below including negative and positive indents, but if it is maybe, parse only the negative indents.
I can already see developers pulling their hair and jumping out of the window..
Imagine dream bird becoming as popular as JavaScript
Great satire, lets learn from it, here's what i like:
Declarations + but mixed var const is cursed, make use of numbers, so const3 instead of const const const, oh, and 'const' now means const2
Functions + but not like this, let me assign const4 fn= function (const4 means its a part of the language now)
Types + this helps support lexers, but allow it to restrict type, give me byte for int8 and Bigint for int300
Time + sometimes the client has their clock wrong and it affects synchronization, so just fix it :)
i hope this language is real
Someone has already made an interpreter for this.
would array[-2] get the last element?
Swift actually supports emoji in variable and method names i believe
The exporting thing, isn't that actually sort of what Java now does where you can define who can inherit a class? Or something like that
imagine how frustrating it can be to do a fraction arithmetic just to get maybe as a result
19:04 "You should have to use the Bitcoin logo if you're writing cryptocurrency" *highlights the Yen symbol*
5:59 Here's how I think about it: It's not indexing, the possible indices for the list are now -1, 0, 0.5, and 1. Like Lua!
as someone who calls functions methods, i would greatly appreciate if in this language, you could also use the same thing as the function keyword, but with method as well. so for instance, you could create a function using "meth" as a valid keyword.
alternatively, it could be made so that in the case that "meth" is used, all numbers written within the function will instead be random and/or swapped with each other.
Racket has fractions, and calls floats "inexact numbers"
In Godot, a const Dictionary is immutable, unlike a const Object. I don't _want_ immutability, I just want to prevent reassignment. The "const const" syntax from DreamBerd sounds like it would be great to have.
Youre forgetting how attrocious OS were at emoji before win 10. As someone stuck with win 7 for memory saving reasons I just cannot use them natively anywhere.
15:21 I would actually try DreamBerd just because of this lmao
26:50 so to make a library importable you need to use the method of exporting a function into the library telling it where to export to?
The 1½ bits per tristate sound stupid, but could be useful. Imagine you pack many of those together. Two of them occupy 3 bits, not 4. That means when you code for a PDP-10 with its 9-bit bytes, you can store 6 tristates packed in a single byte.
Feels like rust and fortran had a baby. I like it.
8:53 I agree, GoTo statements have always been the best method.
the language that all gameclam games are written in
Ok but the programming language Uiua is totally different to C, JS and even DreamBerd it implements a bunch of nice things and is genuinely a really useful and fun language. (and it uses ? for debug)
How do you keep a straight face while reading this 😂
17:25 The Mathematician in me has to object. Only 0/0 is undefined, since everything x0 is 0. 1/0 is AN infinity. Both undefined and the infinity of 1/0 are elements of the Set NaN.
The new file tag seems a bit like Bamboo yaml spec "Document" tag... Its allready out there...
14:59
jshell> String hi = new String(new byte[]{'h', 'e', 'l', 'l', 'o'});
hi ==> "hello"
jshell> String hello = "hello";
hello ==> "hello"
jshell> hi == hello
$3 ==> false
13:30 Scheme and its derivative language have fractions, as part of a full numeric tower.
Parenthesis
Exponent
Multiplication
Divison
Addition
Subtraction
do not think multiplication comes before divison they are in the same step so for that you read left to right with the calculation of multiplication and division and the same is true for addition and subtraction, they are in the same step do left to right with the calculation.
take a shot every time he says "duh"
The whole "const" and "var" idea is actually pretty good ngl
everything is a string and a number
on the String interpolation for currency, euro should still go in front...
@t3dotgg I am using Next.js 14 with the app router. In my main layout file, I am fetching user data using a server component and then sharing that data with a client component. I have a context provider that passes this data to the context, allowing me to easily access the user data across all client components on different pages.
However, I am facing an issue: while I can easily access the user data from the context in client components on all pages, I need to access this data in a few server components on other pages as well. How can I achieve this? Should I use cookies on the server side for this, or is there a better approach?
Dude just casually threw 500 dollars at a charity on stream -unprompted- and I'm eternally thankful.
Edit: actually very much prompted but whatever