Hey guys, it's Nate, aka The Foot Accountant. Welcome back to the channel. We need to talk about this market because it is getting crazy out here on the foot market with all of these new team season cards with the upgrades that were released today. Everybody is like in this mode where they're just selling all of their cards because they want to do these Premier League League upgrades which are very very expensive and it's draining lots of coins off the market and nobody's thinking about buying Premier League cards because these upgrade SBCs are what everybody is focused on after today. EA is draining tons of coins off this market right now as people are going out and doing these pack spikes in sets of 10s, 20s and 30s and this SBC costs like 28,000 coins. I think at the moment let's check for sure on foot bin. I'm pretty sure that this SBC that came out today costs like 28,000 which is crazy. The Premier League upgrade is 29,000 coins. Premier League Rare cards are like almost 3k apiece if you want to buy the cards that you need for the team which is just crazy man.  It's just created like the perfect storm for EA and that's also dropping a lot of these cards on the market to crazy low prices that like this is like the cheapest Premier League team of the season I think we have like ever had. If you go back and look at some of the past Prem Tots last year, Salao was 2.2 mil at this time. I don't remember about some other guy. I know Mané was over 2 million coins. Sun was a striker last year so that makes a difference but he was more expensive. I think Obamying was even way more expensive even a Van Dyke. Like a lot of these guys were way more expensive last year. This year is just the year of supply with all the lighting rounds and with the amount of saved up packs that we had. A lot of people are doing that these days. You can get a lot more packs through the more SBCs that are in the store and you can save up a lot more. So we have like a very supplied team of the season and also people are just hitting these SBCs so hard that they don't want to do anything else and that's dropping these prices. Not a lot of people are really looking at the Prem Tots cards right now in terms of like hey I want to buy this for my team. That's why you're seeing a lot of these guys just drop so much because people are selling these I think because they want to go do upgrade SBCs. As crazy as that sounds I really think that's why you're seeing these panic sales. Are these guys getting too low? That is the biggest question. Are they getting too low? For me I don't think they're really going to start to rise. I don't see any reason for them to start rising until we do hit the Wednesday Thursday timeframe. Supposedly on Thursday is going to be the guaranteed Premier League team of the season SBC. If that does not come today on Tuesday, Tuesday today would be the other day where it would be plausible that that SBC could come. So check out Footwatch on Twitter. I'll leave a link to their Twitter in the description. They have access to the EA code that is updated for when there's new packs that come out or new different types of packs that are entered into the code. So if we get a guaranteed Premier League team of the season pack that gets put in the code tonight that usually means it's coming the next day. So if we don't see that tonight then I would expect to see it. I guess it could come Wednesday but it wouldn't make sense if EA is kind of following their same trend. They would put that SBC out on Thursday. But it's I don't know what they're going to do man because we got the E-Saudi league toss today as well and if we look at that team really fast I don't know how many of you guys are really interested in this but a lot of these guys are probably going to end up being like some of the cheapest players by their rating. I mean already if you look at some of these guys 80k for an 89 rated French striker that's pretty low for an 89. If you see this guy like maybe 36 or 37k that makes me really interested. This is an 87 rated card. A lot of these guys are going to be great for a team of the season SBCs in the future and you know they're not bad cards. Amerba that's a FIFA favorite right. He had a an SBC earlier this year. This Geovinco card is what everybody's talking about. It's a juice looking card. It looks really good. Hamdallah looks solid as well. If you want to buy any of these guys for your team if you want to club stock them for future SBCs or whatever these guys are impacts through next weekend. So the lighting rounds that will come with this next team of the season set that comes this weekend they will be impacts then. So I would look to buy them on Sunday night of this next week before they go out of packs because that was kind of the low point for a lot of these EFL Tots as well. Calvin Phillips bounces around all over the place but for most of these other guys especially the usable ones like a Ben Ramo, Mateus Perea. You know Sunday night I think is going to be weekendly sell off time. It's going to be your time to buy a lot of those team of season cards this next weekend. So that's my you know talk about that. It's my spiel I guess you could say about that. We got an objective player today as well as a part of the EFL Tots. Romarinho a Brasilver. This is a solid looking card. I think it's entirely in squad battles. Oh there's some rivals. I mean this card is not bad I guess it's not terrible but 82 passing. I don't know if he's a five star skill or not. I guess I'd have to look that up. But if you want to grind this if you're an objective grinder it's it's pretty easy to get pretty easy to get card. You only have to win four rivals games score and assist using a Brazilian player. That shouldn't be too hard. That's the hardest thing so if you want that card go for it through objectives. But other than that today's content was basically just the upgrade packs. That was basically all that we got. We got this Guanca as well which is not a terrible looking card but unless you're going to build a Saudi League team and 85 rated squad for this is just not for me. The main thing again today was this four gold rare Premier League players pack and the 82 plus upgrade which by the way if I were doing any of these packs if I were doing any of these packs which I did a set of 10 82 pluses tonight if I were doing any of these what I would do is do the 82 pluses maybe you'll get some Prem players right and then maybe you throw some of those Prem players in to do a Premier League upgrade or if you're doing these Premier League upgrades just do a couple because I did three tonight from the club and I packed myself my first Premier League team of season card which is now my new right back Trent Alexander Arnold. So I got a really nice pack pull with this card tonight. I'm kind of excited to use him but other than that I mean it's kind of hard to pack these team of seasons. What I would say is just you know test it out try one try to see if it works for you and go from there. That's really really what I would do with those cards but other than that what you can be doing since this market is just so low and it keeps dropping even lower is continue to look at out of pack special cards. If you want to invest if you want to make coins continue to look at the out of pack special cards. I think you want to focus on mostly Premier League and then supposedly this weekend we're getting Serie A that's not confirmed yet but that's the order that which stuff is being placed in the pack code with the leagues. So supposedly Serie A is going to be this Friday. Bale is 940 like DeMaria 680 these cards are low. Pugba is 145. A lot of these cards are dropping so keep an eye out for especially Premier League because I think Premier League is going to maintain a lot of the hype still this week. Breezman is a million. Wow. A lot of these cards just can Hernandez is 189. That's crazy. Cancelo is 200. I like Cancelo at 200. That's that's a buy there if you see him there but seriously just walk through a lot of the Premier League specials. If they went up last week like this center back Kyle Walker is somebody that I trade with a lot 350 right now. Right. He was 376 K on Saturday and I think he was even higher than that's 394. He was actually at around 400 K and even on Sunday he went down to 349. Yesterday he had a low 335 hit 330 at a couple points during the day. Just look at fluctuations like these and if we get big time content like today's 6pm 7pm he was at his lowest on the PlayStation at least because a lot of people just sold cards to go out and do these upgrades. So what I would do is if you want to make some coins look through these Premier League out of packs special cards which I've been talking about and you probably heard other traders talk about that's going to be the move I think this week and if it rose last week then it probably has a high percentage chance of rising again this week. A lot of people like this Mars. I'm a fan of that Mars. Marcello is under a mill. Wow. Some of the stuff. Whoa. Ben Yetter is 139. Wow man. That's crazy. So some of these drops are crazy. If you want to buy a team. All right. If you want to buy a team with some of these high rated you know shape shifters and stuff like that maybe like a future stars player somebody asked me today why this card this guy's down over 200,000 coins. Why is he down? Well you think about it. Look at all these new toss cards for 800k. You could try out Vardy for 800k plus a little bit more. You could try out Salah. You could try out Morris for 800k. You know there's a lot of cards that people are just selling because they want to go and try out these new cards because this team this season these cards that's reduced and these guys have all the hype so that's why you're seeing a lot of cards like this drop in price because you're just seeing people sell these to go buy other versions. This Hudson adoy is 275 right now. You can still trade in this market right? This Hudson adoy earlier today was absolutely 240k. Yes boom 240. I remember seeing this price right in here 240 at one point on maybe it was on Sunday even 230. So I know that this Hudson adoy gets to 250. It looks like you could even flip it for like 250 to 280. Almost every day it's 280 at one point and also it's 250 the last couple days so you can still trade with a lot of these cards and again if you're looking for more of an investment for after Thursday rewards I think Thursday rewards this week is going to be massive for the market. All of these low prices that we're starting to see now it's all going to get pushed up immensely Thursday at rewards. A lot of coins are going to be put on the market and the reason why I'm talking about prem specials is because that's still going to be where a lot of the hype is because more people will get red player picks than people that will get elite or top 100 guaranteed team of season packs right? There's a lot more people that will get reds and they're going to probably try if they get some good prem reds to stick those in a team and make a team around them even if they only have 500-600k you can still build a decent team of some special cards right? Well you might see some of the lower tier guys like maybe a dignit goes up this weekend 110k prem french left back maybe this why Naldum actually has a chance to rise this week he didn't rise last week because of Inditi maybe he has a chance to rise this week if somebody packs Trent or Robertson and wants to have some Liverpool links going on there this Madison could rise this week Sterling if you see this at like two two forty I think is a good price for him that's where he was last week what did he go to on the weekend Sunday morning he was 280 yeah 240 for this card or under today he had a low of 240 so yeah if you see Sterling at like 240 I'm a fan of that left wing with the English links there's a lot of English cards like Vardy a lot of people are using him there's some English cards in your Wambasaka Henderson Rashford I don't think Rashford would really affect that Sterling price just because they're in kind of two different price zones so that's something to think about and then other cards are just taking an absolute beating in the panic sell I mean this Walker cards down 100k 100k he's down Neymar is down almost a mill Lewandowski is down like 200k this guy was 900k like two weeks ago crazy right so a lot of panic selling is happening right now there's going to be opportunities to make a lot of profit if you want to buy a team of the year high end icon again I stress this to you watch the panic selling now right this De Bruyne is getting low again like that's low man this Mbappe was 3.6 this morning Kante was 2.4 flat earlier today Messi was 3.25 the young has been under 1.5 so just watch the panic selling on these if we get like leading into Thursday I'm really curious to see with everybody knowing that Thursday is going to be a massive day on this game I'm really curious to see if there's more sell-off on some of these cards on Thursday so if you're looking around the market for some of these undercuts make sure you're trying to get bids and really really low undercut deals because there still might be some lower prices on Thursday as we near the rewards time frame and as we near a time frame where a lot of people are going to think buy that's the other thing that's going on with this market right now right nobody's really thinking buy buy buy they're just thinking okay I want to do upgrade packs while these cards are getting low but there's going to be more supply coming so they don't really feel like they want to buy just yet because people normally don't buy their week in league teams on on a Monday or on a Tuesday right they normally buy them on a Thursday or on a Friday because they want to play week in league and then they sell them afterwards because they want to have coins to do stuff during the week or to try cards out but it almost looks like nobody's even trying cards out right now like nobody even wants to play with these new tots cards or at least the fact that people keep selling them to go do upgrade sbcs this were charlison card i'm going to be honest uh i did not expect this card to be this low this is crazy low for this card he's under it's like 135 man 1.35 mil for this boosted team of the season for charlison one four is what it shows right now technically uh but flip and says 135 this this guy was almost 1.9 mil on the weekend aguero that these top tier guys are getting hit the most i actually want to look at a bombing first right remember how i keep telling you guys how this card is so rare he is still so rare compared to all the team of seasons this guy's 1.7 under 1.7 mil 1690 right now razy this guy was 2.2 mil literally three days ago on saturday so and just wait until we get the influx of coins on the market um that's going to be a crazy time a lot of you guys want to know when to buy these cards and i want to talk about that too i've been telling a lot of people that hey thursday is going to be your day for a lot of these with the elite reward supply that is only if that is only if this is uh the guaranteed sbc comes out on thursday if the guaranteed sbc is in the code and it comes out today on tuesday or on wednesday then you might want to look at the panic selling on these cards just because they're so low already and they're going to be panic sold more going into that sbc then i would consider buying them then if you see another like 10 drop or maybe even like 15 20 drop in these cards that's when i would take action like maybe a bombing gets one five and you're like oh my gosh that's crazy that would be crazy and but i think it's possible i think that could happen one of the cards that i think this has one of the most crazy movements just because of how much hype this guy has this kevin de Bruyne was 4.4 million on saturday right now he is 3.7 he was just under 3.7 a bit ago uh 3705 this guy was just under 3.7 mil wild this is the whole it not it's above whole it's club 90 this is above whole gang this has the most in-game card stats in the game i believe ahead of uh prime icon moments whole it that's going to be a card a lot of people go after right a son son is 1.5 mil like what these prices are just almost crazy to believe honestly that's what it is but uh i still think our windows of opportunity here to buy these cards are probably going to be later this week uh or whenever the upgrade sbc the guaranteed prem sbc does come one interesting time period that i want to point out to you guys and just say hey be ready for this if there is a lot of panic selling heading into week and league rewards on wednesday night early thursday morning before rewards start if you see a lot of panic selling on at that time like we see maybe this a card like this drops 100k or um a card like vardy drops 50 60 70 thousand coins from where it was at you know middle of the day wednesday then that might be a pickup before rewards instead of during rewards because once rewards comes and especially once the 6 p.m content comes if the guaranteed sbc is that day and if marquis matchups is that day once people get those coins in their clubs especially since ea is just taking so many coins from our clubs right now uh which is going to happen again later this week on thursday too with the other prem league upgrade pack but i still think that's going to be a time on thursday where a lot of those cards go up because of all the coins injected people might just be kind of done with upgrades they might go try a couple and then just buy players they want to go so i think thursday is going to be a big update on the market and then into friday as well friday night you're going to see these cards really move up but for now and for the rest of this week i think it just kind of trickles downward in price if the guaranteed sbc is today i do think you would see a lot of panic so it seems pretty crazy that some of these cards are this cheap i think salah is crazy cheap again this guy's team of the year last year or team this season excuse me was um 2.2 million coins at this time and he's literally a million coins less i know we have uh saint maximin in this game but this is a crazy card if you look at his stats man he's got 99s in so many places the three star weak foot hurts him but still it's a team of the season salah so just watch these prices fall do some upgrade packs if you want to and just keep you can still do look at open bids on these guys man because a lot of people aren't just buying these right now there's more people selling than buying so watch open bids you might be able to do like a quick flip with a trade on any of these team the season cards doesn't have to be a high tier one could be wambasaka could be kovacic could be roberton i can't believe that this roberton team of the season card this guy was under 300k today under 300k for roberton's new team of the season there he is 300 000 coins flat for this type of left back in this game with all 90 stats in the stats that it matters for a left back wow i know his strength is kind of low you can boost that but it's roberton right this is one of the best left backs in the prem or in the in the game best one in the prem crazy that some of these prices are getting this low so just be ready right just have your coins ready if that's something you do want to buy or get ready at rewards time to be able to snatch all those cards really fast and just kind of think ahead about what other market movements that we could see this week again i just kind of see it more trickling down throughout this week so open upgrade packs if you want to you can do league sbcs if you want to i presume we might get a premier league league sbc update today that's something we could see and just kind of keep tabs on those prices and watch this stuff again make a plan if you want to build a team right put concept players in your team and keep checking those prices every couple hours use the companion app use the web app to stay on top of those prices and monitor them closely so that you know how much that card likes to fluctuate you know if people are constantly buying it up when it gets undercut just a little bit that would show a high level of demand for that card um and just kind of just watch the card and see where it goes and learn its price really well over the next two days before it becomes maybe the buy time for that card so that's a video today just a lot of market crashing going on right now it's going to all reverse on thursday when all the coins are just pumped on in this game it's going to be crazy to watch honestly a lot of opportunity to make coins as well but until then we open upgrade packs and we enjoy this market crashing I guess you could say and just kind of wait it out all right it's been Nate the foot accountant hope you guys enjoyed this video today if you liked it of course smash the thumbs up comment down below and subscribe if you're new but I will catch you guys in a video soon peace


