Cool So yeah, this is this is what we're here to talk about. We're gonna be talking about why we use somebody else's code And so if that's what you want to hear about you're in the right room And if not you're trapped in here for the next 40 minutes, and you cannot leave. Oh, they just left so that just proved Thanks guys All right But anyway, I want to introduce myself. So hi. I'm Michelle I design stuff usually stuff for WordPress and although they put me in the developer track It asked me to talk about developer tools I'm really just a front-end person with a background in design So I don't know how much credibility that's going to give me up here on this stage Especially compared to all the other people that are going to be speaking in this room But bear with me because one thing that I do do is I spend a lot of time at word camps and other open-source events And I'm constantly in discussions with a lot of other really smart people About new tools about resources about the things that they're doing in order to do development and If you have spent any time we're more than one developers in the same place how many of you have besides today I mean obviously we're all here in the same room But if you've gone to a meet-up if you've hung out with people at your work if you're a developer If you've ever read any article or blog post about the state of development If if you've ever done any of that kind of stuff. It's inevitable that we are going to have a conversation about our tools But how many times have you done this where the conversation starts to go something like this? Don't use code base.  It's too heavy. It's too slow. It's too bloated. It's on semantic It's not exciting. It's not x or y or z enough, right? No one writes code base in year anymore It's not modern they came up with something better this framework is the new hotness that one's the old boring framework or I don't bother with code base because I just rolled my own. It's superlative Why would you use that bloated old sluggish terrible tool when you could use a better faster leaner more targeted more performant one that you wrote yourself? Why the cuss are you using code base? It's so shocking to me that I can't even have a discussion about it And I'm just going to shut the entire conversation down right now You're not a real developer if you use code base Real developers don't use frameworks. They don't use GUIs. They don't use certain CMS is they don't use certain languages They don't use certain techniques. You're not a real developer So when you heard a statement that sounded like that or read that article or participated in the discussion How did you react? Were you one of the people that was nodding along and agreeing or were you on the other side of the argument and feeling like You had to defend your choice And why did you have that opinion? Why were you agreeing or why were you feeling defensive? Where is the line that you draw between the good tools that are okay to use and the bad tools that you shouldn't be using? Has that line changed for you over the years and why has that line changed? This is just some simple googling of phrases for things that I use in all of my client projects, right? So one is don't use WordPress. We've got about 79 million results for that and one is Don't use jQuery about 11 million results. Don't use PHP a hundred seventy six million results. I Use these and pretty much everything that I build for my clients every day But I bet you've seen I bet you've all seen stuff like this before right all of this So remember at the beginning of the talk when I kind of apologized for just being a front-end person speaking in the developer track Why did I feel inclined to make that joke? How did you react to that joke? What did you think when I said that? I've given this talk at some non-wordpress events like other developer events and I make the same joke But I actually make the joke about how I'm a wordpress developer Like I don't know if that gives me more credibility on the stage guys, but you know Why is that and how do all of these things? Contribute to the learning environment contribute to the inclusivity of tech, especially we're supposed to be open source We're supposed to be welcoming people How do these things how does this environment? Impact people that want to ask questions or want to learn something new or we're just getting into the environment today And now there's always a rebuttal like there are certain facts that do exist right like we do have to talk about security We do have to talk about speed we have to talk about the philosophy We have to talk about best practices like there are absolutes not everything can be good right and and that's true We do need to discuss those things because there are actual repercussions to the code that we use right I mean we are putting things out there in the wild and we should be doing things well So what do we do? How do we talk about all of these very real and important factors without shutting down conversations and without dealing in absolutes? So first I want to get rid of a whole bunch of inaccurate assumptions that we might have about the way people code and about the Way people choose the tools that they use The first inaccurate assumption is We don't need tools. We don't need to use somebody else's code. We write our own like we roll everything ourselves All right Well first of all of course we need tools like you're at a WordPress conference right some guessing We all use WordPress which is a tool that somebody else or many other people built right so We all use somebody else's tools Unless you invented your own programming language and wrote in that you are using somebody else's tools And even if you did you probably learned how to do that from what looking at other people's languages, right? So there's no there's no nothing unique here Everybody here is building on top of somebody else's toolkit right now. That's what brought you here in the first place Another inaccurate assumption is that when we talk about code We are only talking about code like the only thing that we're discussing is what we're writing Not the case obviously there is an outside context. We're not just talking about the code We're talking about what people brought people to that code and what what decisions people were making when they did that We also assume that there are universally right and wrong answers That are the same in all situations and obviously of course clearly you have come up with the right answer Everyone else is an idiot until you learn more and change your mind And then that's just the right her answer than it was before like you were right before but now you're more right and Maybe you were an idiot before but it's fine because now you're better Clearly that's not actually the case Another inaccurate assumption is that the only limiting factor that people have is a lack of skill and Also that every single other person can wants to or needs to gain that skill And so the answer is simply to teach people to use better tools aka the ones that you think are the right ones Which are obviously better because you think they're right Another inaccurate assumption is that everyone's on the same journey, which means that Everybody else has taken similar paths to gain their skills. Everybody has a similar balance of skills everybody has the same resources to access these skills and Everybody has a similar baseline and a similar life to be able to build their skills upon And so that means we can definitely project our own experiences on to everyone else again very inaccurate assumption But the most inaccurate assumption is that the choosing of tools is simple a person looks at two code bases One is wrong and one is right. So they picked the right one that is Inaccurately simple way of how it works. So how how does this really work? And this is the part where we're gonna get really nerdy to be very excited because I have infographics. It's gonna get fun Hope you're excited There are many parallels between how we choose coding tools and how we play games So who in here is a gamer of any any sort board games video games, whatever cool So I'm not a gamer at all. I don't play board games. I don't play card games I don't play video games, but but I'm I'm tangential to a lot of gamers So I spent a lot of time watching games of all sorts Whether that's like board games strategy games video games RPGs like open-world games first-person shooter games Collaborative games party games like I have I've been there for all of the games And I've been able to observe it and I've seen a lot of patterns as to how games are played So you can boil pretty much any game down to this collection of statistics. So first of all we have the game itself We have the player or players who are playing the game and we have the tools Which are basically the things available to you inside the game that enable you to play the game I'm gonna break all of these down into even more details So let's talk about the game first So first of all the game is basically the the internal rules and external situation you are playing everything about everything about this game in Developer terms that would be equivalent to the situation in which you need to use the code and all of the internal and external factors that apply So there's a lot of different things that go into a game. Here's some like nerdy-looking stuff. So Games have an ecosystem this ecosystem has different factors like time complexity resources and importance to break all of those down and Games also have different kinds of objectives So you might have a resource management style game where you're trying to kind of build an empire You might have a competitive game versus a collaborative game, which are very very different Are you playing against the other players you playing with the other players? Are you trying to accumulate things? You're trying to get rid of things. There's lots of different objectives to games But we're gonna talk a little bit more about the different components of the ecosystem So the first statistic I want to talk about is time, which is obviously how long you have to complete the game Inside a game Turns might be timed so I mean there could be like in chess where there's a certain amount of time or levels might be timed Where you have to beat the clock in order to complete something There's also a few different ways you can play a game using time So if you've ever played a game on a speed run that means you're trying to complete the game as fast as possible Which is a very different way of playing the game than trying to play a game through to completion where you do literally every single task That you can possibly do to very very different approaches to time inside a game as a developer What does that look like? Well, these are factors like internal or client timelines that they've they've imposed on you Or that your team is imposed on you It could be the number of contract hours that you have available or that your subcontractors have available It could be whether you're trying to be very very efficient versus very very thorough It could be something where you're using like an agile methodology and you have sprints or you have phases Or any other kind of methodology. Do they're all the things that impact the time that goes into a project? Then we've also got complexity and complexity is basically how intricate or involved the gameplay is and games Obviously have very very different levels of complexity and certain things can be very simple in some areas and complex in other areas So obviously of course the number of rules and processes do we have like a massive thick book or a single page that explains how this works? How many phases or levels are there? Is this like a linear game where you basically only progress one way or is this a non-linear game? Is this an open-world game where you're basically free to go everywhere and do everything within whatever your skill set is? Or is it a closed world? You basically can only do the one thing that you're supposed to do Single versus multiplayer, that's definitely a layer of complexity right there. Are you doing everything? Or do you have teammates that you have to worry about? Single versus multi-objective is there only one thing you can do or are you trying to do a whole bunch of things at once? I'm always thinking of like Skyrim which is just like you're constantly running like 20 different errands for all these other people and you're running around killing Dragons and you're building a house for some reason and Yeah, like there's just like a million different things that go into complexity as a developer What does that look like? Well, obviously it's the complexity of functionality of the thing you're building, right? So are you building maybe for a website like a simple brochure wear site?  Are you having to worry about managing multiple languages like PHP and JavaScript or even the content is the content in multiple languages, you know What kind of compliance do you have to worry about? What kind of standards do you have to meet? These all go into the complexity of a project and now we've also got resources and resources So inside a game it's basically like the supply of money materials or other assets necessary to complete the gameplay What do you need in order to keep playing this game? One is obviously time available One is like an outside game budget. So for example real dollars.  It could be something like having to purchase Stuff to like be able to play the game more like in game weapons Or it could be you're playing a card game and you have to actually buy cards in order to build your deck There's also inside game budgets right like a lot of a lot of these bigger games like your character earns money and your character Uses character money to be able to buy more armor and stuff so There's multiple resources here Developers obviously there is a budget to write for a project was usually a budget There's also how much manpower or a developer hours Do you have available per week or per day or per month or whatever? How much does it cost to get licenses for things? How much does it cost to be able to host things? There's lots of budgets and resources that go into a project and Finally we've got importance which is basically how critical is it to complete a game or a specific level within the game to a specific degree of success so obviously in the game world if you are in a real competition like there's stakes and there's prizes and You're competing it's a little bit more important than if you're just like playing in your friends basement for fun There's also stuff like player reputation, you know, how important is it to be able to maintain a certain level of standards? Does completing this level in a certain way build like create a building block of like how well you'll be able to do on further Levels that's kind of how it works in a game As a developer basically how how mission critical is the success of your project I mean what security concerns do you have is there e-commerce that can't fail? Is there other uptime requirements? Is there like some kind of symbolic importance within the company like this is really meaningful to the boss or whatever? This is really meaningful to somebody who needs to get a promotion and look good in front of their boss There's a lot of different things that give a degree of importance to the game So that's basically the entire ecosystem of just just the game just the context But now we're gonna talk about the player right so in the game Obviously, this is the person who's playing the game in development. This is the developer or user of the tools, right? so players that players have stats and These stats of the player impact which games they can play How far they can get and which tools are available to them and players have a few different things So players have skill which is the ability to use tools They have knowledge which is different than skill because knowledge is awareness or familiarity with the game And then they have a philosophy which is how and why they play so I'll break down all of these first of all skill This is probably the first one we think about The ability to use or wield tools so in a game that's you know your your level your experience what what teams you're on What guilds you're a part of? Often skills need to be acquired in a specific order you kind of have to progress through a certain number of things You can't just jump to a high level And if you're in a very complex game again, I'm thinking of something like Skyrim or something like that You might have different skill levels for different types of tools like you might be super great at archery and super terrible at sneak Which is kind of awful if you're trying to shoot somebody and they can see you But you have different skill levels for different for different types of tools As a developer these there's lots of different things you can have skill levels in the language As you know all the type of dev work you do you know your front-end person you back-end person or you sys admin person Do you have a traditional computer science background? You often have to learn them in a certain order, right? You can't really jump all the way to the advanced stuff without doing some beginning stuff But players also have knowledge and this is actually different than skill And this is really more about being familiar with the game as a whole. So how well do you know the ecosystem? Have you played a similar game before you know like maybe I haven't played this open-world game before but I have played open-world games before So I understand the concept How well do you know this game in general like how well do you know the map? How well do you know which guy you have to go find to ask this question? How well do you know the types of quests you're going to be going on? How well do you know where you can find resources? This is this is knowledge. It's not skill As a developer obviously these are related to a lot of the tools you're going to be using So do you know the specific framework you're going to be working on very well? Do you know the language you're writing in? How well are you familiar with the community and who is doing what and where you can go to ask questions? How well do you know the CMS? Are you object-oriented? Are you functional? Like do you write in sass or less? Like there's so many different things that you could have knowledge about And then there's also the philosophy and this is how and why we play the game and your philosophy Has a big degree of influence on the attractiveness and utility of the tools that are available to you The same player can play the same game totally differently with different philosophies So for example, if you're a game player, do you prefer to play the game? Very straightforward and following the main story or do you prefer to play games as fast as possible and competing for speed?  Those are very very different ways of playing the game and that influences the tools that you choose and the decisions that you make As a dev, how do you write your code? Why do you write your code? Do you want to write it to be? Readable are you trying to make it maintainable by other people? Are you trying to write code to be secured? Do you want it to be accessible? Do you want it to be very performant? Do you want it to be bleeding edge? These are all kind of very different Philosophies that might lead you to make very different choices and how you write your code how many comments do you write? Do you minify everything? What do you include in things? How well do you document things like what do you what things you're choosing to write with very very different philosophies? And Then finally we have our tools and the tools are the actual specific things that you are using to execute So in a game that would be the specific weapon the specific resources maybe a specific character specific set of moves a specific set of armor That's available to you. These are all your tools and Each tool has a set of requirements and a value and a risk associated with them The requirements kind of limit which players and games can use them But value and risk are kind of relative in each person picks those kind of Based on their own philosophy. So as a developer Again, these tools are what languages what frameworks what snippets what plugins what modules what themes? Generally we will be using more than one tool over the course of the game or over the course of the projects And we might change the tools as the game changes So we might start out by using these simpler tools and end up using more complex tools Each of the attributes that a tool has The player will assign either a value or a risk Which is again relative to how the player is playing the game So let's talk a little bit about value. So I've got some little like icons. Let's say this this particular tool right here On the plus side the value it is secure. It is well supported and it is well Documented so these are kind of positive points in favor of using a tool And if these positive points align with what you as a player deem to be valuable And this is how this is like how you play the game then this is a tool that's going to be ranked positively in value to you Some of these values can be mitigated by risks that are higher than the value. So for example For example, this tool is the same tool But it might be secure and and supported and well-documented, but it's also time-consuming and complex So these are negative points whether or not you decide to use this tool Can be influenced by which of those you think is kind of more important, right? So if I'm trying to do something really really fast and without having a lot of time to learn it I may not pick a time-consuming and complex tool Even if it's secure and well-supported and well-documented right because it just doesn't fit with my philosophy for this game But if I have lots of time or if I'm trying to learn something new or if I don't mind that it's complex because I Need it to be complex. I may decide that this tool is positive and I really want to use it So the player philosophy and what game you're playing will determine whether these risks outweigh the benefits Each tool also has a set of requirements So it's basically the skill and knowledge level required to be able to use the tool also which game you are playing I'm obviously not going to use armor to play solitaire. I mean I could that would be kind of fun, but So these are like basically your prerequisites for player skill level knowledge and gameplay So for example this particular tool needs somebody with a skill level of five and a knowledge level of eight These are just arbitrary random numbers they made up So if you don't meet those you can't use this tool regardless of whether or not it meets your philosophy, right? That's just how games work So now we're gonna start taking these things and combining them together to show how Different a game is based on different stats So first of all, let's take a player and modify their stats and see what happens to their gameplay So we've got a player. This is a player called the noob They have a low skill low knowledge, so they're just starting out. They don't have a whole lot What does that mean? That means that there are very few tools available to them So there's a set of tools underneath each tool if they are if it's bright that means that they know about it And so they have knowledge about it and the number represents the skill level that they need to have to wield it So what does that mean that means that? Basically, they have very very few tools available to them that they can use so They pretty much can't complete every game. There's very few games that they can complete at this skill level But they may not want to Increase the skill level to play themselves. They may rather just partner with somebody who has a higher skill level than them To complete this game, but they can't do it themselves. So that's low skill low knowledge We've all heard of the noob, but this is one we may not have talked about as much This is the enthusiast so they have low skill, but they have high knowledge I actually see a lot of these people at word camps and we're talking about Wordpress related stuff because they may not be developers They may not know how to you know use all of the tools But they are aware of a whole lot of tools because they are constantly in the ecosystem, right? So they're coming to things they know a lot about a lot of plugins and know a lot about a lot of things They can have a really good discussion about about wordpress, but they aren't a developer So they are not wielding all of the tools So what does that mean? You can see They're pretty much aware of the existence of like all of these tools except for like one There's only a couple that they could actually wield themselves. So They these people often desire to learn they want to increase their skills Or they want to partner with a player with skills to do something interesting But these are these are really interesting players that we don't often talk about because we usually assume that people are either noobs or experts This is this is another kind of player level. It's actually a really awesome player level. I think This is another one. We don't talk about too. This is the artisan where they have a high skill, but low knowledge What the heck is that? How do you have that? Well picture this a? PHP developer a traditional PHP developer trying to build something in wordpress. So wordpress is built in PHP, right? but um, so they are great at PHP right they could PHP circles around me probably but They don't know wordpress. So they don't know like the wordpress way of doing things They they're constantly reinventing the wheel and and doing stuff that wordpress already has something for so this is an example They could wield almost every single one of these tools, but they don't know about them They know about like one tool and so they are kind of in a similar situation to the noob where they're they're struggling with it They also they're also like get easily frustrated right because they know that they know PHP but like they don't know how to how to write for like wordpress and so they get very very frustrated and feel like they're being Restricted and that these rules are very challenging. So I feel like the artisan is a very very interesting player as well Because they they get easily frustrated They're very very smart and all they really need is more awareness of the ecosystem But they already know how to use most of the tools And then of course we have the expert which is the high skill high knowledge person many of people that are you know Speaking and attending this event are this they are aware of most of the tools and they know how to use most of the tools They definitely have a desire and ability to keep learning and they're also the ones most likely to argue about tools right So that just shows you just how changing the player impacts what tools they can pick right? But now let's modify the gameplay. So let's talk about different kinds of games. This is fun So we've got the the churn and burn game, which is a low-time low-budget game. Everybody's favorite game Which definitely influences the value and risk ratio of tools. So here we've got a selection of tools We've got the tools that we can use and the tools that we've decided are a good idea to use Even high skill players even players that are high skill high knowledge Expert players may choose to wield simpler tools due to the ease or cost of use So this could be somebody who could definitely roll their own anything But they're working on a churn and burn game They are going to probably pick something that is mostly pre-built in order to get it out the door in time Right or get it out the door in budget because it makes sense in the context of this game So yeah, so if you're a developer if you do something quickly or cheaply You'd probably be more inclined to reach for an existing framework, especially if you have lower skills in that specific area So like if you're a back-end of you may end up using a front-end framework like bootstrap or something similar to that to put The UI together because you want to try to get something out the door in front end is not your specialty Here's another game it's mission critical. So this is a high complexity high importance game Low-level players like can't join this game Like they do not have the skill set to join this game right because this is extremely complex extremely high skill level required game and only The only tools that will work in this game require high skill and high knowledge and low risk So this is a very very different game because only only very specific players can play it and only very specific tools can be used so this is something like It needs it's like this is where you have to be very choosy about your code So it needs to be very highly vetted it needs to be very secure Or maybe it needs to be maybe it has to be bespoke like you have to be able to speak to every single thing and it and explain Why it's there so maybe we can't include other libraries. We can't use pre-rolled plugins We have to do everything ourselves because we are extremely responsible for this. So that's this kind of game This is the mission critical game There is also the unbeatable game right the high complexity low-budget game Certain combinations of game stats that you just can't play this game You cannot win because you either have no qualified players or no usable tools So if you've got the the I need you know the next Amazon for $500. I'm sorry That is an unbeatable game that is high complexity and low budget. We cannot do this It just doesn't work. No tools are available to us that will be this game So then we've got the tools themselves. So basically how do we pick these tools? How do we weigh things against each other and again? We're talking about values risks and the requirements So the risks and values like I said of any given tool will influence how they're chosen Chosen even if the tools require a similar skill level to use. So even though these are both level 8 tools The one on the left We're assigning a positive value to because it's got all these great things on the right It has a bunch of great things right like it's affordable. It's well maintained. It's easy But super negative. It's not secure So we don't want to use that tool because the negatives that weigh the positives Even though they are both level 8 tools we can wield both of them But we have definitely decided that that one is not a good idea and that one is We could also the the tool selection is also influenced by our own player skill and philosophy, right? So player a this is the same tool. It's a it's a secure and Well and well supported and well documented tool that is time-consuming and complex player a says good This is a positive. I want something that are these things. I don't mind that it's time-consuming and complex player B says I don't have time for the thing that is time-consuming and complex. This is a negative We're talking about the same exact tool two different players two different decisions because they have different philosophies And they are playing different games. So value and risk are very relative to the game that you're playing So a tool one player sees as an asset another player might see as a liability same exact tool So what does all of this mean now that I've like thrown a bunch of infographics at you? What does this actually mean about discussing tools? Well first of all what it means is not simple It is not as simple as looking at tool a versus tool B and saying that one is right and the other one is wrong It means that it's very very complicated, right? There's so much going on here This is really more what it's like when we're talking about what tools we use The choices we make in the tools that we use are impacted by our own skill knowledge and philosophy By the restrictions and parameters of the project we're working on and how we rate the values and risks of each tool So there are a ton of factors that go into every decision that we make So obviously decisions are multi-dimensional, right? That's what we're walking away with every decision is multi-dimensional It is not simple and there are other reasons that people make different choices than you aside from just lack of knowledge So they are not just making a different choice than you because they don't know something We also need to remember that not everyone wants to gain skill not everybody wants to learn how to wield every tool Even when we want to spread knowledge and awareness through stuff like this if you're talking to people helping people out It doesn't mean that everyone wants to learn how to wield the tools We don't all have to learn to code or become proficient at every single tool language or framework So what can we do? First of all stop this All right, stop it. Stop it. This isn't helping anyone It's inflammatory and it completely turns people off that want to join the community and do something new If all we're doing is bickering about the tools that we're using stop it. I'm serious. Don't do that Remember that we can help increase knowledge without demanding that people also increase skill That means we can help our clients make empowered decisions without expecting our clients to want to become developers I don't want my clients to be developers, but I can help them make education educated choices about WordPress We can help other developers make empowered decisions Even if they don't necessarily want to use the same tools that we're using we can have a good discussion about it and let People make good choices. It doesn't mean again. It doesn't mean that everybody has to learn to wield all the tools We should also learn when to concede So one thing I have learned from watching a lot of games is that good games include the ability to be able to concede without Having to like go through the entire like if you know you're going to lose You don't have to just sit there and like wait for yourself to lose like many many turns later Like a good game will let you concede when you know that you're gonna lose We can learn when to walk away from something or when to ask for help This is this is part of playing a good game We can partner with people who have complimentary skill sets like if we don't want to learn to wield a tool We can find somebody who knows how and then we can have a team or we can have you know So this is great and it means that we can keep learning We can have division of labor, you know We can have a party and go on quests together and it'll be great because we need lots of different skill sets to be able to make projects good and We can have empathetic decision discussions about our tools So we can learn more about why we make decisions and that will help us educate people when necessary and communicate effectively So that is all for the formal part of the presentation. This is me. This is where I am on the internet This is the link to the slides if you want to stare at minority infographics some more But otherwise I have some time for Q&A. So feel free to ask me some stuff awesome and Doesn't have to be questions about Exactly what I said like, you know, I'm usually really expensive. So this is like free Q&A time with me right Sure, so the question for the at-home players because I'm being videoed was basically do I have a team and what tools do I work with? So I'm independent although I do Not only my own work with clients, but I also collaborate with other agencies So maybe I partner as a designer with development agencies that don't have in-house design I've also partnered as a developer with design agencies. I don't have in-house development So that's kind of fun being on both sides of that spectrum the tools that I use right now Obviously WordPress is what I'm building most of my sites in although I've done some Front-end only stuff where I used. Oh my gosh Brad Frost's thing that he did for atomic design. That is a oh my gosh. I can't remember the name Well, anyway, he built a he built a tool that let you build atomic design front-end delivery stuff And it was really cool, and I'm gonna remember it too in the morning what it is but um, I mean I Right now and have kind of rolled My own starter theme that was roughly based on some of the stuff that Roots was doing it's I've kind of like diverged from I've branched off the roots Sorry, I like puns. Um, I Have a theme that I I work on I've written kind of a Flexible content framework based off of advanced custom fields where I've basically rolled a whole bunch of common So I've like built myself said it's all on github. So Mark time media I'm marked time media basically everywhere on the internet. So if you want to find my github, it's there I've got a bunch of the tools that I use on there I don't know. There's like a lot of things that could be doing better or different like I use sublime text to code, right? I don't know. I use I use local For my local development, which if any of you went to that session this morning. I didn't but it's good like Lotto or local the one by the flywheel. Yeah, I mean but everybody like a lot of people I know use a lot of other things but for me like working independently. I don't need anything super complex to support. So, I don't know Yeah, yeah Do Sure, so the question was basically When I encounter somebody who's kind of speaking the way that was alluded to at the beginning of the presentation. What do I do? Um, I mean obviously it depends on whether I feel comfortable engaging with that person, but assuming that it's a person that I'm comfortable engaging with Usually I find that the most powerful way to combat anything like that is to ask somebody why they think that way like find out Where that's coming from and then be able to have a reasonable discussion about those things. So if somebody says, oh My god, don't use WordPress. I can be like, oh, well, why is that right? And we can then we can actually have a conversation about you know speed or security or whatever and actually Some of the things that they you know talk about are valid Like I mean, you don't necessarily need WordPress if you just need a one-page static site Like there's no reason to load an entire content management system for that If you need something to be very very bespoke like maybe you don't need to use word prep something like that So there's like valid reasons behind it and I just help them see the difference between like those reasons and like a Broad statement that applies to all things right, but I I live in the world of nuance. So That's like where I spend most of my time and not everybody's gonna listen But it's usually a more friendly conversation at that point Yes What's PHP PHP is a recursive initialism By the way, who in here knows the difference between initialism and an acronym I learned that this in the last year Yes, no an acronym is a word that actually sounds like a word like scuba Whereas PHP is an initialism because you say the letters So every I learned I was brutally corrected on this one like about a year and a half ago And so now I'm spreading the joy so you don't have to have the pain that I felt PHP is a Bad at explaining things. It's a well, it's a development language. It's the one that WordPress was written in It's a it's a back-end language, right? So it's rendered not in your browser. It's rendered in the server and I'm doing a real bad job of explaining it Is that an okay like colloquial definition? Okay, I'm like looking at you Okay, whatever, yeah I'm not gonna keep going this that was that was enough that was enough Thanks, but it stands for PHP hypertext protocol that makes me processor. Sorry PHP hypertext processor Pre-pros it's it has the word PHP in it and that just it just makes me just think of just like infinite PHP's Going, I don't know it gets me so worked up. I don't even know what it means Yes, no, that's great. That's fine. Thank you All right Yes, I know but then they decided to be jerks and be recursive and I Have thoughts on that See now we're we're having a thing Well, if you take anything away from this talk take away the difference between an acronym and an initialism forget all of this Okay, yes That's a great question So the question was basically We're dealing with yeah. Yeah. Yeah. Oh, yeah, like the yeah the The noob or the enthusiast versus the the artisan Yeah, I think that I mean anybody who's kind of set in their ways is kind of hard to convince whereas somebody who's ready and excited to learn There I mean they're both gonna have their difficulties and challenges, right I Personally think it is easier to kind of find some but if you have the time for it It's easier to find somebody you can mold and like shape into a thing that works in your workflow Versus trying to like take somebody else and like shove them into a peg that doesn't quite fit Which is the whole debate that also happens on like the whole rock star on a team thing and whether or not that's good or actually detrimental Another interesting thing that's come up with tooling is obviously I have tools that I use when I'm doing my own thing But when I'm collaborating with teams, I will try to use their tools if they have a process and they can explain it to me Like oh, yeah, we use this for local Dev and this for compiling things and this and this like I Most I use, you know Code kit to do most of my compiling because I don't I'm pretty much just compiling sass and maybe minifying some JavaScript Like I don't need to but you know, I know other people that you know use command line based stuff It's like all right. Well, if that's what you use and I will use that for your project because then we all have the same Tooling and files and we can exchange stuff So I'm willing to learn and and do new stuff when it makes sense as long as they can tell me why you know Like if they can be like this is why we use these set of tools then sweet. Let's do it We asked definitely easier to work with people that want to learn than people that don't want to learn in general Sure Well, that's why I'm saying in general like yes people that people that want to learn are great to work with and people that don't are not So be the person that wants to learn which I can tell you are because you're all here hooray. Thank you Sure. Yep But even even like with clients who definitely don't want to be a developer They always appreciate learning more about being a good content manager And so like me being able to teach them how to get to things inside the admin and like how to Do this up with their client their content that they want to do and how to not have to call me to change a picture Like that makes them feel really awesome too. So that's even a type of wanting to learn and that's good. So All right, well, I guess we that'll be about it, so I'm gonna be around the rest of the day I'll be at the after-party feel free to say hi and go get some more coffee


I have a question here and I'll just keep the person anonymous because I think this relates to a lot of you who are watching this. This person says that they don't feel their natural strength is to show up on social media, because they are introverted. They are intense. And not everyone's cup of tea. And I'm sure there are additional factors that they didn't tell me about. One other thing they said is I'm not suited for self promotion. And so not suited for self promotion introverted intense not everyone's cup of tea. And therefore, I'm not good for social media, because that's not my natural strength is is quite interesting to me because what this suggests is that social media strength must mean a certain thing, which is extroverted and Hi everybody, I love being here on video and I'm so glad to be able to share with you today, myself, and my greatness ready. Let me tell you about my greatness and why you should buy from me ready. All right, let's get going. All right. So is that social media. That's certainly not authentic to me. And so here's what social media is. It is media that is liked by some social circles. This is important. There is not one social media algorithm. There is not one social media preference of what content is. Otherwise, every single video every single article would sound and look exactly the same. That's not true. There is like a different flavor of social media for every different type of person in the world.  Even though you would really disagree with me because you know how how smooth I was just just now. That's not me. What do I do on social media? I'm intense. I'm not everyone's cup of tea. I don't want to be. In fact, if I am everyone's cup of tea, then I have failed as a marketer. I failed as a communicator. Because then I am something to everybody, but not anything interesting to my ideal people. To be interesting, meaningful for your ideal audience necessarily means you are not everyone's cup of tea. Because if you are everyone's cup of tea, you are bland. Because think about it. Everyone's cup of tea. What is that? Is that English breakfast? Is that Yerba mate? What's everyone's cup of tea? Some people don't even like tea. Same thing with social media. You cannot be everyone's cup of tea. In fact, what you're trying to be is to make some people spit their tea out. If you can do that, you're more successful on social media than the person who's nice. Yeah, it's okay. So being intense, being introverted, some people are, I mean, well, this is a very Susan Cain quiet introverted movement. Strangely, that's very popular online. Everyone wants to talk about it. That's probably old school. I don't know what the latest introverted superstar is these days. You see what I mean, like there are some people who are really into really weird hobbies or really weird ways of showing up. I mean, one example that people always find funny, but maybe now it's more mainstream is what's it called ASMR, right? ASMR is people who watch videos and listen to podcasts where people are brushing up some product and they're brushing it. They're brushing it's like, hi everyone. Yeah, welcome to my ASMR channel. If you don't know what that is, look it up. It's the weirdest thing, but then people find tremendous joy listening to people wrestling paper or doing certain things that have certain like sound qualities that will annoy the heck out of probably the most mainstream population, but delight the heck out of this segment of the audience that pay for the stuff that loved. And of course, most of you haven't even heard of it. That's just one of a million niches online. And by niches, I don't just mean topics, but ways of people showing up. There are ways there are people who love videos where it's completely black backgrounds. This is not usual for me because it's nighttime and I'm using a light anyway. So this is this is what I wanted to make sure you understand is whatever is your cup of tea is also the cup of tea of probably 100,000 people on the internet. And I'm being conservative. Why do you know how many people are online. So five billion internet users five billion with a be so if. Okay, you're not everyone's cup of tea.  How many of those 1000 people random people might be your cup of tea that you might be their cup of tea. One one out of 1000 random internet user might see you as their cup of tea that's pretty conservative. Okay, that's a lot of all walks of life all ages all interests. One of the 1000 might. Okay, so if one of 1000. Let's do the numbers here five billion internet users. Okay, let's divide that by 10 that's 500 million do the math with me here and then divide by because we got to divide by three, right. You know, 1000 has three zeros. Right. Stay with me here. 5 billion internet users 500 million that's one, one 10 less 50 million that's to that's 100 times less. 5 million. That's 1000 times less. In other words, if you were the cup of tea of one out of 1000 internet users of all walks of life gathered together, then you would be 5 million people's cup of tea. Let's go even more conservative like George. I'm not sure maybe even one out of 1000 isn't right. Okay, fine. Let's pick one out of 1000 random internet users who are more likely to see you as their cup of tea. And let's put 100 of them in the room that people. And what if I could only relate to one of those 100 who are already more inclined towards you one of 100. Let's divide it by 100. So 5 million 500,000 50,000 people. That's one out of 100 people who are likely to like you. Which is only one out of 1000 random internet users. That's 50,000 people who are probably like passionate about you. You are absolutely their cup of tea. And you say George, I'm even weirder than that. Fine, fine, fine. 5,000. Could you use 5,000 clients? You couldn't even handle 500 clients, let alone 5,000 clients. So you can be as weird. Whatever I want to call it weird yourself. As you want to be. And you still have 50,000 passionate fans. So the question is not, I'm not everyone's cup of tea. No, no, no. The question is, did you even reach that one of one out of 1000 yet? No, you haven't. Because you probably haven't run Facebook ads or Instagram ads or you haven't done it the way that I teach how to do it and done it consistently enough to actually reach. You haven't done the market, you know, audience testing that I teach in that course, all that. You haven't done the work of actually reaching any one of your 50,000 passionate fans. That's why you've got maybe maybe you've you've got some lukewarm fans who are like, they're not part of your 50,000. Maybe they're part of your 5 million. You see what I mean. They're part of your 5 million. But to get to our 50,000, like raving fans who would probably be your stalker. If they had some psychological issues, but just healthy, normal, more or less mentally healthy, passionate fans. You and I both have at least 50,000 of them out there. Or if you're really, really weird, you have at least 5000 that's that's being, that's being way too conservative. At least 5000 people who would like go to the ends of the earth for you. Literally, if you're having a retreat in Australia, they will go to the ends of the earth for you to pay the 5000 pay the 10,000 to go to your retreat in Australia in Iceland in what you name it. So, no, of course you're not everyone's cup of tea and I'm glad. I'm glad. The question is, are you going to show up with your cup of tea enough with enough distribution. For example, social media ads or enough collaborations or enough search engine optimization enough stage two content. Are you going to show up enough to reach your 50,000. And your 50,000 is not going to be the first 50,000 who follow you, probably not, but within the first 50,000 who follow you, there might be 500 or 50, who are part of your true 50,000, or your true 5000. And the question is, are you going to go and go and find them, are you going to allow them to find you. Because if you don't, they will forever feel like something is missing from their experience here on earth that they came for. Because one of their soulmates who promised to play this game of hide and seek incarnated into this earth at the time of the internet say let's play this hide and seek game where I'm going to express my energy signature I'm going to practice expressing it until I'm really strong in it. And by when I'm really strong in it you will hear from me. You didn't practice enough to be really strong in it. And so you never reached that soulmate audience member. It's up to you. When you do it. I hope so. Because I'm doing my darn best here. Not to be everyone's cup of tea either. Thank you for watching and look forward to seeing your comments below.