I'm Dr. Suni Vallabhaneni, working in the Intel Medicine Outpatient Clinic here at Mid-Michigan. Before I came here I was working with Central Michigan University teaching residents in the Intel Medicine Department. My approach to the patients is to know them well from what kind of walks of life are they coming from so that I can work closely with them and partner with them to design a specific plan to their needs. My hobbies are besides hanging out with my family and two beautiful kids, listening to music, going for short runs and an avid tennis player. And I always constantly look for good partners to play tennis here in the town. And I'm open for new patients in the Midland Clinic in our patient setting in Intel Medicine. And I look forward to helping people know them well and give a holistic care.


Okay, so good afternoon and welcome to this new seminar jointly organized by the ICTP library and the Science, Technology and Innovation Unit of ICTP. So it's with great pleasure that we're hosting today Elena Giglia, University of Turin in Italy, and she will talk about open access, why, what and how. So I would start by sharing this good news of the UNESCO recommendation on open science that was presented in the series of seminars just a few months ago has been approved by the General Assembly of UNESCO this week. So that's great news and I don't know if Elena you want to later comment on that. And we had Ana Pechic presenting the recommendation and so it's really great news for us. So a short introduction about Elena, so she's head of open science unit at the University of Turin. She's part of an international open science network being a member of several working groups, some European unit funded projects and scientific boards. She has been training and advocating for open access and open science since 2010. So she has long experience in this and I'm sure that we learn a lot from her talk. Just to say that next week we'll have a second part from Elena about open data that will happen on the 23rd of November at 3 p.m. So we look forward to the second part of this seminar next week. And finally if you have any questions and I'm sure that you will have interesting questions for Elena please use the chat or use the question and answer feature of Zoom. Elena please the floor is yours. Yeah so thank you, thank you Marco for the introduction and thank you for the invitation because it's always so useful and I always enjoy so much talking about open science, open access and so on. And from now on I will switch my camera off so that you can let's say concentrate on the slides and I'm going to share my slides. Can you see them and now in presentation mode right? Okay so the slides will be available for you, they are actually already available for you on Zenodo, on this open repository and as you can see here they have a creative common license so you are free to reuse not only the slides but also the photo because all the photos in the background are mine so feel free to reuse. So we are going to have two seminars together, today we will talk about open access, why, what and how and I will tell you I will be focusing mostly on the why because I don't like when someone told me what to do without knowing the reasons okay why we need why we need open access and open science. And our next seminar will be on fair principles because they are the let's say pillars, the building blocks of the EOS, the European Open Science Cloud and as we and or of a more global let's say open science cloud so it's important in my opinion to know again what and and how to make your data fair. Actually we are going to have just two hours together but in my opinion there would be a lot more to discuss so if you I would say if you like the topics we are going to to discuss today feel free to organize further seminars or courses or anything you want I'm available for that. So let's start with the why, why do we need open access because we we still have 75% of published research behind a paywall and that's not acceptable all the more so because we are talking about research which is funded by public money so in my opinion it's really not acceptable to have just the 25% of this research available and as you can see here you can see that in the slides you will find all the links to the sources so I'm not saying anything without evidence okay so you will find the link to the sources and I particularly like this quote from this article by John Rudik we don't know which research papers that today remain inaccessible could inspire solutions for tomorrow and that's why we need 100% open access and then we are leaving in the pandemic okay so I think we can learn some lesson from from COVID the first one being that sharing is crucial and that open science is not just you know the the fashion of the moment is a must-have because the value of open science was clear during the pandemic the second lesson learned was about data usually when you think about scholarly communication you might you might think about the final output which is the article okay the paper but the COVID showed us that we need data we need data we need them to be fair by design and we need them immediately we need results and by results I mean data but also the paper and whatever immediately okay so we don't have to keep them segregated for this peer review process and I'm not saying and I want to be clear I'm not saying that peer review is not useful but I'm saying that this kind of peer review this process of peer review which keeps the the paper closed for months and even years in some disciplines can be done in another in another way okay because the pandemic showed us that we need the results immediately if you rely on the traditional subscription based system we would have seen the first articles about COVID at the end of 2020 can you imagine because the average publication time is nine to 18 months another lesson learned from COVID and I invite you really to listen and to watch the video recording of the keynote Robert Terry gave to the Open Science Fair early in September this year Robert Terry is working at the World Health Organization so he knows what he is talking about and he told us that in the WHO living guidelines only 20 less than 25 percent comes from traditional literature so he said and it's very I would say it's a strong sentence they failed us right when we needed them more speaking about commercial publishers and commercial journals so again Robert Terry we need to rethink the order so first publish the preprint and in physics you you know that with archive you are already used to do it then go for open peer review and then the paper can earn a real impact in the real life and not using this toxic indicator which is the impact factor which is right it is like winning a gold medal without even running a race okay just because you publish in nature your paper is is recognized excellent okay but the the real impact is another way and another message from Robert Terry the concept of journal is dead because there is no such thing as a version of record because science is dynamic okay it's a process you can't fix it in a version of record which on the contrary is what commercial publishers keep saying and keep asking money for and by the way if you are interested in this idea of journals and replacing academic journals there is this preprint by beyond brems and other colleagues speaking about the current crisis in in journals crisis in reproducibility in functionality and in sustainability so what they propose is an open infrastructure just to share data and information and the last lesson but it's it's the most important one look at this paper published at the beginning of the pandemic we are opening everything scientists share coronavirus data in an unprecedented way to contract contain and treat disease but this young researcher when salary year working at the University of Montreal underline an interesting concept so if we have to stress that scientists are opening now everything is because the normal behavior is to put barriers to science and not to open it and look at this wonderful example from nature again at the beginning of pandemic calling all coronavirus researchers keep sharing stay open and then you see subscribe a subscribe label and we know that subscription are an issue because they close the content for anyone not having a subscription and if you look at this recent survey 95 percent of researchers somehow eat a paywall so access is still an issue if not say I wouldn't exist exist and listen to what Bernat-Rontier is telling us the single fact that providing free information on universal science is illegal tells us a lot about how absurd it has become to rely to the on the old research publication model and Bernat-Rontier is rector emeritus at the University of Liege by the way here you go with two tools you can see the link again here on alternative ways to access journal articles without going on Syab which is a pirate so it's not it's not legal but anyway I'm not saying not to use it so what we are doing today and that's why we need open access today we are paying commercial publishers to look up a content which you produced by public money you also it for free and you review it it for free and during the pandemic we have to beg publishers to access our own content resulting in pop-up like this so 32 dollars to buy a PDF or look at this this is a wonderful example an article dealing with the open access ecosystem and you have you have to pay per view okay so it's really nonsense and we are paying a lot in 2016 the March Plan Gesellschaft issued a report on on this let's say it was a white paper actually if you divide the amount of money 7.6 billion dollars in 2016 paid worldwide in journal subscriptions I'm not talking about open access I'm talking about journal subscription if you divide by the number of paper published in here you will find that today in the subscription system we are paying from 3800 to 5000 dollars per article okay so reading today is not for free if you can download a paper is because there's some library paid for it and we pay to close that's the point so this is the amount of money paid in subscription which means excluding all the people not having subscription and by all the people I mean your medical doctor small and medium enterprises startups innovators every every practitioner once he has no longer he or she has no longer an affiliation with a with a research performing organization and the amount of money increased in 2020 to 10 billion so currently we are spending 10 billion dollars in a subscription to close the content to anyone not having subscription and in this situation in which you are not paid nor as those or and or as reviewers the net gain of Elsevier is the 336 percent which per se might be not meaningful if you compare to other commercial giants I think it makes a lot of sense because Google is 25, Apple is 29, B&U is 10 percent but of course they pay the raw material Elsevier does not pay you and 36 percent of net gain means that out of one million and actually the University of Turin every year pays one million in subscription only to Elsevier it means that 360 000 euros of public money is going to Elsevier shareholders so in my opinion that's not a good thing and a few days ago this paper was published about a billion dollar donation estimating the cost of researchers time spent on peer review and that's the actual amount of money 1.5 billion dollars in 2020 so maybe again there might be alternative way to structure this process of peer review you write the papers you review the papers why should you pay me to read them or say in another let's say in another way for researchers it's like going to a restaurant bringing all of your own ingredients cooking the meal yourself and then being charged 40 for a waiter to bring it out on a plate for you and 40 you know is the price of the pay-per-view service so reminder number one publishing should serve science but it doesn't science seems to serve publishers it was costas glinos speaking last week at the conference in Prague costas glinos is the head of the open science unit sorry at the european commissions something about the market so why it's important and it's a worry okay because if you read this landscape analysis um conducted by um Claudio Aspezi for Spark Spark USA this this coalition of of libraries and and so on supporting open science anyway the landscape analysis showed that publishers are moving from content provision to data analytics and they are selling them they they tried in the last let's say two or three years to buy or to develop tools to cover the entire research cycle as you can see here if they sell data analytics it means that they will know everything about what you do and who does it 24 hours seven days a week they are big brother and you are paying them to do it uh this is peter marie rast speaking again during a conversation on on twitter last last week okay so it's it's scaring all them or so because they are absolutely not aware of any conflict of interest which in my opinion is this crystal clear on the contrary and they never consider ethical aspects because if you sell data analytics on the behavior of researchers academic freedom is at risk but also in some countries like uh Hungary or um let's say not so free countries uh also the personal freedom of researcher uh can be uh at stake and all in all what's the difference the difference is that the business of publishers is to make money the business uh in in brackets of academic institutions is to advance knowledge okay not to enable publishers to achieve their commercial goals so in my opinion that would be the perspective to lead us in speaking with in them sorry in dealing with uh with open access and with and with journals but uh houston uh we have a problem uh we have several problems today we have the time to uh to deal only with this one which is 40 43 percent of retractions um in the last years are for fraud our attraction is you know when when a paper published is retracted uh it used to be because of you know errors mistakes or let's say uh not a sound methodology or something like this as you can see in the in the image here and again you have the the link to the source um 43 percent of retractions are now uh because of fraud and by fraud we mean um data fabrication data falsification data makeup and so on and so forth and if you look at retraction watch you will find a lot of um i don't know how to put it interesting stories but also scaring uh so stories and as you can see in the leaderboard uh 183 136 so it's not just one uh rotten apple uh it's it's a sort of new modus operandi um for several researchers and what what is most i would say um worrying in my opinion is that there is a direct correlation among the number of retractions and the impact factor of the journal so the highest impact factor the highest the number of retractions but why is that so it has also been called the natural selection of bad science because if current research assessment criteria uh tell you to do anything uh to publish in high impact or journals you do uh literally anything including falsifying and fabricating uh the data and that's because evaluation became an obsession uh it was a sentence during um yes it was said during a workshop at the Royal Society in London back in 2015 and speaking about early career researchers they said not only we are failing to provide the right incentives we are providing perverse ones because when a measure becomes a target it seems to be a good measure because people gain the system at every level and if you are interested in this topic please go and read this book edited by Mario Biajoli gaming the metrics misconduct and manipulation in academic research but again evaluation is the key uh is the key because this idea this let's say this idea of linking evaluation to the prestige of the journal uh maintains this dysfunctional system of high journal prices uh promotes competition over collaboration and of course uh creates adaptive behavior in researchers but what is more relevant for open access and mostly for open science is that it fails to recognize other research outputs like data uh code protocols methodology because the focus is only on the final output which is the uh the research paper the article so in this context uh open science might uh might help and what's the definition of open science because don't forget that open access is just a component of open science open science stands for the transition to a new more open and participatory way of conducting publishing and evaluating scholarly research and all the three aspects are crucial because it's a different way of doing research of disseminating it but also of evaluating it and central to this concept is the goal of increasing cooperation and transparency in all research stages this is that is achieved by sharing research data publications tools and results as early and open as possible open science leads to more robust scientific results to more efficient research and faster access to scientific results for everyone these results in turn into a greater uh societal and economic impact that's important to underline because open access and open science are not important per se they are important because they have a benefit on a society at large this might be a problem uh in some research performing institution i'm sure for you uh is not but open science depends on open minds and she was nearly pro-est speaking the former vice president of the european commission as we were saying open science is an umbrella concept so open access is just one of the components and uh as you can see in in in this uh infographic coming from the UNESCO the the focus is no longer only on the final output is on the entire research process and on all the components of the research process data methodology open lab notebook and so on and so forth and as we were saying before two days ago the scientific commission of of the UNESCO adopted or voted unanimously for to adopt the the UNESCO recommendation so this is very strong because these are strong recommendation but i'm sure Anna Perzic also presented them to you what's the goal of open access and open science to put science back at the heart of society this is paula mazuzzo speaking i invite you to watch this webinar it was like 20 minutes so it's easy to do because we need to recognize that uh all the in between is science not only the final um the final paper we need to redefine excellence we need to take back control engaging communities and funding open infrastructure to share knowledge and all the more so tell it like it is redefine the concept of failure because science it's it's an incremental process and you also make mistakes okay but science uh goes further also by mistakes okay so the shift we we should let's say uh encourage a shift from the final outputs to the entire to the whole research practice so coming to the what because we have no so much time what is open access is this is the Berlin Declaration the authors uh grants to all users are free irrevocable worldwide right of access to and license to copy use distribute transmit and display the word publicly in any digital medium for any responsible purpose subject to proper attribution of authorship so the only constraint is the proper attribution of authorship and as you can see here it it has been done for any responsible purpose and I would stress it because at the beginning at least um here in Italy or I would say in my institution uh open access was perceived as plagiarism okay I put my staff online and people will copy me but it's not the case because as you can see the only constraint is the proper attribution of authorship and it's clearly stated for any responsible purpose we of course we have some pillars of of this idea of open access the first one is that knowledge is a common and I think we can all agree that scholarly communication is a great conversation so of course the more is I would say open and the richer it is and this is the principle of all the recommendation the policies and so on the results of publicly funded research must be publicly available for anyone really literally anyone uh of course we have benefits the first uh of them being transparency on the use of public funds the second one is a benefit for science itself because if ideas circulate uh earlier and in a in a in a let's say in a wider way so the creation of knowledge uh is boosted okay but if you want to look at this infographic you will find uh I would say a lot of uh a lot more benefits okay in in open access and in in open science and if you are funded in horizon Europe you have to okay so horizon Europe shifted from open access to open science and open science practices will be evaluated at the proposal stage okay as you can see as you can see here so if you are planning to to apply in uh in horizon Europe for a grant uh bear in mind that open science is uh mandatory and it's a strong let's say it's a strong commitment from the European Commission towards open science coming to the how you know that in open access we have two uh roads uh the so-called green and gold uh but again Houston we have a problem at least in Italy in in let's say in academia open access uh the perception about open access is that we are speaking about journals only we always pay to publish and all all open access publishers are predatory publishers uh of course uh none of the book is true and if you if you have some of these doubts or uh let's say uh believing uh please go and and read this paper about 10 minutes around uh open scholarly uh publishing because it's very clear again evidence based so it's not just theory it's not just an idea but you will have some data and some evidence about this about these 10 topics so the green road uh which is also called self-archiving or depositing uh what does it mean that the author self-archive is self-archives in an open access repository the allowed version of the paper wherever it was published according to the publisher copyright policy so basically this is the only one the only uh slides which the only photo sorry which is not mine but the copyright is here to Mel Brooks uh you can do it okay like in uh Frankenstein union uh you can do it even now even according to the current evaluation criteria because you can publish wherever you want and then you deposit uh bearing in mind that as I was saying that it's not only that you can but in horizon Europe you must and to know which is the allowed version uh you have to check uh into the Sherpa Romeo database the Sherpa Romeo database contains the copyright policies of more than uh two uh two thousand uh scientific publishers rarely the allowed version is the version of records so the published one uh often is the author's accepted manuscript which is the let's say the final version before publishing there are possible uh embargo months uh embargo means some months in in which the paper is deposited but it remains uh enclosed access uh if you search in a Sherpa Romeo by the journal name you will get something like this so when you see this icon it means 12 months embargo you can see that you have different uh potential allowed version in this case for the published version you have to pay the accepted version if you put it on the authors on page it's no months embargo if you put if you put it in the institutional repository you have 12 months embargo and please notice that if you find it difficult it's not our fault it's not the library uh the closes are imposed by publishers and um you should be aware of the rights you transfer to the publisher once you signed the copyright transfer agreement so beware beware of your rights and please try to maintain at least the rights to deposit why of course the definitions I think you are familiar with this idea of preprint which is the file you submit to the journal the author's accepted manuscript the final revised version and the version of record which is the published version just to be clear this is the same paper on the left is the author's accepted manuscript on the on the right you have the version of record why I insist on the green road because you can grow old in publishing in the same journal which is maybe the highest imperfector journal the most prestigious one the journal the current research evaluation criteria ask you to publish in but then you can liberate your paper simply by uploading a file in an open archive it's immediately feasible zero cost so why not to do it and why I say in a in a in an open archive you in physics you have archive but maybe you also have an institutional archive you can use it's an order you can use whatever you want but not academia dot edu and research gate because they are academic social networks so they were created for another purpose they are perfect as academic social network but not as open access repositories why the issue is here in the business model because if they make profit they might be both tomorrow you know that we also had Mandalay but Mandalay was was bought by Elsevier in 2017 so what what what guarantees you that your content put in research in Mandalay will forever be open on the contrary if they don't make profit they can close tomorrow so what will be of your content of the content you put there and then the the there in the past years there have been continuous suing and trials and so on and so forth because because of copyright infringement okay and also in September there was content takedown asked by Elsevier in in research gate if you look for a repository you can go to the directory open access repository or to the directory of preprint servers but of course in physics having archive it might not be an option something about embargo just to notice that if publishers really added value to the paper they should not impose embargo because anyone would pay for the plus that they add to the accepted version but actually the problem is as you can see in this preprinting archive the debt there is really a little change from the preprint to the final published version the other road is the gold road meaning that you publish in an open access journal you can find more than 70 000 journals in the directory open access journal 29 percent of these 70 000 asked for an apc for an article processing chart which goes from 250 to 2900 per article but here you might have to change your publishing venue i mean it might not be the highest imperfect of journal the most prestigious one and so on in physics again you are lucky because thanks to the score of three project almost all the journals in high energy physics have converted to open access so you basically can publish you can always publish in an open access journal but you have to pay attention because there is a substantial difference among subscriptions and APCs subscriptions are paid every year every institution pays for the same content i mean if the university of Turin pays the subscription to nature the university of Milan has to pay the subscription to nature if not they can treat it subscriptions increase every year and as we said before they close the content for all those who don't have a subscription on the contrary article processing charges so open access processing charges they are paid once and forever only by the authors institution and they open the content to all so in my opinion there is a substantial difference and you also have to never never mix native open access publishers so fully open access publishers because they have no revenue but the apcs with traditional publishers offering an open option because they generate the so-called hybrid journals but here the main revenue is still the subscription so basically every institution pays the so-called double dipping okay because you pay for the subscription and for the apcs some tips and tricks if you have to choose a journal in the directory of open access journals and this is the concept of hybrid so you pay twice and if you want to know more about this idea of why hybrid journals are the evil please go and refer to this paper in in plan s open access journals are different because they enable open science they enable artificial intelligence text and data mining they publish negative results which we see are important because science fails okay so you can you can you can see here the benefits of publishing in an open access journal and two words about predatory publishers look at this example this is a journal called Early Human Development published by Elsevier and considered one of the highest impact factor journals in in education science they have to retract more than 100 articles published by a researcher because they dealt with medicine in Star Trek and the same happened two weeks ago Springer Nature retracted 44 articles because they were simply nonsense okay and yet they managed to pass through the Springer Nature production system without notice so basically when you speak about predatory publisher quality depends on editorial process and not on business model and if you refer to the paper we have already cited only two to five percent of open access publishers are predatory are really predatory publishers but let's think of it if reviews were public if we all underwent open peer review would it be better and this is the real question if you weren't under this publish or perish pressure wouldn't you be more careful in choosing the publication venue for your paper so it's it's again a sort of perverse effect of this prestige and competitive research environment but by the way to just let's say to detect potentially predatory publishers you have this compass to publish created at the university of liège as you can see is agreed and then you will have a sort of score or of potentially predatory behavior from a publisher and just to recall to recap sorry two ways so you can publish wherever you want and then you deposit in an institutional or disciplinary repository and that so you liberate your paper this is important for evaluation purposes because you keep publishing in the most prestigious journals okay you are compliant with the current research assessment criteria but the only let's say constraint in depositing is to check the policy in of your publisher in share per volume the other way the other road is to the gold road is to publish in open access journal they can be gold so you pay the apc but they can also be diamond so nobody pays your paper is immediately open there are also publishing platforms preprint servers open notebooks they are more disruptive against the current dysfunctional system the problem here is that they are still not recognized in research evaluation but I would say that research evaluation is also trying to change on January on sorry on December the 8th there will be in Brussels a meeting of experts on evaluation just to let's say to align assessment criteria to this idea of openness okay of so rewarding for instance the more the more you are open the more you are positively evaluated so something is changing if you are interested in this evaluation topic we can have a seminar specific on on evaluation something coming from plan s I know you are not let's say it's not relevant for you but there is this right retention strategy which is something new you you have to know because it's the same strategy adopted by horizon Europe so you need to be to be aware if you ever are planning to apply in horizon Europe and because it's a sort of you know prior obligation to your funder and here you have a list of misleading guidance by publishers and the other one is this price transparency so basically every journal should be required to tell you what you are paying for so you are paying for actual services you are not paying for prestige okay so I think it's it's a good let's say way forward okay if you are interested also in books you have open books publishers and all the more so you have some networks okay to discuss in the humanities commons and also an open access books toolkit as you can see is very complete because it starts from let's say it covers every step of the research life cycle so if you also publish books that could be a useful tool for you and finally something about rights so you need always to consider rights in and rights out so may I use other people's material and what I what allow people to do with my with my work this is for pictures so it might be useful for you and also tools to find freely reusable pictures and this is about the author rights so as I was saying before think twice before signing a copyright transfer agreement I don't know if you are familiar with the creative common licenses we have four principles attribution share alike non-commercial and non-derivative works giving place to six licenses going from the most open which is the attribution by to the least free okay as you can see as you can see here and again what I suggest I would suggest is also an entire seminar on copyright and on licenses and something like this okay and that's all from from me for now so thank you for your attention sorry if I hurryed up but we just have one hour so maybe now we can go I stop sharing right and we can go see the chat I don't know Marco if you want to read something you thank you thank you very much Elena first of all for the very comprehensive talk maybe we can start from the Q&A where there has been some interesting questions so maybe the first one is kind of big and it's about the ethical dilemma right there's a journal that our private companies making money of you know funded research with you know public money and is open access overcoming or improving the situation that's a good question thank you thank you Sebastian Miller and yeah it's ethical because it's public money and in my opinion I wouldn't hesitate to use the word exploitation since now I would say that open access can improve can help improve it depends on which open access okay so not the hybrid one I was mentioning diamond journals for instance at the University of Turin we are offering to our researchers a platform to publish open access journals now hosting 31 journals mostly in the humanities but nobody pays so or better it's not true that nobody pays the the library system pays okay but it's free for readers and for and for authors so in my opinion that would be the the right way to go okay and or some open infrastructure open platform not even a journal if you if you go and read this paper I you find in the slide replacing academic journals it's perfectly explained so what we need is basically a big archive okay just to share knowledge to to go back to this let's say initial nature of scholarly communication which is a great conversation so once you publish your preprint then the community discuss okay and it's again a great conversation I think this could be the way forward excellent and then we have I think some questions even in the chat about the same thing so about you know putting your paper in a preprint archive and how what is the timing do you have to do that before you submit it to you know a journal or can you do it after you have submitted it it depends it depends in high energy physics they they use archive so they submit before they put the preprint in archive and then they publish in the journal in other disciplines it's the other way around so you submit the paper and you you publish also the preprint in other disciplines again first you publish the journal paper and then you deposit maybe the final version and not the preprints it really depends on the let's say on the community usage I would say I see also do publishers like Elsevier allow open archiving yes yes of course not the published version but this accepted manuscript so you can do it I forgot to mention that 82 percent of publisher listed in Sherpa Romeo allows some kind of self archiving including Elsevier nature springer nature while a Taylor and Francis all the big ones they they allow for some kind of of self archiving and I would say the library is there to support you so if you have any doubt please refer to your librarian who can help you I mean the question from Hugo is really in the chat it's in the Q&A at the bottom maybe okay okay yeah if open access is supported by the same editors that are subject to the criticism why should it be reliable this is not reliable it's what I mentioned when I talk about hybrid journal and I I I think I use the word avian okay so it's not reliable at all because it's hybrid is a further exploitation because you pay both for the subscription and for the APC so I would avoid the open access by Elsevier and the entrepreneur and so on so sorry maybe I wasn't not clear and then I think the interesting point is that this journal contributes to the metric you know induced perceived excellence so now you pay to publish sorry for instance I find the publication cost of open access journal very high and this journals contribute to the metric induced perceived excellence yes but again it's it's about the first of all evaluation is the key so I see also the question by Ricardo at the end evaluation is the breaking point okay so evaluation is the key we should let's say aim to change these evaluation criteria but anyway even in open access in hybrid journals prestigious journals also open access APC are based on the same prestige let's say scale okay so you don't pay for actual services you simply pay for the prestige to publish in nature you know that after planets so the mean APC in hybrid journal is 3000 okay 3000 euros once planets was enacted nature said this press release saying if you want to publish hybrid in nature so just for one article open in nature you pay 9500 so again the logic of commercial publishers is commercial so you don't pay for a service you pay for prestige and this is what we have to what we have to to change okay this is the point you should pay for real services not for prestige I don't know if it's clear and also Ricardo and then there was a question about she helped that you mentioned in in your talk so can you put pressure and again if you go I see I see Sebastian yeah see up can you put pressure on the established journal yes it is should one promote Saab how is Saab not being legally prosecuted it is legally prosecuted several it has several trials the creator of Saab Alexandre Bakian is actually on the fly because she nobody knows where she lives so it has been prosecuted legally some people in the even in the open science let's say network they they think you should promote Saab but actually I think we should have more sustainable and of course legal ways to make to make communication open we have publishing platforms we can have open infrastructures okay but legal ones and not not Saab oh there are a lot of questions yeah in the chat so and also the yeah one one more again in the QA it's about open peer review should it be anonymous or not it can be both it can be both if you look at Copernicus Copernicus is a German publisher in chemistry I think or at least STM and they they have been doing it for years so they have a double channel the traditional double blind and eight weeks in open peer review for the community and in open peer review you can put your comments by your name or anonymous but what the publisher told us in several conferences anonymous comments are always less constructive than if you put your name because if you put your name and that's the point of open science it's transparent okay so people knows what who you are and what you are saying but if you have nothing to be afraid of why not but anyway open peer review can also be anonymous oh the last one is there any assistance for researchers in developing countries to pay or waive yes the ABC yes there is yes there is many publishers as a waiver okay so yes and as I see questions coming but it's three o'clock so we have to stop here because you have also another maybe if you can save the the file with the questions I can try to to to answer in a written way okay okay not not not to lose all all these questions absolutely so maybe in the next talk next week yeah maybe you can start by answering yeah the big question perfect okay so thank you for your participation because I see really a lot a lot of innovation yeah thank you very much Elena really appreciate it and thank you all and see you next week for the second part of the talk about data thank you thank you thank you bye bye bye thank you everybody