Yes! What's up? Monique Xmasovie here. Welcome to another video. In this one, we are going to talk about Tika Simba, L-A-C, Lithium America. So, this is a company that we cover here on the channel. I introduce you guys to this company a while back and ever since then, we had some development that pushed the price of the stock from our entry point of about $11 to about $28 before pulling back. So, again, this is a company that I think has massive potential, but the risk is also very high. So, I want to give you guys my game plan for the stock moving forward that can potentially make us some good money or could be a good swing trade for the next three months or so. So, that's what we're going to cover here. But before we get started, guys, if you're new to the channel, we talk about how to earn money, how to save money, how to invest and build wealth. So, if there's something that interests you, go ahead and hit that subscribe button and the notification bell so you don't miss out on new content. If you are new to the channel, I'm going to hook up the video that I did up here so you can definitely go check out in-depth about the company, what they do or what they plan on doing and why I think this is a potential good source for us to make a lot of money, but at the same time, there is a high risk. So, this is a high risk, high reward kind of a situation. If you are okay taking that risk, then definitely consider this one. So, just to give you guys some context, they are actually in the process of looking for Lithium mines in Argentina and in Nevada, so they have two facilities right now, just so you know, all these two facilities are still in progress. They haven't started production yet. So, production in Argentina, it looks like it's going to start by 2022, our second quarter of 2022 and then production in Nevada. If everything goes as expected, they get their permits and everything, then this one would show they start in 2023. So, again, definitely go check them out, read about the company and see what they are doing. So, the catalyst that I actually see for this company that might give us some, you know, a good run here in the future is the fact that the Biden administration, as you can see here, the energy sector says that you as one responsible Lithium mining. So, they're pushing, you know, this clean energy electric vehicles and we've seen companies like GM, companies like Ford, come out and make pledges, GM says they're going to stop making fossil fuel cars by 2030 and then Ford also says they're going to start their transition. And then obviously we have major companies like Tesla that are in the space of EV and other up and coming EV companies that we know here in America, like from the workhorses and Nicola and all these other companies that would kind of benefit from these baddies that they're producing from the Lithium that's mine. So, that's why I think that to keep up with the supply chain of Lithium, we are going to need a ton of Lithium. So, right now Lithium is not really mass produced in the United States. You have other companies, other countries that are leading that. So, China is like the number one producer of solar energy. So, Biden administration is trying to make the US number one in Lithium. So, again, if they're pushing it and then we see that somehow this company is going to benefit from. And right now the location that they have in Nevada, this location in Nevada currently would produce a ton of Lithium to supply or to maintain the supply. And so the US doesn't have to depend on other suppliers outside the US. We're talking about China, Australia, Zimbabwe to supply them. No, Lithium, because again, we've seen what happened with COVID-19 where your supply chain is dependent on other countries outside the US. And then we have a pandemic. What ended up happening is the US suffers prices of goods and services go up because of the supply chain. So, they're trying to make sure that we mine Lithium here in the United States. So, again, this facility right here is prime. So, I'll give you guys a little bit of background, what's already happened. So, when I first introduced this talk on the channel, again, I said I'm just looking at the supply chain. And here is my way of looking at this EV revolution. So, if you think about how the fossil fuel industry was structured, replace that with EV, it doesn't have the same supply chain, but just the products are going to be different. So, instead of mining for crude oil or drilling for crude oil, we are going to be mining Lithium. And then they will take that Lithium process that and make it into batteries. And so, once those batteries are ready, they will use them in producing electric vehicles. And when those batteries get old or the vehicles get old, we now have to take those batteries out and recycle them. I'm looking at one company that I'm going to put in the portfolio that has a Lithium mining background. I want a company that does batteries. I want a company that builds electric vehicle. And I want a company that recycles Lithium. So, that would be my full supply chain. So, from a Lithium mining perspective, I'm looking at Lithium America because of their high risk, high reward from a battery standpoint. You have quantum skip that's in the making, but they have a ton of competition. There you have Tesla. And then from an electric vehicle standpoint, obviously we have Tesla. We have Lucid models. And then from a battery recycling standpoint, we have Redwood material, which was actually started by one of the engineers from Tesla. So, he said that Redwood material, the recycling Lithium from any Lithium battery, not just EV. So, if you have any Lithium battery, you ship it to them to extract Lithium out of that and recycle it. And what they're saying is when you recycle Lithium, it's good for the environment because it means less mining, less pollution, which is what Lithium America right now is trying to fight to get through to get the approvers. So, now that I gave you the background of the supply chain, now is where is Lithium America currently in their process of on the road to production? Again, like I said, their Argentina plan is on track. Construction is currently going on. And they plan on starting production by I think second quarter of 2022, like I said earlier. Now with their Nevada facility, they've gone through their feasibility study. They've tested the area. See, it has high quality Lithium that could be used for battery manufacturing. And then last year, the Trump administration actually gave them their federal approvers. So, that was a good thing. That was a great catalyst that drove the price of the stock. The price of the stock went to as high as about twenty eight dollars. And then and so that was early January when the Trump administration actually approved that. But since then, the prices pulled down a little bit because that was that really sweet catalyst. So what I'm looking at right now is another approver that's going to be coming up here in the next couple of months at the state level. So the federal level approver is complete. And then the state level is what we're looking at right now. So the Nevada Division of Environmental Protection has two main things that they have to worry about, the Bureau of Mining Regulations and Reclamation and then the Bureau of Air Pollution. So if those two departments from the Nevada Department of Environmental Protection approve this plan, then we're golden. We're going to see massive spike in the stock. And that's why I'm saying right now that these current levels of the stock where the stock is currently trading right now.  This would have been a good point right here to buy by the dips of the stock before that day. So again, if we can buy these dips here and hold it and then write it out to maybe that 15 to 20 dollars price point, if this thing comes true. But I want you to be smart. So this is again, it's not like this is going to happen as planned. So the reverse could be true if that if the Nevada Division of Environmental Protection denied the approver, guess what's going to happen? We're going to see a sharp pullback of the stock. So you have to be very smart about this one.  So again, like I said, they have this coming up sometime in July or August. We should be expecting this approver. And again, if the approver goes through major, major catalysts, the other thing that actually found out doing some research for this is the fact that the approver process that the Bureau of Air Pollution actually uses, they have a second phase or second stage approver, which can actually delay even more so six months to a year. So that's something that we just have to be aware of. So so if they approve the first phase, the phase two can actually be held because for whatever reason, for political reason, for environmental reasons, for whatever reason, they can actually slow the process. But I'm super excited. I think this is a great opportunity. Again, it's high risk, high reward, in my opinion. We've already gone through phase one that was approved by the federal level at the federal level. And now we're looking at phase two that's coming up if this does go through. The one thing that gives me comfort and I think that this thing is going to go through is the fact that they have the federal level backing. They have the governor of Nevada actually backs this. They have Nevada tax breaks that they're going to they're going to get. And then again, if you put all those things together with the Biden administration pushing strong for clean energy, climate change, I think that this thing is going to go through the project is going to be approved and that's going to be a good catalyst. So again, that's my personal opinion. That's how I'm anticipating that this would go through. But I don't work for these guys. So I don't know. I'm just looking at all the information that I've actually researched, putting it together, it's pointing towards this being approved. So that is where we stand again. Just so you guys know, this is one where the risk is very high and the reward is very high. So if you get in the stock and you don't have a stop loss, I would encourage you to put a stop loss, pick your percentage. If it's if you say 10 percent, five percent, whatever you want to lose.  You're going to see a sharp pullback and I don't want you to be in there when that pullback happened. So again, let me know in the comment section what you guys think about Lithium America. Do you own it? Did you buy Lithium America when we first introduced it here on the channel? I think back then it was trading about 11 bucks. Like I said, it seems squeezed up all the way to about 28 before pulling back to even 13 where it's actually consolidating right now. So after this consolidation, I think the next logical step is the next logical catalyst would be this permit being approved at a state level that would make you start growing. So that's my take. Let me know in the comment section what you think. If you're new to the channel, we talk about how to earn money, how to save money, how to invest and build wealth. If that's something that interests you, go ahead and hit that subscribe button and the notification bell so you don't miss out on new content. Also, guys, if you're looking to get started with investing, Weibo has their promotion where if you sign up and deposit a hundred dollars, you get some free stocks links in the description below. And as always, guys, do your due diligence. Don't be a green savage and stay motivated.


Well, third places are important because they help people to feel part of their community. It's where you bump into people, come across familiar characters, just irregular neighbours or people passing by, and it makes people feel more at home. All sorts of places which allow anybody to visit, they're not exclusive. You don't have to be a member and you will interact with your neighbourhood people. Socially, if you don't have enough third places, you're running a very big risk of fracturing social cohesion, reducing neighbourhood friendliness, declining trust amongst people and just generally a lower investment in community. Well, we can safeguard them by not selling them off to developers. This actually was saved by the community. It was some land which was cut off by the freeway and it had been derelict, just long grass and the neighbourhood petition for a couple of years to have access to it for a community garden. So this is a citizen led third place, really. When we're master planning communities, and that's very often what we're doing now, particularly on the outer suburbs of our cities, is we're master planning communities. So it is possible in those situations to actually design in third places from the outset. So to make sure that there is part of the built environment and the physical fabric there that accommodates third place provision and provides somewhere where third places can exist.


It's Coach Coco. I love volleyball. So much so my channel to what tips, tricks, hacks, and anything you can ever need to know about volleyball. So as volleyball seasons come to a close, let's talk about how to fix your volleyball pass. Let's get right into it. Follow me for a little while. You will know that passing was something that did not come natural to me. It's something that I had to actively work on as a middle blocker. It's something that you might need to be working on too, especially if you're watching this video. Let's review some of the ways that we used to pass back in the past. We used to put our fists together and close it. We're not doing that anymore. We also used to put our fingers and intertwine them. We're also not doing that anymore. Now we are doing a gentle overlap. Do you see how nice that sounded? I like to go by, hi, how are you doing? Hi, how are you doing? Like you're reaching out to hold somebody's hand. And then you overlap.  Like such. It does take some getting used to. So hi, how are you doing? Hi, how are you doing? Make an L and then lap together. And we want to make sure that our forearms are as close as possible for the platform.  That's why we want our platform as close together as possible. Now I've met a lot of players who say, well, Coco, it doesn't get that close. We want to, even though it's not getting that close, we want to try. So sometimes you have to lift your arms above your chest to, in order to get that platform. So let's try that again by doing the new hand placement to see how it works. Once you get that, you want to start practice by doing a bounce in past. So the object of this drill is to bounce and then start using your new platform and your hand formation so we can get used to the response time and get our hands used to that muscle movement. Once you understand how that muscle movement works, start working on your ball control. We want to use that new platform in action so that way we can see exactly how it works, how we move with it and we can start using it in action. This is something that is very important because ball control is vital. You control the ball. Don't let the ball control you. When working on ball control drills, you want to make sure that you're trying to stay in your own space, your own bubble. We don't want to move everywhere because we want to be able to pass the ball to ourself. It's okay if you don't get this hand placement in the beginning. It's fine. It takes time and it's something that over time you'll adapt to and you'll get it. So be gentle with yourself. I really hope that you like this video. Please like, comment, subscribe and I will see you guys next time.