Okay, just setting up a couple things here to get ready. We'll start in a couple seconds actually. So we'll start at nine o'clock. Let me adjust things. Everything's out of place since I got back. So kind of readjusting to life after the conference. Turn those off. All right, awesome. Thank you so much for showing up. I got a chat going on if you have questions about what we're doing. My typical approach with these is just to just kind of honestly explore the stuff. I don't really know exactly what the direction is that we'll be going, but yeah, I just wanted to explore use state today. So there's a bunch of hooks, but today my goal is to explore use state, kind of bump around the boundaries of it, give it its full do and not just kind of make assumptions about what its limitations are. So I'll be playing with that. I was kind of thinking through what my strategy for this is and I wanna just kind of explore each of the different types that you might be able to put in state. So I'll do those. And then I was thinking that kind of interleaved in those I would work on the abstractions. So what it would look like just using use state directly but then also abstracting that what that would look like for each type. I think that's it. Hey Benjamin, how's it going? Thanks for being here. So yeah, so that's my goal. We'll look at the documentation. I figured I'll probably just start just jump right in and see what I know so far. And then I'll kind of look at the documentation for anything that I missed. Yeah, so that's the first thing. That's first things first. So I guess what I'll do is I'll start with a number. I think that's the easiest one to start with. So we'll just get that going. I apologize. My fingers are not exactly warmed up yet. So let's see. So we're gonna just put one in a span here. See style. Make this big. Font size. 32. Okay, cool. Big number there. I'm gonna change. A lot of button. Type button. I'll say increments. Oh, those fingers. Rough. Okay, cool. Let's change this to a diff. I know it's not semantic, but I just want them on separate lines. Okay, so we press increment. It doesn't do anything because we haven't hooked it up to anything. So we can then import useState for that. Then in our function component, we can say let count, nope. Let count equal useState. And we give it an initial value. So in our case, actually let's set it to one since that's what we have already. We'll use count there. So count is hooked up now. Change that to two. Changes the value. Need to remember not to save every time I do something else I'm gonna get set up to the top and code sandbox. So, yeah, so three. Okay, so let's change that to zero. So we'll get kind of like an honest to goodness click counter going on here. Okay, cool. So we got the count, but clicking this doesn't do anything. We need to set an on click handler here. Give it a function that calls, calls what? Calls this function our updateCount function. And what we're gonna do is we're just gonna take a count, the same value that we have here. Remember, we're just gonna add one to it. Oh my goodness, these fingers. Now, we need to peel out that updateCount function as that set, it lives in the second position of that array. So I know that this is new to a lot of people. So I'll kind of like cover that just briefly. I did that in a previous live stream. Anyway, this is all hooked up. So we can see that this works now. So this is great. We, let's see what we did. So we imported useState. So these are the parts imported useState. We peeled off these values from this array that useState returns. So we called useState with a default value of zero. And then we set variables for these values, which we'll talk about in a second. We use count to display the count and we use updateCount inside of an anonymous function in response to clicks. And we just use count plus one. So now in set state previously, you would have to kind of take, because it's asynchronous, you would have to write a function that takes the previous values and then you would use that to like kind of infer the next values. This is significantly easier because all of that is abstracted away for you. And like this count every time this gets re-rendered is going to be the right count. So that's really nice. All that goes away. Let's talk for a second about this syntax here. So the way this works, actually maybe I'll do it outside of this. So the way this works is that you can assign, so you might be familiar with array literals. I hope you are if you're going through this. So array literals would look something like this. So we could define something like useState. Everything's going to break if I do that. Underscore useState equals, and we would do an array, zero, and then some anonymous function that updates zero. Update, count here. Nope, value. Okay, so we'd have some code that does that. Then we can, so we can use destructuring assignment to pull off the values of this. So we know that useState, or this underscored useState is an array. And so we can use destructuring assignment, this kind of inverted version of array literals to peel those values out. So useState. So we say we know that useState's an array with these values inside of it. So we're going to do the opposite. We're going to say, we're going to take useState and we're going to destructure it into values that we want. So this, and we can name these on the fly. That's the really nice thing about this array is that we can call this count or value or whatever. And then our updater, right? So that's really nifty. Now imagine if this was not, imagine if this was an object, right? So some people said, why isn't this an object? So imagine that this was an object. You would have to, you would have something like, it would look something like this coming back to you. Value, zero, updater, new value, and then it does something, right? So I'm not going to implement it. I just want to show you what it might look like. So then from here, we wouldn't be able to name them by themselves. We'd have to, if we used object destructuring, we'd have to take value and updater. Now that's fine if you're only using one piece of state, but if you had, as they showed Michael and then Chan as two different pieces of state, sorry, ignore everything that's going on over here. Now I can't assign these, right? So I would have to do something really irritating like first name, and I would have to reassign those values. So first name up or update first name. Keep wanting to call it first name updater. So I have to do that in order to kind of avoid this naming collision. So I think that array destructuring is actually a really nice choice, despite the fact that it looks kind of uncommon at the moment, because it expects you to name those. Now, one thing that I am really curious about, I've been curious about this for a moment. I'm curious if there's anything else that gets passed to us. So I'm gonna take that whole array and log it out. I'm gonna give it some, another state. So see, let stuff, actually, I think we can just log out console.log use state of zero. Okay, cool. So it looks like all we have in here are the two elements. So we have the value and then this bound dispatch action function, which is what we expect, no problem. So nothing hidden in there, that's fine, that's great. Maybe there will be in the future, who knows. Yes, yeah, it is super cool Benjamin that you can rename those on the fly. It's really nice. It's really weird at first to see array destruction because it's so uncommon, but I totally agree that it was the right choice for this. And I think tuples like that are a little bit more common in other languages. So yeah, let's see. So we have that. Everything looks in place. So we have our counter and I wanted to look and see what it might be like to extract this into a custom hook. Now, I don't think that's necessary at this point, but I just wanna explore the boundaries of it. So I think that we can create a custom hook just by saying function use, and these are all use prefix. So when you create a custom hook, use is the kind of indication that it is intended to be used as a hook. So use state, what we're gonna say is use click counter. So we're gonna call this. We're gonna take an initial value or initial count. We'll set that to zero using the, I can never remember the name for this, but it's like default parameters, I think. So if we don't, if we get a value, it'll be whatever the value is set to. If we don't get a value, it's set to zero by default. And then I think we're going to use this hook. So we'll just copy this out. See, so we have, so we're using this hook, we have count and update count, and now we're responsible to return the values that we want. Okay, so I think what I'm gonna do is I'm gonna actually, well, let's do something else first. Let's just return them as they come back to us. Can I do that? Okay, count is not as fine. So now we're gonna use our custom hook, use click counter and give it, so actually we can use nothing now. Let's equal count update unexpected token. Oh, duh. Okay, let's see if this worked. Cool, okay, so that worked. So we have extracted out this custom hook. All we did was basically lift up what we were doing here. We added an initial value. Oh, shoot, I need to change this to initial count. Let's make sure that works by passing 10 in here. Cool, yeah, yeah, so that works. Okay, awesome. Okay, so the next thing that I wanna do is just kind of explore. So one of the things that Dan showed was that you could return values that you could then use to spread out on forms and whatnot. I don't necessarily think that that's a particularly valuable thing to do here because, unless we have this button, I guess we could do it here. Let's see, how would that work? We would have to do something kind of silly. This would be like really want, actually I'm not gonna do it because it just doesn't make sense. We could do it something like we could have this be children and then this be on click, but that seems kind of silly at this point. Anyway, but it does make a lot of sense for those form inputs. So I'm gonna do one of those next. So I kind of consider this done at this point. We have our custom hook that we're using. We can pass in an initial value like we did before. This is how we handle taking that initial value. It's just function arguments and we have a default parameter. We use use state as we would and then just return those values, perfect. There's nothing special. You don't have to return, like you don't have to destructure the array. So we could just call this, I don't know, let's just call it state. Because I'm not using those values, I can just pass them along as I get them back and then destructure them in place here. So that should still work. Yeah, perfect, okay, cool. So that's the first part, excellent. So that's with numbers and a component. Let's do some other things. Since we were talking about strings, let's do a form input. So something that's really nice is we can do, let's set up a form input just using use state directly and then we'll extract it. So let's see, so we do input type text value, does that work? Right, and this should not be editable, perfect. Cool, clicking tab and stuff, it doesn't work. And then on chance. And then on change, let's say any change that we get, I'm going to, let's see, how does that work? Do you take like E the event and do, okay, so I'm gonna need some state here, no matter what. So we're gonna have something like handle change. Okay, that's not defined yet. So we gotta, let's use our state to define that. So we have m, let's see, let value and update value equal use state of genitastic. So I'm gonna just do this one piece at a time. Value, so this should be genitastic now, okay, cool. Doesn't do anything. So we pulled update value out and we will do this. So on change. Now I'm gonna need to take a function because I don't control this yet. I can do it with a custom hook, but I don't control it yet. And so we'll say take E and let's see, how does this work? Oh yeah, so we'll do update value of E, right? Value of E, right? New E, oh my gosh, it's such a new target value. Okay, cool, now it should work, perfect. Okay, awesome, okay, so that works. So we just used, I mean, again, use set state. This time we're doing it with a string, so this is kind of the second part of our experiment. Value and update value. Now again, we can call this anything that we want and so kind of like moving along this, kind of moving towards that example that Dan showed with forms, we can do, was it on change? Oh my gosh, so we have update value on change. Now, so we've, again, we can rename these whatever we want, so that proves that we can name it whatever we want. Now unfortunately, we have to handle this so we could pull it out into a function outside of all this or we could define a function in here. All that's fine, but with these forms and these strings, we can do something like really cool, which is to just spread out this value and this on change, but we can't do that when we have to kind of do some specially handling for that value that we're gonna get back. So let's take this and extract it into a custom hook. So what would we call this, use value maybe? I don't know, let's go for it. I don't have a better idea. So we will take an initial value, use default parameters to set that to, I don't know, empty string, I guess, just so we can be sure to call functions like two string on it, because otherwise this would be, if we didn't pass in a value, it would be undefined. And if we tried to call things like two string on it, we would have some problems. So I'll just set it to an empty string and then someone might throw in a number and then we solve those same problems, but at least I'm kind of covering my butt here a little bit. Again, we take this, move it up, use our custom hook. So we're gonna, right now I'm just gonna pass it. I'm just gonna do one change at a time, but we'll kind of like see the different things happen. So let's value and on change equal use value, turn, okay, so I need to change this to initial value. Okay, cool. So the initial value should be empty string. So everything works as expected. Cool. Now for that kind of special trick that we can do. So on change, so let's see how we need to do this now. So if we wanna handle all of this locally, we can define a new function. Actually, we can take that from here. So what are we gonna call this update? No, I'll call it handle change. I'm just figuring this out as we go along. So, okay, so handle change, nice. You're probably screaming at me. Okay, change that to handle change. So right now we're returning value and handle change, which kind of is an abstraction over on change, which is going to pull out the event and pull the specific text out of the event. I think that should work. Yes, okay, cool, still works. Okay, awesome, so this is fine. We have basically brought this into our, we've brought this implementation detail of pulling event.target.value into this, but we can make it a little bit better, which is super cool. So right now we have value, value, and on change, on change. That duplication is kind of sticky. Luca. Yeah, yeah, yeah, I just wanna return value and on change. I'm just doing it kind of piece by piece so we can see it all happen. Yeah, okay, so we have this and what I wanna do is basically spread out these so that I don't have to. Now, right now those exist in an array and so I can't spread those props. I need an object to spread those props, right? So what we can do is we can change this. So let's start with what we want it to look like would be like this. So we'd say, see, I don't know what to call this, like hook values. I just call them values. Okay, now that's not gonna work because I don't have that values assigned. So I'm gonna get rid of this and then what we're gonna do is we're gonna change this to an object. See value is gonna be value and on change is gonna be handle change. So this just maps this. So basically on the way out, it's binding handle change to on change. So on the way out when we use it, it's handle change, it's on change here even though we're calling it, we have this handle change function here. Let's see if that worked. Oh my goodness, it works, cool. That's awesome. So now we should be able to duplicate this form without like, so this is really handy, right? Because we can duplicate this form now. So let's call this first name. This will be Michael. We'll do last name, Chan, pick name, fantastic. Okay, so values is no longer there. So we'll make this first name. Perfect. We'll make this last name. Make this nickname. So cool. Oh, tab over. All these work independently. That is super neat. So I guess for the sake of review, we have, again, just starting with use state on all of these.   So we have You hear that? It's like super, just the winds have been kicking things up. It's just gross. So as I'm talking, I'm just like getting out of breath. So we have input type text, no problem. We have, and then what we're doing is we're, okay. So anyway, back to the code. So what we're doing is we're using this custom use value hook that we've created. This is a custom hook that takes a defaults parameter. Now we've set this default parameter. So I think things should, let's see, nevermind. So we're using our use value or creating a use value hook. It takes an initial value. We set the default parameter to empty string by default. So we can call methods like two string on it without concern. And then in here, we use a standard use state passing it our initial value. We then pull off the value and on change. And from that array, we have a function called handle change which we just use to abstract around needing to get this value. So we take the event and then we call the on change that was passed to us from use state with the new text that we want to call it with. Okay, no problem. And then what we do is we return an object with the value here. And we remap handle change to be called on change. And the reason we do that is because now we can spread those out here. And I'll show you kind of, I'll explode one out using destructuring assignment for nickname. So you can kind of see what's happening. So we would have value if you're not familiar with object structuring. So we'd have value and we'd have a, sorry, nickname. Oh, no, no. So we had a value which we would take as, we'll just take it as value. And then we would have on change. Sorry, brain fart. Now we were spreading those, we were spreading those out but now that we're kind of destructuring them here we can't spread them out. So the way that looks literally is value, value on change, on change. Cool. So that still works. You can see that. And all we're doing with this syntax is spreading out what lives in these, which are these here. So this is the literal version of that. Okay, cool. So we did, let's see how far we, oh, 28 minutes. I'm not moving very fast. So we have, so we've done strings, we've done numbers. Let's move to, let's do objects, I guess. Now I don't necessarily think that you're gonna use objects a lot here. It's really nice to have like these different values. Let's see, I'm trying to think of a case where you would use an object that you wouldn't use something like use reducer. In which case, I think I'm gonna skip objects unless if you have any objections just let me know and we'll cover it. Just know that you can use objects here if you want to. I think they're gonna be overly complicated because you're gonna have to kind of produce all of these updater functions by yourself, in which case it'd be way better to just use use state or use state with simpler values. So I'm gonna skip that and we're gonna go to lists. Lists are actually pretty cool. I haven't actually done this, but I have a bunch of ideas that might be interesting. So let's work with arrays. So let's see. Again, I don't know where I'm going. So we'll kind of figure this out as we go along. Let's call it, let's keep. So let list, I'm gonna just use the generic term. I don't know, these might be to-dos or something. Change that to an unword list. What's this gonna be? This is gonna be list.map. We're gonna take each item and return a list item. Okay, cool. So that puts that all in one line for us. So we have a list item. We're mapping over that, sorry, an unordered list. We're mapping over the list and just returning a new array with list items for each item. So if we add one, two, three, four, we can see that that is all hooked up to work.  What was I thinking? Okay, so if we had an input, let's say we wanted to add something to the end of this list. So input type, text, change, no. Do we have to add a form? Oh my gosh, you're about to see how little I use forms in React, at least forms like this on submit, I think is what we need to do. It's been so long since I've done this. I work mostly in making kind of front end tools and like design systems. So I'm actually submitting forms a lot. Let's see, so console.log, let's see if that, but yeah, I think we need to keep that on state. You pissed. Okay, I'm gonna add stuff, just one off, or you can kind of tell me how to do it, but it's complaining about that. So I'm gonna add a key here, which will just be the item. I know right now they're unique. They might not be in an app, so ideas are always best. Log gets cleared out too fast for me. Oh, let's see, on submit. I probably need to prevent default or something. Oh, I don't need this form. I'm so sorry right now, so sorry.  So on click, we're going to, I don't even care about what the event says. I'm just gonna add four. And so we're gonna call, so the question for me would be, how would I add four to this list typically? Oh, I misspelled default, thank you. I'm just gonna move on and make it literal, but yes, thank you. I tend to do that, I don't know why. So what we'd have to do is, we'd have to update list, and then we would see how would that work. So we would take our previous list, I would call concat on it, and add four. So we basically, right now we just have a button that adds four, so I'm actually gonna put that, add four, reference, update is not update list, sorry. Cool, perfect. So this is how that would work. So now we have our updater, and we can do anything that we know how to do. Unfortunately, sometimes some of these methods can be kind of like complicated. So like if we, let's see, so how would we do this? So we could do all kinds of things, so we could return, so instead of doing this method, we could just return a new array with all of the items spread out over it, and four, that still works. Now if we wanted to prepend something to the array, we could do that like this, and just put it at the beginning, right? All right, let's change this to, so now four goes at the beginning of the list. So what we could do is that, obviously this is not too difficult, it does get kind of tricky. Let's see, so what I wanna do is, let's say we wanna do like, let's see, I can't see my, there we go. So let's find out the code for how to do, this is something that I literally have to look up almost every time that I do that, I'm not ashamed to admit that. But let's see, I think it's also on like the redux instructions, if anyone wants to, oh here it is, okay cool. So if we wanted to insert something.  Anyway, so this is something that I want to kind of, if I don't wanna have to look that up every time and like risk creating an error when I do it, it'd be nice if I could abstract this and I think that hooks could give me a way to do that. So let's start by just pulling this list out as a hook. We'll call this use list and we will take array as the initial list because we're gonna be calling a bunch of methods on it. We wanna make sure that we have an array. Let's see, so we're gonna again, just move this up here. I think that we will want to split these out because we're going to be having, we'll have places where we're gonna be calling methods on list, so we might as well just kind of continue having that split out, but we'll return list and update list. So we'll pass those through so that it's effectively an invisible thing to anyone using our API. Oh, Sid retracted a message. Is it because I didn't, I said I wasn't gonna do something. Okay, so now we need to use our abstraction here or custom hook. So we'll say let's list update list equals use list and we're going to see take this here, delete that, change that to initial list and then pass in our list. Perfect, so that works as expected. So everything is working fine. I can add for again, it adds it to the front of the list. Again, I have control. Let's see, Sid, oh, whoa, you're talking to me. Okay, good to see you, Sid. I always love seeing you here, thanks. Oh, he's saying that I should import demo styles. You don't like the empty, the no-styled HTML, I'm sorry. Let's see. Okay, let's see. So we have use list, so again, so we've just created this abstraction around this list. Right now, it's not actually getting us anything that we wouldn't be able to get just by using list directly, but it still works. We can add for or maybe not, what do I do? Oh, I'm just returning, I'm just spreading out the list. Ah, span. Okay, so we're gonna add for and we can keep adding for if we want. So that is fine. Now, what would happen if we were to, basically, we could add some methods here called like append or prepend or insert. So let's kind of start thinking about that. So first of all, in order to do that, I don't want an array that's going to just keep growing in arguments, that'd be really ridiculous because in order to get to prepend, if it was after append, you'd have to destructure all of the values off before it. So that's ridiculous.  So what are we gonna do? First, we're gonna change this to an object. So we'll change list. We'll just kind of use that with a standard punning. Actually, wait, how should we do that? Yeah, let's keep it list for now. So you'll have to destructure off list. You'll have to know that API, but whatever. Might be best actually to change these to value. Who knows? So we have value and update value. So we're gonna have to change these. Um, value. And if I want, I can kind of rename these in place to, so I don't have to update my code down here everywhere. Okay, still work? Yeah, still works. Now, what I wanna do is, effectively I want to add an API that allows me to append. So let's see how that would work. So instead of update list, I'm gonna call append. Now that means that this is going to go away. I'm gonna append just for. We're gonna take a value and how does that work? We're gonna call update value with, ooh, okay. So let's see, I'm gonna, so I kind of shot myself in the foot by calling this value. So I'm gonna change it back. I'm just learning. Again, I did not really think this through beforehand. So append is going to be value. So you're getting the freshy, fresh thoughts from me. Cannot read map. Oh, duh. Okay, so I just need to add that into my object. Cool. So now I have a function that, so I've created this API that does this thing where it takes a value and adds it to the end of the list, which is great because now I don't have to do that work, which is awesome. So let's try adding a prepend. So let's add another button. So we'll say this appends for, this will prepend zero. Let's see, 45. We're at about 45 minutes. So I'm gonna finish doing this, but if you have any questions, just queue them up in the chat and I'll try to get to those before we hit about an hour. Because I know the Apple Key Notes today and so if you're an Apple fan, you're gonna be leaving this anyway, I'll be leaving this because I want those sweet new iPads and the new Mac mini. So let's see if this works. So we have append and prepend. So I'm gonna call the prepend function, which I don't have yet, but I'm going to destructure that off of my custom hook and I need to add it to my custom hook and I need to add the implementation, prepend. It's going to take, put the value at the front of the list before spreading it, before spreading the rest of the list out. So we can add, we can append for, we can prepend zero, oops. Okay, append for, prepend zero, perfect. So we're seeing that all starts to take shape, which is really nice. So pissed. Why are you so pissed? Okay, cool. So that is working. Now let's get back to kind of before we end. I wanna get back to this cluster, which is the insert, that thing that I'm always having to look up every time I write this insert method. So what we're gonna do is, again, you can make this more dynamic, just for the sake of demonstration, this is, these are very literal buttons. But honestly, once we have this set up, you can kind of build your form however you want. So we're going to insert two point, actually no, we're gonna do 3.1. An homage to my friend here, 3.1. Okay, so we're gonna insert 3.1. And we're gonna insert, I can never, okay, so this is zero, this is two, this is three. Okay, let's see. So let's get this implementation here. So I just copy this right off of Stack Overflow. So insert is going to take an array, we don't need to take an array. We're gonna take an index and a new item. So the array is going to be list, list. So we're just changing that to be the list that we get from set state. The index is what we're getting here, perfect. And the new item gets sandwiched in the middle. So if you're not familiar with what this insert function does, is it takes all of the items on the array, it spreads, creates a new array. It spreads off all of the items of the array up to the index, inserts the item that you want to insert and then it spreads everything after the index. Okay, so we have that. Now we just need to add that to our object here at the end, insert zero. Now we need to give it an index. So if I'm not mistaken, it's gonna be zero, one, two. So we're gonna insert it at two, maybe, I don't know. So we're gonna prepend zero, append four and insert. Oh, insert, so insert is not defined. I didn't take it off, I didn't just structure it off. So prepend zero, append four, insert 3.1. Nothing happened, nothing happened. So insert 3.1. Okay, so let's see. I did something wrong here, obviously. Oh, thanks Matt, I appreciate it. I hope that they're helpful for you. I'm just like, honestly, just kind of exploring to try to see, like learn some of these things myself and whatnot. So I thank you for sticking around. If you have any questions, let me know. I'd be happy to cover whatever or bump around the edges of whatever. So yeah, so we have, let's see, so we're spreading out the, okay, so we're taking the list, index, I'm passing. Oh, I have the arguments flipped. Yes, thank you. So let's see, so is that, let's see, what would be the right, let's just flip them to be this order. I'm not sure what I would want the API to be if I were actually making this as a custom hook. So let's start with this, 3.1. No, I was in the wrong order. Okay, yep, so this is two now. So zero to two. Let's just, let's make this literal for a second and see if there's something else that I'm getting wrong. List, new item, okay. So we're gonna do something else. We're going to debug this, let insert. So let's just make sure that this gets called. Okay, it does get called. Oh, I'm seeing chats. Oh, duh, yes, thank you, Adam, yes. And Luca, I appreciate that. Yeah, I'm just, I'm not updating state. Thank you, thank you, thank you. That was about to get real embarrassing for me. Okay, so I need to update state with a new array. So update value with a new array. So okay, cool. And I changed these to be literal numbers. So this is gonna be index again, index. So that should insert. Looks like I got that number wrong. It should be three. Okay, so we can insert 3.1, append to the end, prepend zero. Awesome, cool, we did it. We did it together. Thank you very much for that. Yeah, mob programming. So let's see, let's see. So I think that's it. So the big thing that I wanted to show you with lists is that we can actually abstract a lot of these helpers when we're working with arrays, which can actually be really handy. Cause again, I forget the implementation all the time, mostly just because I always forget how to interpret where the index is cutting things. Like if it's beginning or end, I should just commit it to memory. But the point is, is that if I had a use list, I wouldn't necessarily have to commit it to memory. I could just use insert. Now, whether or not you think abstractions are good or bad is totally up to you. This is just a demonstration of what you can do with use state. Anyway, yeah, I think that's it for me today. I just wanted to kind of go through use state, just use state, play with the different types and yeah, kind of see what the boundaries are. Yeah, that's awesome. Yeah, if you're interested in more videos like this, I'm gonna be doing the same time every day for the rest of this week. I'll probably be doing use effect tomorrow. That might start with something easier cause use effect is kind of the workhorse. Yeah, I'm gonna be doing use effect tomorrow maybe for a couple of days and then whatever. So if you want, you can subscribe to the channel. Otherwise, if you follow me on Twitter, I'll be kind of tweeting those out as they go live. Or you can just remember that it's gonna be tomorrow and the rest of the week at exactly this time. So yeah, thanks so much. Let's see, Luca was saying, I'm kind of worried that every time the set state is called, the entire code and custom hooks gets called. Yeah, we can look, yeah, I don't know what the answer to that is, but yeah, in this case, it's definitely all of this stuff is getting called because the component is so small. I imagine that it's probably controlled by kind of the component tree, depending on if that part of the tree gets updated or not. I imagine that it would probably be isolated to this section if this was just like isolated part of my app, but who knows. Yes, absolutely. Yeah, always gotta be careful of the code we put together. Yeah, so, and yeah, so we'll be exploring like use memo and all those other APIs kind of later on, but I wanted to get some of those like basic ones like use state and use effect, since those are really the workhorse ones to get a solid understanding of those where the boundaries are and whatnot. So yeah, awesome. Thanks so much for hanging out with me today. We'll do some more tomorrow. See ya.