This program is brought to you by Cable Franchise Vs and generous donations from viewers like you Hello, and welcome to the Amherst weekly report. I'm Claire Healy, and we have both important and exciting news from this past week First I want to make sure everyone is aware of an upcoming mandatory face mask order Starting August 3rd at 8 a.m. The town will be enforcing an emergency order Mandating masks be worn within a certain perimeter inside the town Within the designated area around the town center masks or face coverings both defined as something that covers your nose and mouth Will be mandatory regardless of the distance between people This ruling allows for people seated outdoors at a restaurant to remove their masks and includes exceptions for children under age five and For those with specific conditions or circumstances The board's health agent and other agents designated by the board will have the authority to enforce this order And have permission to work in consultation with the police department to do so The penalty for violating this order will be a fine to the amount of $50 at the first defense 100 at the second and 200 at the third The order specifies that quote nothing in this order is intended to encourage residents to act as an enforcement authority for the town of Amherst Next we have a development on a story from last week about Amherst town council's concerns regarding UMass Amherst reopening A new working group has been established between the University of Massachusetts Amherst and the town to work together to resolve Tension over returning student regulations and COVID-19 guidelines Town manager Paul Bockelman said that the goal of the working group is to quote share information in real-time and Work through important issues together the chancellor echoed that sentiment Saying that their shared goal is to quote implement an extensive set of public health protocols and strategies And that he's confident that we will each do our part to protect our community a List of members of the working group is available on the town website Next a story coming out of the continuous complications that students and universities are navigating in the process of reopening educational facilities Residents assistants and peer mentors at the University of Massachusetts Amherst are harshly criticizing the university's reopening plan as They prepare to return to work on campus in the fall Student representatives are saying that the current plan does not prioritize their well-being and health and instead places financial profit over the student's safety The resident assistant and peer mentor union have presented a list of demands to the university that the university said are under negotiation The first of the 21 demands is that these students be given the opportunity to work remotely Something that has not been provided as an option Other demands are that they be provided hazard pay and adequate PPE They are also requesting guaranteed employment on or off campus and access to free COVID-19 testing Something that a lot of people you know a lot of people depend on this job as their source of housing or a lot of people depending on yeah being on campus as their source of like having a meal plan or having housing and the Wages that we receive like from our jobs are really important to so many staff for paying for school and other expenses and so For a lot of people It has been a decision of like yes, it's unsafe to come back but I might need to come back for For housing reasons or for other personal reasons Also concerned about extra workload due to the number of RAs who are returning and who aren't returning and Peer mentors people are expecting the workload if you're on site to be more so than a normal semester So people also want that hazard pay to compensate for some of the extra work that they're going to be putting in remote work and hazard pay have been Absolutely rejected in their view. They don't know when a vaccine might be developed They don't have faith that a vaccine will ever be developed and they believe that it's the college's responsibility to resume normal life post pandemic regardless of a vaccine or treatment and that means that COVID exposure is the new normal and therefore we should not be compensated Anywhere beyond what we would normally be compensated goal is to get as many students on campus and paying Housing and dining fees the goal is not to stop the pandemic or stop Spreading COVID to be honest it's a plan that I think reflects the fact that UMass sees itself as a Financial institution more than an institution that exists for the common good. Hopefully the university will start to realize that they can't Force a plan on us that is unsafe and that they'll start thinking about their PPE hazard pay ventilation and remote work options and giving us some some fair compromises as We approach the fall election cycle the town is information on its website regarding official vote-by-mail applications While in person voting will be an option for the upcoming election cycle Vote by mail is available for all registered Massachusetts voters In order to vote by mail voters have to submit a paper application that they may have already received by mail To deliver that form you have three options return the pre-addressed application card if you received it in the mail Or send it to the Amherst town clerk for Boltwood Avenue Amherst mass 01002 or place it in the dropbox on the main street side of town hall All forms need to be received by August 26th for the state primary or October 28th for the state election elections is sacred It's a sacred time. It's a sacred right that voters have and so it requires sacred methods to ensure safety and security of Balance of every voters vote and the methods at which we handle balance and how we Handle the election. I definitely am encouraging all of our returning students To three colleges to exercise their right to vote via vote by mail out of an abundance of caution. I also have I also recommend anyone who has health conditions or they have if they are high risk for You know Contracting COVID-19 to exercise their vote by mail, right? Anyone who is homebound and haven't already Been able to request an absentee if they haven't done so because of legislation I would look I would also encourage you to exercise that right and anyone who just feels a little uneasy about showing up in person whether that's early voting in person or casting their ballot on election day stay Stay alert stay vigilant watch our to the town the town's home page In the week in the days and weeks to come We're going to be releasing information and updates especially as it comes available in the secretary state A lot of things are still we're still waiting to Get guidance and direction In the meantime, I would encourage anyone who has any measure of doubt or apprehension about Casting their vote in person to exercise the vote by mail even if he decides to change your mind before the election You can always give us a call and say, you know, I you know, I feel more comfortable. I want to go in person. We can always We can if you haven't already received your ballot then we can always Undo the vote by mail option for you, but I would I'm strongly asking everyone to exercise On sunday july 26 a protest called wall of mom's north hampton Lied in the side of route nine holding black lives matter signs and standing six feet apart Organizers said that the protest was a display of solidarity with the group of moms in Portland that went viral for linking arms to create a protective wall between protesters and federal police organizer said maybe 40 people participated in sunday's solidarity protest and they asked those unable to attend to drive by and honk their car horns What got me interested Was Somehow I got connected to what is going on in seattle in portland. I honestly don't remember the Exact starting point But I started looking into it and the more that I read the more disturbed that I got Yeah, and so I've just been on twitter and On social media and talking with people and getting more and more agitated. It was when the wall of moms Showed up in Uh, portland And I said I have to do something. I I can't sit home anymore.  I have to do something So, um, that's what started it that was on monday So by wednesday, I had friend found a friend who wanted to partner with me andre And on thursday, I was writing a press release And giving it to a good friend of mine who's in the news Who disseminated it?  I I've never seen that kind of responsive. Oh my goodness Um, and not much later. I don't know maybe another hour later. I had like a hundred likes I was I was really surprised Um, that that many people responded that quickly So again, if I would have had more time they could have told more people and you know, then there would have been more people showing up As galleries begin to reopen in the area We've talked with artists curators and gallery owners about how the pandemic has been impacting our art community And the decisions they've each made to adapt to ongoing changes They described to us efforts by artists to continue their work in an emotionally draining time and a shared understanding of the ability of art to heal and uplift a community in times of tragedy Many organizations have found ways to showcase their artists work virtually One such example being arts night plus who has continued its monthly exhibit through video suggestions for Content that could they could possibly give to us That could then be rebroadcast on amherst media We reached out to Musicians that we had worked with in the past who had played live at arts night plus and We had a variety of submissions and at that time many of them were performances or Video of exhibits that had already been recorded And you know, so we had the otons and jazz mesmerizers. We have the contemporary art museum at UMass that participated gallery III The bar or studio was involved it so It was quite a large collective layout for the program As people started to say yes, we can commit and here's what we think it'll be I would just keep a running list in a document and Looking at the length of time and what the mix was if it was a demo a demonstration of our music interview Then we would just kind of play around with the the layout and see how it might flow visually because here now you're you're going from One of us providing an introductory statement for why we're doing this Then a video that had been recorded previously that took people through the venues And then we would roll into The content for that evening We would like to have something in september That is downtown But it would be walk by or drive by art Early on some some towns artists came together or whatever their art committee was And they put together drive by events Where either artists put artwork out in front of their homes or on buildings or you'll They were painting buildings that might have been boarded up the windows So we are looking to try something like that For september gallery III while choosing not to open yet has decided to display submissions in a window exhibit titled encounters Outdoors was The theme was thought up by laura holland one of the members She felt that Could include many different interpretations that would fit in With what's happening in our community and country and world So these are all works that each artist has sort of Felt Answered that Meanwhile another gallery in north hampton William basic fine arts gallery has reopened and been operating with in-person viewing for the past month Communication with the artist during the pandemic hasn't changed a whole lot. Um, it's still primarily emails and digital images Most of them are very good at photographing their own work or they have professional photographers photograph their work We receive those digital images and immediately put it on the website We put it on our social media and we put it on third party websites like artsy, which is a gigantic website that shows work By artists in galleries from all over the world and the communication in sending the work hasn't changed Artists had to get their feedback underneath them and get their creative juices flowing Like we were talking about when this first started everybody just went into physical mental and emotional lockdown and At first I thought that the artists would appreciate having a good excuse to isolate in their studios but they're sensitive people who have to Operate normal lives as well as their artistic life and The news had a profound effect on their creativity A groundbreaking ceremony was held for a new dog park in amherst The dog park will be located in the south landfill site off route nine And construction is set to start on september 1st Members of the dog park task force cpa committee town counselors and town staff gathered on july 22nd for the ceremony To make remarks and break ground for the park The park will cover 2.5 acres and include areas for both small and large dogs as well as shade for owners to relax in and water stations The town has been working closely with the department of environmental protection And the massachusetts natural heritage and endangered species program in obtaining the park permit And finally in a joint meeting with the school committee and town council Jesse sailor the project manager from tskp studio presented the crocker elementary school expansion report In this presentation he went through the findings from the crocker farm building feasibility study committee Who looked at what possible improvements could be made to crocker farm if there's a reconfiguration of the school district The study really began in february and completed in june And this group kept at it despite the covet 19 pandemic Which i think is admirable This is based on projections and guidelines that were in place prior to the pandemic Because that's what we had at the time. We see inevitable facility improvements In the near horizon We see educational needs that are currently not being met Thank you for tuning in to amherst media. This has been the amherst weekly report I'm claire healy and we hope you will join us again at the same time next week. Have a wonderful weekend


everyone in today's video will be looking at protected routes and for the record I'll be using Firebase Auth. Realistically you could use any authentication provider like SuperBase, PocketBase it should all just work the same because the code is just agnostic to the platform that you're using and I will be using the app router well technically I'm using Next14 but it doesn't really matter because Next14 is really new but there's no new API changes so you do everything the same way as with Next13 and so doing a quick rundown of what the problem looks like. So right now I have my page here I have two routes secret one secret two if I click on secret one you see it brings us to slash protected slash secret one and the problem is right now we're not logged in so if I log in like that and now I'm logged in you can you can see that I have access to secret one and secret two pages but if I log out I'd still be able to see these pages and that's not good because I want all of my pages my routes after slash protected to not be visible until the user is logged in and so to do that I have written a custom use user hook that looks like this so the main the core component the core part of this hook is this onauth state changed event listener I'm calling this I'm subscribing to this event listener and I'm returning the handle to use effect hook so that this only ever runs once whenever this hook is mounted I don't want to be subscribing to multiple event listeners in one run so that's why it's in use effect and this is coming from Firebase so if I go up to my imports here you can see onauth state change is imported from Firebase slash auth and I'm providing the auth handler to this hook here and then there's a callback function that runs every time our authentication state changes so every time we make a change like if we log in or if we log out then this callback function would run and we would set our user's state variable to be the value of that user passed into this callback function really really simple so and in our layout function component layout component here in our protected route we have subscribed to this hook in our component and we have access to this user object and if we're logged out it just the user object is just null and if we're logged in then we'd have a user object so to do that to make use of that I have an if statement here that says instead of just blindly returning the children which is the nested routes every single time we only return the nested routes whenever the user is not null because if the user is null then we want to return an auth guard component that component looks like this it's just a div that says you have found a secret place please log in to continue the login is a link to the login route which is a constant defined in this routes document and then I am using the use path name hook from next slash navigation this gives gives us a current path name so that tells us what what's the path name we're currently at so now I've implemented that if I go to secret two you can say you can see it says you're trying to access slash protected slash secret two and it tells us to log in we go click on login and then we log in and now we can actually access the secret two page okay so now if I click on log out it hides that page and the page is hidden by the auth guard component telling us to log in before we can continue that's really good and that works and that's perfect now say for example I was I'm I'm not logged into that website but someone a friend sent me a location on discord for example or in an email telling me to go the secret two route and I'm not logged in so I click on the link to follow the link in my browser I get to this page tell me to log in and so I do I log into my credentials and whoops we're on secret one now we ended up on secret one when I was initially trying to access the secret two page so that's a problem and I'm going to solve that problem by going over to my auth guard component here seeing that we already have access to the path name inside of this component instead of just plainly returning uh plainly linking the user to the login route using our link component here in the next js I'm going to use a format string I'm going to append a search string or a url parameter here we can name it any arbitrary name for for this case I'm just going to say continue to equals to the path name so what this does is if I come I came back here click on log out we go secret two or let's just go with secret one for for now for this one time we right click on login copy link address and now when I paste this address you can see that it's actually going to redirect us to the login page but not but we don't stop there we have an additional parameter there in the url that tells us to continue to the secret one route after we're done with the login process same goes for secret two click on copy link address it tells us to continue to instead of continuing to secret one this time we're continuing to secret two and I can click on login now still doesn't do anything because we have to right now we're only sending out the information from the auth guard component we have to also receive that information from our login page here now I know that there's a lot of new code here that you haven't seen prior to this point but don't get intimidated just yet because most of the code is just basic html this is an html form for the username and password and I'm subscribing to this use router hook which is important from nyx slash navigation remember if you're getting weird errors when you're using use router hook make sure you're importing that from nyx slash navigation and not from nyx slash router because that's what it used to be from before nyx 13 and that's what github copilot was trained to do because majority of the training data that github copilot uses is from before nyx 13 so I had problems where github copilot was trying to automatically import this from nyx slash router it was just giving me a bunch of errors and that's probably why you're getting your errors too if you are indeed getting them so down here I have a constant which is continue2 it points to secret1 route and that's coming from my constant defined this file here slash protect slash secret1 that's the default route that I set my router to redirect to after the sign in is successful so this is my sign in function call and after that's successfully ran I will just redirect the user to this continue2 link instead of just hard coding this to be secret1 route we can use to use searchparams hook from nyx slash navigation I just say use searchparams I don't know why github copilot is trying to do this because you don't need this array you just need to set it to a variable here like that yeah github copilot is still kind of wonky in terms of nyx 13 and onwards because this is still a relatively new API I guess and then here instead of just setting this to secret1 route we say searchparams.get and that should be continue2 I don't know why I went back to my browser there to check because I already know it's called continue2 that's what we defined here in our authguard so that's the name of our search parameter and I'll just leave that there you can see that the continue2 label should change to depend on the url parameter so I'm going to log out here let's go and try to access protected slash secret2 I click on login it gives the continue2 parameter and you can already see that that's updated to be secret2 instead of just being hard coded to secret1 which is the default which used to be the default route which is defined by this constant up here and now when I click on login it sends us to secret2 so we're done if I click on log out now and instead of having trying to log in from the authguard component I'll just click on the vanilla login link which doesn't have any which just means we're just trying to log in and we're not trying to access any page prior to this click on login and it sends us to secret1 which is a default route that's good one last thing before I end the video though see if I click on secret1 and secret2 from the navbar the transition is seamless that's because we're using the next js layout components and we're using the next link it's like kind of emulating a single page component however say I were to refresh the page I were to force a hard refresh you can see do you catch that for half a second there the authguard component flashed and if I were to say open a new page you can see that half a second had the authguard components telling us to log in before we can continue despite us already being logged in now that's caused by this on auth state change here and our use user hook the way it works is we first set our user state variable to a default value and then after that we have a use effect hook that goes out and does the server call and it takes some time for the server call to reach out to the firebase authentication servers and fetch the current state of the user that's what causes that delay now in order to fix this instead of just setting my user to null I have a third state value here false so that's what I gave into the default because if our user is logged out this user object returns null that tells us we are currently logged out if the user isn't null if it's a firebase user then it tells us we were logged in this third state variable here tells us that it's not null it's also not firebase user type it's just false that means we haven't initially initialized our user yet we are still loading our authentication state so that's a third state that we're keeping track of you know layout component instead of just saying oh if user is not defined if it's null then we return the auth guard component but instead of just doing that we add a third if statement here saying if the user is equal to false which is the first initial state before the user is initialized before firebase has had the chance to reach out to firebase servers and fetch the load at the auth state we first return a small component here that says auth loading now it still it still doesn't avoid the fact that there's still a jarring flash of auth loading but at least now we're not misleading the user and telling them that they have to log in before they can continue when they're already logged in we just instead tell them a less confusing message telling them that there's uh the auth is still loading or you can implement a spinner instead of just flashing them with this auth guard component which is very inappropriate so let's go and test that and see how that works come back here force a hard refresh instead of giving us that login prompt which is very aggravating we had uh we have a slightly less confusing message that says auth is loading or you could also just implement a spinner and with that my friends we are done and we have completely implemented protected routes in Next.js I will see you in the next one