Our next presentation is by Dr. Dodong Wang of Australia CSRO, talking automated eyes for better fisheries management. Hi, my name is Dodong Wang from CSRO Australia. I will present our software Wanda, an AR-based web portal for automated EM video analysis. I will first briefly introduce myself, our team, and CSRO of them present our current work and achievements, followed by the challenges we are facing and our future work. Our marine ratio technology team was formed in 2016, including members from CESAR data 61 and CESAR ocean atmosphere. I'm a principal research scientist and a team leader in imaging and computerization group of data 61. Rach and Jeff are also principal research scientists. They are from CESAR ocean atmosphere. Other team members include computer vision, AR research scientist, postdocs, software engineers, and a BD manager. Our collaborators include government agencies and also industry partners. CSRO is Australia's national science agency. We have about 5,500 people working with over 2,800 industry partners. CSRO is top 1% of global research agencies. We are based at 55 sites across Australia and the world. The main functions of Wanda include fish detection, fish species identification, and tracking-based catch caught. This slide shows the pipeline of deep learning-based EM video analysis. RGB videos are input of fish detection and classification machine learning model. The detection results are used as input of deep learning-based tracking to caught how many fish being caught for each species. Here are some qualitative results from our test videos. You can say we got some very promising results for some species with plenty of training images. However, the results do not look as good for some species for which we don't have enough training images. In summary, we have achieved precision of close to 90% and a recall of 80-80%. Here are some highlights of Wanda. The catch event function can be used to detect catch events in a video so that a EM observer can be directed to the video segments that have fish instead of looking for fish in a video manually. This will save the video review time. The fish detection and species identification function can be used to assist EM observers with species identification. The automated counting and reporting function can be used to generate catch report for a trip. The auditing function can be used to review automatically identified fish species and correct any errors if found. Here is an example web page of the Wanda web portal. It shows a snapshot of video frame where a catch was detected and a short video clip showing the moment the fish was caught. The summary of the catch for the trip is shown at the bottom. Any errors from the automated fish detection species identification can be corrected manually. Trip reports can be downloaded as an Excel spreadsheet or a PDF file. This is a demo showing automated fish detection, species identification and fish counting from a video captured from a sorting tray. This slide shows another relevant project we did. It's called boat to plate. It was designed to capture vessel level data including species, fish size, capture date and the time location for automated fish origin information collection and the fish tagging for supply chain management. Information of the fish origin can be retrieved by scanning the fish tag as shown at the right hand side. Including species, size, color, fisheries, boat name, temperature, location, date, time and storage temperature. So what are the challenges we are facing and what we will do next? First, the inconsistent video quality is a headache. This is caused by movement of the boat, uncontrolled video background and lighting conditions in rough seas. Second, not enough training images for rare species. Third, how to generalize a machine learning model trained with video data from several fishing trips to other trips of the same vessel? How to generalize a machine learning model to multiple vessels? How to generalize a machine learning model trained with video data captured from one fishery to other fisheries? Thank you very much. Any questions? Thank you Dugong. Thanks for sharing the story of CSRO's work and there's a lot in it. Developing automated solutions to help manage large scale fisheries is a large challenge but as we can see it's progressing really quickly. We've heard from other stock people speaking about the challenges they have that actually the breakthroughs happening in technology are being held back just by the simple cleanliness of a camera lens and such like. There seems to be more breakthrough in the work of coding to understand the pictures than just collecting the pictures in a useful manner. Can you give us a little bit of a background story about some of the challenges that you've had in formulating your ideas and where they've maybe shifted once you've gone operation? A little bit like we just heard from Jennifer where they started to monitor more the way people moved on a boat to understand if there was a catch event or not and looked at things like baited or unbaited hooks. Was there any surprises for you or any breakthroughs that came through along your journey? Yes, we started this work from 2016 actually come up with a very nice idea from Jennifer and Rich because they found there were lots of data, tons of data sitting there. We need to do something about it. Then we just come together for this form this team initially start to find a solution how to reduce 8 hours video to 8 minutes. That means how you can make sure EM observers are looking at fish instead of doing fast forwarding to try to find the fish.  So that's the first thing we did. How to detect the key frame to detect the fishing event. We got some very good results for that. That figures some other nice ideas. So now we come to use deep learning to identify species. With that we found also lots of challenge. Initially we got some very nice video quality work perfectly we were so excited. But later we got more fish trips video we found different stories quite different because some videos with lots of blurry because of movement of boat. And some video come with water drops because you know in rough condition camera less being blocked by water drops nobody clean that. And we find eventually this is not as simple as we thought. And also you know the videos recorded day and night and also sometimes it's really it was really some time sometimes it was sunny. Also sometimes time cloudy and video quality are quite different from one boat to another, you know, also species from one fish to another fishery quite different. That's just we found a lot a lot of problem we need to deal with that's why it takes a long and but still we put a list of try to resolve them one by one. So at least some challenges for my last second last start slide. And later we find that, as I mentioned, how to generate generalized machine learning model from your treatment by using several trips of data to all trips for the same boat. Because different boat have a different background. And even same boat sometimes that can be very bloody also blocked right if you could imagine, and sometimes very clean sometimes with lots of water, sometimes bloody just make this is very hard and so we are currently working on how to generalize machine learning model for the same boat. Then next for the from different about them from one fishery to more fisheries. So, lots of sorry to tell but that's, that's a quick summary. That's that's exactly the kind of story that gives people the insight into the challenges and where they are and how many there are. And it's great to hear a repeated story about the need for, you know, train data for rare as speaking and that might be a great opportunity for collaboration across the international community to build up those data sets for the rare as speaking. And deep water shark soon that's always our problem we just don't see enough to, to, to get people aware of what speaking they might be. So Matt, do you have anything to add to this one. It's always a challenge isn't it having a sort of theoretical idea and then trying to actually get it to work in a marine environment. It's to got to be one of the toughest environments to try and get anything to work alongside outer space I think. You know the equipment breaks and the salt water corrodes everything let alone, you know the conditions changing in front to do some machine learning the challenge isn't it. And I think also alongside the deep water sharks that came mentioned. There are also other options to for gathering biometric data. Such as using stereo cameras and depth maps, that cues and also perhaps other frequencies like the infrared end of the spectrum which might give a specific set of information that we don't normally look at, which is how myself and jump out of the approach to new demos algorithms to size, which works quite well. So I think again it's a sort of thinking outside the box scenario. It's going to be interesting to see what's available for use inside and outside of CSIRO because obviously there's a lot of commercial and confidence development there rich and Jeff have you got any comment on this point. How do you see the community being able to learn from CSIRO developments. I'm going to type in a question to the Q&A. I think what Rich is about to answer that question in the chat there. Well, maybe we'll get to these kind of questions and governance and data management stuff sharing later on. So thank you very much to Bong and the team at CSIRO for sharing your stories.


Well, hi everyone. So what I'd like to share today is about the how we do front-end development and sky scanner in general because I Thought that it's it might be useful for you to to learn about the things that we're doing and And the problems that we're encountering maybe or your company encounters the same problems like like ours Like if for example, you have about maybe about a hundred plus engineers working on the same site And all of a sudden the next thing you know is that you have some really messy CSS files CSS your JavaScript code code base has so many Like functions that have maybe different standards and different frameworks. So what I'd like to share to you today is It's mostly just about us. How we do it the sky scanner a little bit about me So I'm I bit I've joined sky scanner since 2013 and since I joined sky scanner I've been working with a different different groups different teams every year I changed teams So every year it felt like I'm working for a different company And also every year means that there's a different stage of growth that we we go through So there's a different reorg then we handle different products then we introduce new products So here are the different teams that I worked on GitHub and LinkedIn. I posted it there So what this talk is so this talk is about just very high-level view of how we do Front-end development and sky scanner. I'm not going to go through the specifics like for example, how we do I'm not going to dissect to the code. I don't think I Don't think we'll have time for that and I'm not really the best person to to walk you through on that and This is also coming from a perspective of someone who's who doesn't do really front-end On a day-to-day basis or on a regular basis So I'd like to share to you the outline of this this talk So the the first the first I'd like to share to you the Story of sky scanner the the growth that we've experienced over the years and With that growth we also have It means that the team is growing as well and we we ended up with distributed teams across different countries in different regions I'd also like to share with you the What what did what else did we do in order for us to make sure that we keep the business running and also deliver quality products on a regular basis so the the things that are outlined from nailing the basics all the way down to Front-end standards we cutter. So this will be I think mostly the I'm going to show some demo every now and then and I will walk you through Some of the technical aspects of it. So the sky scanner story how it all began so it's We have a this is our CEO. So it started as a just a very simple spreadsheet where Because he liked to they liked he and his brother like to ski around Europe and at that time on the year 2 I think about in early 2000. It was it was The the advent of a budget airlines There were quite a lot of budget airlines around Europe and they find it hard to Compare the prices. So they started with a spreadsheet with the MS access back and I mean database Growth so After the we have founded they have found this guy's guy. We have experienced this massive growth along the years where I'm going to show this timeline here probably I'm going to highlight here that some of the things that exactly happened and and we can go back to this later and So that I'm going to reference this back because it's going to show you some of the problems that we encountered so 2003 sky scanners founded I'm going to highlight some of the probably some of the things here like in 2013 when we started to Acquire a hotels company, which is called fog and then after that we opened an office in Sofia and Around 20 so early 2015 we also acquired another company another hotels company, which so it's another group of people another team and That that's one of the reasons why we have a very diverse team in sky scanner So these are the growth that we experienced. I'm going to go back to that later oops That's I don't want to go through that and our ultimate goal is make travel booking as easy as possible. So Along that growth that we experienced we We ended up with having this distributed teams across across the region across different countries. So We ended up being a very let's say we're being a global company where We have a 60 about 60 million visitors and we also have all this different employees from Around the world where it became a bit Really challenging to manage at some point So I'm going to highlight the challenges that we faced when we were During that stage of growth. So when you see this picture, I probably Would like to maybe what you can imagine the communication problems that we have probably we have different teams from different countries. So There were different teams that had different standards and we also had We ended up with too many languages and frameworks and there's also duplication of work that has happened So these are the engineering challenges that we faced that I mentioned earlier and Yeah, so imagine we ended up with a situation like this where we had this Different teams from different regions. They have different stacked. We had this We had some really strange combination of tech stacks it's it's more of a like result of acquiring different companies and also different people from all over the world and if you notice there's some there's this Aurelia the lower that you see which is I just want to highlight that because it's one of the JS frameworks that one of the one of our engineers in Singapore proposed and right now I don't know what happened to that framework So so the story here is that we were not we were not ready so Because we didn't have the proper infrastructure and tooling and also we've given All the teams too much autonomy in what they're doing. So we ended up just having this diverse set of languages and frameworks and Also, there was some at a time. We were also Playing around with the AWS. We're experimenting with AWS. So we I think what we did was that we had we just gave everyone a $500 budget per month on AWS and gave them the license to Every team the license to deploy and and use AWS. So this is one of the consequences that we need to face so in order for us to solve that we need to first we need to nail the basics which is I'm going to walk you through in the next few slides, but I'm not going to Dive exactly on this nail the basics part because it's mostly has something to do with our deployment pipeline So I think this this alone deserves its its own its own talk 30-minute talk. I think so in order for us to To start tackling the problems we need to nail the basics I think that the very first that we need to look into this our continuous delivery pipeline where We're using just this open-source software. You can look it up drone.io it's it helps you easily build your Docker images and configuration as code you can easily just Just paste there the command line scripts that you need to run and then It's also container native. So if you're using Docker, it's very easy to integrate with Docker deployment orchestration. So after you built your your app in the deployment pipeline you can We need something that will deploy this to across different clusters in AWS. For example, if you're using ECS We need something to to build that to to do that So we have this internal tool that we call slingshot that allows us to deploy a clue in ECS clusters I'm not going to dive into that But I do have some articles here that I I posted in the reference that you can you can check It's a it's a three-part article that our former CTO wrote that probably can learn a few things on Yeah, I'll do that Sure Yeah, cool Then okay, so after we nail the standards we need to come up with our own Front-end standards that we need to adhere to in order for us to Make sure that the business is running but at the same time we need to Also make sure that we adapt to the growth that the growth rate that's happening So a part of the front-end standards is cookie cutter cookie cutter is it allows you to somehow reuse the Existing templates that are pre-configured and run them as services Is anyone is anyone familiar with cookie cutter? I have used cookie cutter the Python No, okay, I will show a bit of a demo later, but we we kind of Modified it a little bit to in order for us to reuse it and internally so what what basically it is is yeah You have a set of templates, maybe I'll just go straight to the To this diagram, hopefully it's which is hopefully clear enough, so you you just need to run this command line This this command on your shell and you just we just have a preset template which which contains the configuration that we need to deploy and the Existing like front-end components that are reusable and then we just need to enter the The details in order for us to to make sure that we we name our services properly We know who's the owner You know what? I'll just show a demo and then So it's easier so Here's how it looks like So we have a It's too small is this Visible enough, okay So we're just we just need to run this command like this for example, you have this template that we already have prepared and I mean let's say I want to build a new A new front-end or just a new simple web app with the node. I'll just run this in my command line for example Then it's going to ask me for certain details or information like Okay, it looks like the demo doesn't work Let me try again Okay, looks like it's it's our lucky day today, so I'll just So so the idea is that I'll just enter this and then it's supposed to ask me a few set of Information like a service name then the group github group description of the service and you'll end up with You're supposed to end up with this With a service that Has all the pre-configured Script that we have for example this one so Maybe I'm connected to the row. Okay. I don't know why I'm connected to the guest Wi-Fi. I Need to connect to our internal Wi-Fi Okay, I'll try that again. Well, at least at least the the page loaded Okay, so there you go Yeah, so this is what it's supposed to ask me So it's supposed to ask me the name of the microsite So this is going to be the namespace when you when you deploy your your web app to production So I'll just name it as For example and then it's going to ask me another information Which which is the description blah blah blah, so I'll just put some description the AWS project So that's an example and then it's going to ask me. What's my target user? So if I put their partner for example, it's going to enable authentication if I put Internal is going to use to enable the LDAP authentication for example. I'll just use Chover so these are This is just arbitrary questions like in our case we have a we classify our services into three categories So if it's first class it means that it needs 24 hours 24 7 support for example, so I'll just just for testing. I'll just put So here so after this it's a support is right now generating the project in the background and I'm supposed to see this Folder right here and when I come in you can see that it has all the everything that you need about When you want to run a react a react web application It pre-configures everything for you and if you go here you can actually see the so this is We can reference this back later, but this is oh You can see the so from here the what is not the one So actually pre-configured the feed the service name. This is just one example so there are many other things that it has pre-configured for you and Yeah, this this was the this is a service that I Cookie cut earlier just to make sure that in case in case it fails But but you get the idea is just you're just cookie cutting an existing template and Anyone can just reuse that same template over and over again So going back to the slide Okay, so that was the cookie cutter Then the other standard that we tend to follow is reusable react components Luckily recently react has been quite a bit of a game changer for us. I only have 90 minutes left, okay, okay, so then react components right cool, okay then Okay reusable react components. So these are just reusable standards Just imagine it's it's our own version of a bootstrap where we just go to one location And then we just reuse the same elements the same buttons with a with their own with exactly the same color same padding and margin and So in case you haven't seen we have a It's open source. It's it's called backpack Backpack and it's on github Uh, okay Maybe so this is the how it how it looks like so the entire process Maybe I'll try to connect it with the quick cutter So somebody for example going back to the quick cutter somebody will click at the template and then enter the service details in there and then the next thing is that once your Web app is ready. We have this reusable react components that we just We can copy and paste literally and just install as Just npm install and then copy paste the the element name and set it so I can show a bit of demo here Let me go back to my Editor so here. I'll just you can tell that I've done this so many times before Presentation, okay, gotcha So here So this is the an example of One of our pages internally, so this is an example of a backpack tag and then I'll just probably just add another backpack tag here and And just deploy it save the changes exit full-screen mode and then just refresh the page and I'm supposed to see the Changes that I did just now there I go Okay Yeah, so that's basically our what an example of our backpack component and What I normally do is this I'll just go to our documentation page and just copy paste the Elements and the examples here Play from current slide Okay, that was the demo for Our react components, which is which we internally call backpack The next one is open components. So we have this We have this Tool that we this open source open components. So basically it's it's it's also a reusable component But it runs on its own server. So what we do is that we deploy it behind the API gateway in Amazon and it's it's just a it's just another node react app, but it's It's reusable and it's hosted and it's dynamic so you can pass a parameter So one example is I'm not going to show an example. I'm going to show an example later But I'm just gonna show you like maybe a How it looks like from a high-level point of view So this is for example, this is your web application right here You can see the header OC OC is open components and then you have the OC registry This is where all the open components are hosted So what we do is that our our web application sky scanner net for example will consume this from from another server, which is What we call the OC registry and then doing that it makes it easier for us to let's say you have a separate pipeline for your header sidebar footer and If if there are changes that you need to do on the header and sidebar it it reflects across the different web application that use it Which is which kind of helps visibility, I mean helps in visibility and makes it easier for us to Work together, especially when it's a bigger team. So this is how it looks like and in the overall workflow. So Just a quick cutter and then after you click you got you have this web application that was done from the quick cutter And then you just need to Make sure that you call the the open components header and sidebar so so that you can render them and I think it's best to show another demo for that So I'm gonna show you first how it looks like in my local machine if I'm running a preview of the open component So this is an example of an component for our when a partner is logged in for our partners for example Expedia whoever the online travel agent or airline so so what the What our web app does is that it's going to do a get request to this and it's going to somehow inject the The content part or the the microsite part in between or in the middle or just somehow do some sort of composition and We also have this This is another example, which is which probably look similar to some of you who uses the sky scanner net who visited Yeah, so this is basically the another open component that that just hosted somewhere So imagine somebody when somebody makes changes here It's supposed to reflect across the different verticals flights hotels car hire and so many other pages and What else can I show and it's it's rendered this way actually it's rendered in a unique way so So it's very flexible when you render it so you can render it like this and then you can set different versions So your your app this and then this will be consumed by your maybe you can however you want to use it you can use Probably the the new async async function and react or just as long as you can get and render it should be fine So we use this a lot I think for mostly a bit testing so it's easier to maybe switch the different friend components So that's the open component Demo And I'm going back to my slide Okay So this is so just now I showed you the the bits and pieces starting from the cookie cutter then the The react components and then the open components. So this is how it looks like right now the our overall structure from another maybe higher level so we have We have this different microsites and there's our routing service and this microsites are owned by different different teams so it's easier for us to just To to deploy and we don't have to worry about Using the same one of the code base from different locations different squads and It also makes it easier for us to To switch to another squad because or another team because we're practically just reusing the same Components and the same standards that we have Yeah, so the here the just a few lessons learned that I want to highlight So when we're implementing all of these standards overall, it's it works both ways So for example, if you're an engineer using it you you need to You need to for example, if you encounter any issues you need to Have this that patience and report the bug file the bug reports to the developer and a woman team was working on it and And also you also need to Instead of having to find a work around yourself. Just you need to be very disciplined enough to to hold it off and maybe wait for the fix so that every because it's it's kind of a More of a long-term investment You're going to slow down for a while, but then it's going to speed you up at some point It will not work for all engineers. So I think one of the lessons we learned was that they were Not a lot of engineers really are okay with this kind of change because most of the really CSS focus or JavaScript focused work is Offloaded to another team who's really doing all that work So if you're unfortunate to not belong to that team and then for example, there's You couldn't join the team because they they they already have enough people So it's going to be hard so we had a few people who who left because because of this situation because they really want to do some really pure front-end stuff less effort in handing over ownership and team rotation so this one makes it easier because there's a clear line of what you own and What what services are are you supposed to maintain and when you switch teams as well? It's it's quite easy for you to just hand over all this all the microsites the open components Because they're pretty much the same but but we still have a this challenge at the moment because there are still some Old pages that we haven't migrated yet because Due to you know because there's just so many things going on. So for example, if you look at this page the far flights page Obviously, this is already using our latest Components react react component the backpack component. This is the standard button if you go to hotels You see the same thing as well. It's so it's exactly the same style of button But when you go to car hire You you easily notice the our legacy It's one of our kind of neglected product at the moment, but we're we're we need to prioritize but I think as long as right now It's the business is still running for car hire. So it's okay, but we're we're working in it and You see what else? Yeah That's that's it. That's how we do. That's our standards and how we do front-end development Here are the questions. Yes Yeah We cutter because we react have so reactive isn't that react specific? Okay, we cutter we use it. It's it's more of a general tool that we use not just for react So it it helps us. It's because for us. It's more flexible. We use squeak cutter for our Java services or Python IOH TV's HTTP services and for react so it's and it's also meant to somehow help you template ties the some of the configuration for service like your AWS file your Drone or deployment file and Docker file Dynamic Yeah, there's a bit of a trade-off with the convenience that we There is a trade-off definitely so you need to do a bunch of HTTP requests for that but but I think nowadays the Computing power is cheap and all these HTTP requests can actually when you're on the cloud is quite cheap So we have that the trade-off that we have to deal with it slows down a little bit It's not very noticeable. Just like just like how for example when you search Google flights It's your sky scanner. You see how noticeably faster Google flights is Because because they have their own GDS so we also have that disadvantage with a Because of the convenience that we're trying to to achieve with open components It's it's actually a service that's open source that's being maintained by a company called open table so if you look up the that I sent here, so that there are I think they're they're a startup that Have the same problem as us. So they they found a way to to Come up with this open components thing that where you can just deploy your front components Because we wanted to be dynamic So this also components actually react and node so you can pass parameters and do some processing in the background and You know, so call another API endpoint Yeah I was gonna ask about your performance because I saw like the lazy loading each other script in your CSS Which is forcing very paints and all sorts of stuff I'm guessing you just haven't really looked at it all that much yet. Is that not yet? Yeah, yeah, it's very safe. Yeah, and also also because Especially for us the teams who use this tools that we have Probably it's not a good habit, but we have this habit that we'll just leave it to the developer and a woman squads to Figure it out for us and they'll just we use whatever they see in the performance budgets Yeah Email other questions from anyone else Thanks So how long did it take this whole process like from the point where you realize we need to switch to this thing and To how long was out and was there like a core team that was put together to kind of like formula this whole thing Oh, was it more like organically that? Right. It was a conscious decision. We really came up with We had a you're right. We had a cooking that we started this so we started with a what we call a release engineering team who we Who focused on automating all of these so it started from 2013 Maybe late 2013 and then It took us probably a year to really nail the Deployment pipeline and make sure that no maybe you have less five engineers complaining every day just to make sure that it's It's usable. How big was that team so the team that started it it was It was about seven people actually. I was I was supposed to be initially with the team, but it was hard for us to coordinate because most of them are in Edinburgh, so Yeah, I only I only contributed on the command line Not very significant contribution any last questions If anyone doesn't know what sky scanner does because sky scan is one of my favorite things and I'm on all the time any time you are Looking to fly from somewhere to somewhere else sky scanner does a search across basically every airline you can think of all sorts of weird route configurations that you've never heard of and Carries it across lots of different sites, so they don't sell you the fair themselves They basically show you other places And to give you a practical example say you're organizing a talk CSS conference in January of this year and had to fly someone Had to get them here as cheaply as possible Sky scanner is my go-to for that So if you don't use it all similar things for when you're planning your holidays, then do Thanks


It does not cost anything whatsoever to like a page like both pages because one page Yes, if you go to Walter's toilet on like the page, it's $1, but if you like both pages, it's $2 Right now we are short of this month's goal We're about $3,300 and we're hoping to Increase that to $10,000 as many as we could possibly can for For the school systems and you know the the community


With 4,500 characters, dental school applicants need to share who they are, reveal their aspirations, and their journey to dentistry quick. Stick around and I will share how to kind of stand out from a pack. For the best personal statement coaching, subscribe and hit the bell so you don't miss a video. There are four elements that every dental school applicant should hit in their personal statement. From storytelling to reflection, you want to make sure that you kind of stand out by really, really developing your ID, your identity within dentistry. Hi, I'm Dr. Josie with Write Your Acceptance as a university writing faculty and personal statement coach. I know what they're looking for and I know how to help you tell your best story. Stick around. Tip one, decide on your emblematic story. So you want to make sure that your journey to dentistry maybe perhaps starts with that spark moment. So that one experience that you can narrate that reveals to the reader why, how you kind of set off into this journey within dentistry. So that's super important, but you want to make sure that you don't kind of tell this grand narrative that occupies so much real estate. You want to kind of break it up into chunks and bring in kind of very specific strategic experiences, then show kind of in sensor driven, imagistic language kind of continued commitment throughout so that you have this spark moment, this kind of foundational experience that helped you kind of get on this path. But then you also have these moments that you kind of splice throughout that are in narrative form that show that continued commitment and you want that camera over your shoulder feel as if you were telling showing a movie and really kind of get the reader invested in your story. Tip two, convey passion and commitment. And so students will ask me all the time, how do I convey passion, commitment without sounding too cliche and unoriginal. And so basically what you're going to do it is through showing through those imagistic type sentences. A lot of students will start with telling phrases. So sentences, for example, I'm committed to a career in dentistry because it is what I have been passionate about ever since shadowing Dr. Perlman or my passion for the practice of dentistry shined right when I interned at Dr. Cavity's practice. I realized then that I wanted to dedicate my time and efforts to such a noble practice. So these are not bad sentences, but they should come on the heels or after the kind of narrative that shows this commitment and shows this passion when you shadowed this person or when you were kind of volunteering and turning at that practice. So you really want the kind of story to come first and then have these telling phrases.  So you definitely want to add those kind of narrative style as, you know, as if I'm watching a movie of your life and then kind of reflect with those telling phrases. If you like the less number of telling phrases, the better. Tip three to tell effective stories, we bring in descriptors, image and sensory driven. So the five senses whenever possible, I want to see here, taste, touch, all that good stuff, whatever appropriate. You want to do this by kind of as efficient as possible and strategic as possible, meaning that you want to make sure that you're not kind of taking too much time to get to the heart or the climax of a story.  You want to get to write the heart of the story right away, kind of a quick description, a quick exchange, a dialogue between you and a patient. And then you kind of want to map out or like zoom out rather and then give the ambient noises or any other kind of, you know, chatter around or responses to the exchange that you just had. So you're kind of zooming in and zooming out very efficiently to tell a story. And then you kind of reflect on it. So here's an example, a 63 year old patient with a salt and pepper bob clutched the chair until her knuckles were ghost white, shredding her mouth. She refused to let anyone near her much less begin her much needed root canal. After the hygienists left the room exasperated, I sat in the corner far enough for comfort and asked her open ended questions in Spanish, stumbling upon our shared love of Chinese food. She began loosening her demeanor and then whispered that she was no longer scared. So notice how we zoomed right in to the patient, right? So we kind of had a quick physical description so that we can imagine it in our mind's eye, her kind of knuckles turning ghost white because she was so tense and the student kind of dropping a pin and letting us know where they are in this scene. So very quick in a couple of sentences, we get how tense the patient was. We get how kind of friendly and personable the student is and how they can kind of connect with people. So they're socially aware, they're reading the social cues, which is very important when you practice and when you work with the public. So we get a number of traits here, compassion, empathy, and then you can kind of reflect on the takeaways and lesson learned. But if you don't have this anecdote beforehand and you just say, I am compassionate or I am empathetic when elderly patients or older patients, you don't hate the dentist, we don't get that kind of emotional connection that we do from the story first and then the takeaway. So after this as well, then the student can say that, you know, interning at Dr. Cavity's practice, let's say the invented last name, was more than just sterilizing equipment and organizing files. It was a chance to kind of interact with patients and learn how to kind of dial in on the emotional register that is needed to be an effective practitioner. Are you starting to brainstorm your personal statement and aren't sure you're headed in the right direction? Comment below, I'd love to give you my two cents. Tip four, how will you give back to the community of dentistry? So your personal statement should not be just what you're going to gain from dentistry or what you've already done. It's really kind of a starting point as to the type of dentist you will become and how you will connect and offer, you know, pay it forward in some way. So really think about how you're going to kind of establish that ID, right, that identity within dentistry. Are you interested in kind of dental mission trips? Are you interested in opening a practice and kind of merging, combining the business aspects, you know, many dentists have their own practice, right? Are you interested in connecting with lower socioeconomic pockets of society and offering free or low income oral health care? So how do you see yourself giving back to this community? And how will your community improve because of your involvement? I think that's a super important kind of question to consider as you are, especially wrapping up the ending I like for this kind of why me and dentistry. So these are examples that I've seen in previous personal statements to kind of give you some inspiration. So if you come from a disadvantaged community yourself, you can give back to your own community or the community where you were raised in, right? If you volunteered with a local group teaching oral hygiene to children, you can kind of relay it to an experience that you already had and then talk about how you aspire to expand that project in a way. Maybe you did some research on dentists without borders or something kind of, you know, medical mission trip type. And that may be interesting. One more underutilized kind of option is to connect dentistry to something else. There's a local orthodontics who now with the kind of pandemic has shifted some of their efforts to making a PPE to supplying hospitals with protective equipment because of the shortages. So how do you kind of see yourself offering a kind of community-oriented gesture of commitment is necessary and is needed and that you would thrive with? If you want more expert feedback on your personal statement, definitely book your one-on-one call with me. The link is in the description. If you like this video, you found it helpful. Please share it with your pre-dense friends. Please give us a like and I'll see you soon. Thanks for watching.


So, a conversation that GameSpot had with the Elder Scrolls Online Game Director, Matt Ferrar actually exposes an issue for Nintendo Switch that I hadn't considered, and I've heard some people whisper about it, but I always thought it was overblown, and it's an issue that I don't really know what the simple solution is to it, at least for creating a system that can play games anywhere like Switch likes to tout, and that is because Matt Ferrar made this statement on why Elder Scrolls Online will not be coming to Switch. He said, we have thought about Switch, but Elder Scrolls Online is an enormous game and it just will not work. I would love for it too, because I love Switch, it is one of the largest games ever made and it just will not fit on Switch. And he's not talking about in terms of world size and visuals and graphics and capabilities, that's not really what he's talking about, he's actually talking about the file size of the game. Elder Scrolls Online is like 80 gigs, 90, some people claim it's over 100, it's a game that's ever growing like any other MMORPG, it's not a game that ever shrinks. As more contents added, the game file size just keeps growing and growing and growing. Heck, I think my World of Warcraft file size at this point is like 150 gigs or something and that game came out in 2004. The point is that the reason that he doesn't think it can come to Switch is because of the file size. And it's not so much because Nintendo doesn't have 64 gigabyte carts ready or anything like that, it's that that still wouldn't be enough, even with a physical copy at 64 gigs, you'd still have to download like an additional 50, 60 gigs. And it's just going to keep growing from there. And it's an issue that I think is almost wholly unique to Switch, yes. Obviously on PlayStation 4 and Xbox One, there are games that have massive file sizes. In fact, Red Dead Redemption 2, which just came out today, so congratulations to everyone playing what appears to be probably the runaway game of the year. That requires like 100 gigs on PlayStation 4, like the base model. If you have an Xbox One X, the file size is even bigger because you're using 4K textures. Now yes, these games brought to Switch running at lower resolutions would be smaller, but not so much so that we're talking about massive shrinking of file size. We're not talking about taking like Red Dead Redemption 2 from say 100 gigs down to, you know, something more manageable at 20, we're talking like 100 gigs down to 90 maybe. This is an issue that Switch has because when you get games that are this big, and it's not just because of physical versions, when you look at like the digital versions, it becomes an issue because not only does Switch only have 32 gigabytes of internal storage, the storage you need to store one of these games on your Switch is not exactly cheap. Even when you get it on sale, say you get a 128 gigabyte cart, right? You get it on sale for, I don't know, let's just say you only paid 15 bucks, 10 bucks, right? You got very, very lucky on a flash sale. Well, for that 10 to 15 bucks, you get to store one of these games, just one. And if you want to play most other games, you'd have to swap out that cart for something else. You want the 400 gig cart, well, you probably spent at the best sale price I've seen it. Let's assume that you got at the sale price I put up a few weeks ago of $100, right? So you got that 400 gig cart, 100 bucks. Well, guess what? Elder Scrolls Online has taken up a quarter of that and that game is going to keep growing and keep growing and keep growing. And it might grow to the point where that 400 gig cart you have, a vast majority of it has to go to a single game, which is not going to be acceptable in a marketplace where you're trying to allow people to have as many games as possible. So yeah, well, it's awesome that Nintendo Switch supports the micro SD card format. It's not necessarily a feasible format for today's gaming space. For today's gaming landscape, games are getting bigger and bigger and bigger. And you can hate that, but that's just the reality. It's been an ongoing thing for decades. Games went from kilobytes to megabytes to gigs in a hurry and it just keeps growing and growing and growing. Game file sizes aren't really shrinking, guys. They're getting bigger and Switch is not really built to handle that.  But Nintendo does not support external hard drives. Why doesn't it support external hard drives? Well, because the Switch can't use that external hard drive when you're on the go. Now, I do think supporting external hard drives solves some of the complaints here that Matt Furr has from Bethesda where Switch isn't feasible, doesn't really have the space. And if you allowed two, three, four, ten terabyte external hard drives, spinning just hard drives that are cheap, I think that solves a lot of the concerns with that in terms of playing the Switch at home. But a lot of these people don't want to be like, hey, you can buy this game for Switch, but you can really only play it at home. That's not the way people really want to sell their games. They want to be able to market it on Switches. Hey, you can take it off the dock and take it anywhere with you. You're not just locked to only play it in docked mode, especially for a game as big as the Elder Scrolls Online or a game like, you know, Red Dead Redemption 2. And I think it's an interesting conundrum we find ourselves in because I don't know what the solution is. The storage medium doesn't really exist at an affordable price for a portable form Switch to really handle something like this. Even when you have like those 512, you know, you know, gigabyte phones, right? You have 512 gigabytes of storage. How much of those phones cost again? All right, usually they're creeping up towards $1,000 or more. And a huge chunk of that increase is just off of the storage price. So Nintendo is to be like, hey, let's just put 500 gigabytes of flash storage in the Switch. It might jump from $300 to $600 or $700. And that's just using the same specs. So it's not really something feasible for Nintendo Switch to offer an internal storage solution. And as awesome as micro SD cards are, a lot of people aren't going to want to buy like the Elder Scrolls Online and then have to buy, you know, $100 plus, you know, micro SD card just so they can install that game, but still be able to install other games.  But that's obviously not an ideal situation. And it's not something that I think Bethesda really wants to see mixed in. Now, obviously, there's workarounds for this. They can make it so the game's physical only, which does limit the sales, but would also eat up some of the storage issues. You know, let's say they opt for the biggest card size available at 32 gigs. It still would leave like 60 gigs to download. But maybe, you know, they put it on a card and then maybe they include a 128 or whatever micro SD card in the box and then they charge you, I don't know, what would they charge for this game, $80, $100 or whatever to get it. I'm not exactly sure what a price point is where they would be willing to actually sell it physically on Switch if they're including the micro SD card and they're including the largest size Nintendo Switch card. And that is a possible solution. But again, none of this idea, none of the issue with storage on the Switch does not actually, you know, properly solve all of the issues. Now, I know someone out there is going to be like, yeah, well, you know, it should just be on there for people who do have the 400 gig, you know, size or people who are willing, like, obviously having the game on the platform is better than not. But I do think you need to understand this from the publisher and developer side of things where they look at it as, look, we have to invest money to get this game on Switch knowing that it's going to have all of these limiting factors due to the storage. And we can't be sure that the marketplace is really going to be accepting of the fact that a vast majority of Switch owners will not be able to properly play this game. They won't be able to download the full update for the physical version or they won't be able to fit the digital version on current storage mediums on Switch for a lot, a lot of Switch owners. Obviously there's outliers, people who just money's not really the object. They have the 400 gig. They're waiting for the 500 that's coming out or is already, I think there's a 501 already out. So maybe they're willing to spend the money on the 501. And yeah, the Switch supports up to a potential of two terabytes, but those cards don't even exist right now. And can you imagine what a two terabyte micro SD card is going to cost? I mean, you're talking five, six, $700 for something like that. So I sympathize a bit here with Bethesda Stance. And it makes more and more sense why a lot of these super large AAA games are just not feasible on Switch. The Xbox One and PlayStation 4 don't move. They're stationary consoles. They include 500 to a terabyte of storage. And even that, some users are complaining that this is a lot of storage for those systems. And they can fit them internally on their internal storage. And you can use cheap external storage in addition to those systems to expand the storage ad infinitum. Heck, if you really want, you can open the consoles and install new hard drives and increase the storage that way. So I'm actually curious if you guys have a solution out there for this storage problem. Maybe there's a solution to this. I have not considered that solves this for everyone. And I think probably the one solution people are gonna say is Nintendo should just release a standalone Switch that only works in docked mode. So it only works on your TV. It's not portable and that solves everything. Or Nintendo should just make a traditional home console and then this becomes a non-pactor. But ultimately, I think part of the Switch's success, part of Nintendo's success, is that they have this platform that does both and does it seamlessly. And yes, guys, I know there are some games that only work in portable mode. And I think there's even a select couple of games out there that only worked in docked mode. But none of those games are major titles. Even stuff, even stuff like Pokemon Let's Go, Picture Let's Go, Eevee, which is intended to be used with your TV can be played on the go. Super Mario Party, while you can't play it, like handheld wise, you could still take it off the dock and play it in tabletop mode. So it's limited, but it's not entirely not portable. You could still play the game portably in some form. You don't have to be locked to your TV, you just can't play in all of the proper forms on the go. So while there have been games that have had these little restrictions, we're talking about a game that's basically you could only play it at home, period. Or you can take it on the go for a very small percentage of Switch owners that actually have the storage for these kind of games. And can you imagine that these games are coming out regularly? If we got to Kingdom Hearts 3, and that ended up being 80 gigs, if you got Red Dead Redemption 2 at 100, you got Elder Scrolls Online at 100 plus because it keeps growing, it's something that's hard to fathom the Switch can handle. And it does show one of the major limitations, not from a tech perspective in terms of specs and GPU and CUDA cores, and all the things that people like to focus on, like why can't Switch have cold duty like us for? Because of this and the other thing, it's still technically possible to get those games to run on Switch. But what does get in the way is storage. And yeah, what's your guys' solution to this? This clear issue. This isn't even about the cost of carts at this point. And Nintendo does intend to eventually release a 64 gigabyte cart, but that doesn't solve this problem either. And most developers aren't even willing to use more than eight gig cart. So how are they gonna convince a third party? Hey, use our most expensive cartridge. We're gonna charge you an arm and a leg for it. We're gonna charge you $10, $15, $20 to even use those carts. I, oh man, it's an interesting conundrum and it kind of sucks because I think a game like Elder Scrolls Online makes a lot of sense on Switch in terms of the game itself being a very interesting prospect for the platform. Obviously Redemption 2 is probably never coming to Switch, but it would have been interesting to see them attempt to bring it to Switch. Imagine being able to play Red Dead anywhere, even if you can't play it at like that best looking visual settings you're seeing on all the other platforms. It would be cool to still have that experience on the go. Would it not? But unfortunately, just storage-wise alone, it's just not really something that is wholly feasible. And yeah, I mean, part of me wants to not accept the excuse because again, there are ways that Nintendo could enable external storage or play under TV, but at the same time, I'm trying to look at the other side of the coin and be like, yeah, that really limits your audience. So I don't know. You guys, let me know what you think about this down in the comments below. I am Nathaniel Rovedjens from Nintendo Prime and if you liked this video, hey, hit that like button. In fact, you know what's awesome about when you hit that like button it actually helps the video out. It actually makes the video, believe it or not, I found this out quite recently from my MCN that when people like the video it actually sends out more notifications to more of the people actually subscribed to my channel. Why it takes people liking your video to send out notifications to more people on your channel is beyond me but that is something that's happening currently in the YouTube algorithm. So hey, if you do like this video and you like my channel, I highly suggest you hit that like button. If you dislike it, hit the dislike button, I guess. I do warn that the more you interact with the channel if you don't like my videos, the more my videos are gonna show up in your feed. So hitting the dislike button doesn't mean the video's not gonna show up in your feed. You're not telling YouTube you don't wanna see these videos, unfortunately. You know what you're telling YouTube is, this was a video that I watched enough of that I felt like I should interact with it because you interacted with it, that's what YouTube values so they want you to interact again with more of these kind of videos. So for those of you that criticize and don't like my content, the easiest way to stop seeing my content show up in your feed is stop watching, stop clicking, stop commenting and stop hitting the dislike button because it doesn't actually help you out. Anyways, subscribe for more content. I do have a giveaway. It doesn't leave an IO link down in the description and I'll catch you guys later.


Okay, hi everyone, it's me again from the last talk, I mean the last meetup. So today I'll be talking about child themes and understanding child themes, the parent and child theme relationship in WordPress and why I think it's one of the most, one of the more important aspects of WordPress when you, regardless if you're into WordPress development or just a user of WordPress. So, my name is Edmund, I'm an ex-WPS WordPress engineer and this is my email address if you want to reach out, feel free to drop me an email and I also blog, although not so frequently, I try to on development stuff so if you're interested you can give it a read. Okay, and these are the few things, few points that we'll be touching today. So what is a child theme? We'll be looking at the parent child theme relationship in WordPress, why should we use a child theme? We'll take a look at why was child theme even introduced in the first place? What problem was it trying to solve? And then we'll look at when to use the child theme, do we, should we use the child theme every time we are setting up a WordPress site? Yes and no. And lastly we'll look at how to create a child theme. So there are two ways to do so, one is to create a plugin, one is to use a plugin and the other one is to do the manual way and I'll show you a demo of both ways at the end of the talk. Okay, so before we look at a child theme, I think it's important to understand what is the parent and child theme relationship in WordPress. So as you all know, a theme in WordPress is this, if you look at the file directory, is this folder that consists of a lot of files, template files or your static assets. Those files are required for your WordPress site to look properly on the front end. So a theme can, so those are considered a full theme. It consists of all the required files and some of the more popular ones include 2020, the recently released default theme, generate press, underscores, Astra and many more. So all these are considered full theme and all the full themes can actually be transformed into a parent theme when you are using a child theme. What do I mean by that? So if you look at this example, over here I have two themes installed in this WordPress installation. I have the 2020 and generate press. So these two are considered full themes because there isn't any child themes being created here. But if I were to create a child theme that is based on 2020 theme, that 2020 theme will automatically be regarded as a parent theme. So as you can see, I have a child theme over there that is based on 2020. So my 2020 theme has become a parent theme. Generate press is still considered a full theme because there is no child theme created based on that yet. So based on that, you can kind of understand the parent and child theme relationship. The child theme is intended to work with the parent theme. What it means is that when you create a child theme, right? It inherits all the look and function of your parent theme. So technically speaking, if you were to create initially, if you were to create a child theme and if you were to activate it, your site shouldn't look any different because it inherits how your parent theme looks like. And it actually changes. It allows you to change only parts of the parent theme. And of course the child theme can never, it's not able to work without a parent theme. So in this case, if I were to deactivate the child theme, my 2020 theme can still work well because it's a parent theme. So once I deactivate the child theme, it's gonna be converted back into a regular theme. But if I was to remove the parent theme, then my child theme would not be working and the site will be broken. So this is what it means by, this is why a child theme is only intended to work with a parent theme. And this is how it's gonna, how a typical file directory looks like when you have a child theme. This is inside the slash themes folder. So as you can see, I have the 2020 theme and then I created another folder. I named it 20 dash child. And on the left side of, this is the folder structure of the parent theme. So I mentioned a parent theme is actually a full theme that consists of all the required files. So as you can see, there are way more files than in the child theme. Those files are required for the parent theme to work. But if you were to create a child theme, you only need to have a few files that you want to override. So what I mean is that any file that you want to override from the parent theme, you can copy it and paste it into the child theme. So in this case, I have a footer.php in the child theme and in the parent theme. So if you were to put it in the child theme, the footer.php will actually override the one in the parent theme. So this is what it means by if our being added to the child theme will actually be used instead of the parent theme. There is one exception, which is the functions.php. During the demo, we'll take a look at that. So this is how the demo side looks like on the front end. So this is before I installed the child theme. This is the footer by default. Just the copyright text and then powered by WordPress. So I decided, what if I decide to add my own text? For example, I want to customize the footer. I would have to do this duplication of all into the child theme folder and then I can edit the code and then this will appear on the footer of my site. So this is what it means by the child theme, the child thing overriding the parent theme. Okay, so at this point, you might be wondering why do we need to go through so much trouble to just add few lines of text or add whatever customization? Why can't we just edit the parent theme directly? Why do we need to create a child theme? So before the whole idea of child theme was introduced, developers and users in the past, they faced this issue of being able to customize their site. So what I mean is that they can edit all the files, open up the files and edit the code, so it's fine. But when it comes to updating the theme, if they were to update the theme, all their changes will be removed. So that was quite a big issue because imagine if the theme that you're using has this major exploit, the theme that you're using has this third-party file that is vulnerable. So the obvious thing to do is to quickly update your theme, but then you wouldn't want to update your theme because if you were to do so, all your changes would be erased. So that's when the core theme and the community came up with this idea of child theme. So the biggest problem is that it allows you to update your parent theme safely and having all your changes still intact. Okay, so this is an example of what I mean. So this is me editing the parent theme directly. So I added some CSS changes and then I refreshed changes work and then I went to update the theme. So after the theme updates, I went to refresh my changes are gone. So that is what I mean by being able to safely update the parent theme. So why do we use a child theme? I think if you had to take away one lesson from this talk, then it's gonna be that child theme actually allows you to safely modify the parent theme. Although it has other benefits, but I think this is the most important advantage it gave you. So it allows you to safely modify the parent theme like what we have seen. It also speeds up development time. So what I mean by this, for example, if you are selecting, choosing to use a theme and then you chance upon like 2020, you like the look and feel of it, but you don't really like maybe the footer part or you don't like the sidebar. So what you can do is you can just install that theme and then create a child theme based on that and then you can override whichever parts that you don't like. So you don't have to recreate the whole theme from scratch. The foundation is already there. So it speeds up development time.  You don't have to worry about your child theme not receiving the latest features from your parent theme. And lastly, it's also a great way to learn about how themes work in WordPress. When you're building child themes, you're probably gonna encounter like the template hierarchy, how the theme development works in WordPress. So I think it's a good way to start if you're into theme development. And okay, so having said that, when should we use a child theme? So if you find yourself constantly adding new functions or modifying styles, or if you are looking to change like certain parts of the site, like the footer, the sidebar, the hitter, what we call template overrides, or to make things simple, in my opinion, I think that if you're not building a theme from scratch, then I think you should be using a child theme. This can be debatable because a lot of discussions have been circulating around regarding the use of child themes. Like why do I even need to use a child theme? Why can't I just install, if I want to make just a small CSS change, why can't I just install this custom CSS plugin? That's where that plugin allows you to insert your changes so you don't have to create a child theme. So that is true to a certain extent. I think it boils down to personal preference. For me, I prefer to edit the code, to open up the file and then edit the code. But most people think that they can just install a plugin and do their changes over there, fair enough. So in that case, they might not require a child theme. They can just use the plugin to implement all their changes. On the other hand, some other users feel that they are not gonna customize their site much. They are probably gonna use a page builder, for example, and then they are just gonna create the whole look and feel of their site using the builder. So they feel that, oh, there isn't a need for me to use a child theme. But I think that it's true probably at a point of time, but in the future, if you are looking to pass it, looking to find a developer to customize your site, to add some new features. And in my experience, when I receive a theme, a site that doesn't use a child theme, I would be a bit worried to actually just go in and edit because the previous developers might actually be editing, they might have actually just edited the whole parent theme. So I wouldn't wanna just go in and create a child theme.  And okay, so how, so as I mentioned, there are two ways to create a child theme. This is one of the plugins that is available in the repo. I think this is one of the most straightforward ones. The others, they actually ask you a lot of questions and more features, which I don't think is necessary. So what this plugin does is that once you, oh, sorry, this is one way of creating a plugin. Using a plugin and the other one is to just manually create a folder and then implement all the required files yourself. Okay, so in a child theme, the minimum you need to have one file, which is the style.css in order for the child theme to work. And in the style.css, you need to insert this header block and then if you look at the highlighted line, that is the most important comment. So in this example, I'm using, I chose to enter template 2020. This means I'm using the 2020 theme as my parent theme. So this needs to match the name of your parent theme directory. And next, you can create a function.php. This is not necessary, but it's, in order for your site not to break, you probably need to wanna have this as well. So in this function.php, what you need to do is to implement your parent style, bring in the style sheet from your parent theme and then include the style sheet of your child theme.  So this is probably gonna be a lot clearer when I show you the example.  And okay, I'm just gonna go through a quick demo starting with using a plugin to create a child theme. So this is my WordPress installation I have. Okay, maybe I'll just show you how it looks like. What happens if you were to actually edit your parent theme directly? So let me just open up the style.css, for example. So this is the style sheet of my parent theme.  So I managed to change the background color of the body section, which works great. But what if I choose to... Right now, what happens if I update the theme? So, okay, the theme is updated now. If I were to refresh it, you see that the changes have been erased and my code is no longer here. So this is why we use a child theme. Okay, so this is the plugin I was talking, I was telling you guys about child theme. You can search for child theme generator. So like what I said, there are a lot of options for you to choose from, but this is the one I was referring to. Child theme generator. If we know why, you choose this. I just feel that this is the more straightforward one, straightforward one. If you were to actually use this, and it's just gonna show you this screen and then ask you questions, and then you can just create a child theme. For the others, they actually have more tabs for you to do more stuff. I don't think it's necessary. More complex stuff. Yeah, more complex. It still works, but it's just more things for you to study. I don't think it's necessary though. So this is more straightforward one. Okay, so I've already activated it. And so this is how it looks like. You don't really need to fill in all this, as they mentioned over here, all fields are optional. But this is the one that you need to choose from. So right now I only have one theme, one other theme activated, which is this. So what this does is that it's gonna create a child theme based on this parent theme. So I'm just gonna go create a new theme. And they'll just ask you if you wanna activate the child theme, so you can just click finish. Okay, so if you look at the themes page, you see this new child theme created. You can actually change this image if you want. If you go to your site directory, the file directory, you should see this new folder here. 2020 child, so this is the screenshot that you can, you can just replace it with another image, but you must name it as screenshot.png. So right now, if we were to go back to the front end, it's gonna look the same, nothing has changed. But we can safely insert our custom any changes that we want. Without having it being erased when we update the theme. So right now I am, I think I just set it to red color. Yep, so let me just roll back and bring in the old version of the 2020 theme. Just delete this, oops. Okay, so right now I'm back to the old version, which requires an update. Okay, so right now the site still has my changes. So if I were to update the parent theme, you'll see that our changes will still be intact. So updated, refreshed, and then it's still, the background color is still red. So this is how you create a child theme using a plugin. I would just go through, quickly go through how you were to create it, how to create it the manual way if you don't want to use a plugin. If you're not really, if you don't want to bloat your WordPress admin with too many plugins. So let me just delete this one. So like what I mentioned, you have to create another directory. You can name it whatever you want, but according to WordPress best practices, it's good to have the same name as the parent theme and then append it with a dash at the end. Okay, and the file that you need, that needs to be in the child theme is this style.css file. And then in this file, what you need is this header block. If you were to search in the WordPress codex, they should have this snippets for you. So you can just copy and paste and then you can just change the name, some of the values here. So I want this theme to be named 2020 child and then most importantly, this template here has to be the same as the directory of your parent theme. This will tell WordPress that you're creating a child theme that is based on the 2020 theme. So this is the style.css, so you can leave it empty, you just need this header block. Right now, if you were to go to, let's see what happens if you were to go to the admin. Okay, so I didn't include any screenshot, maybe I'll just throw in one screenshot PNG here. I'm using the same image as the parent theme, so it's gonna appear here. Okay, right now if I were to go to my front end, you'll see that everything breaks because my child theme is, remember what I mentioned just now about, if the child theme and your parent theme has the same file, so if I were to open, so right now my child theme has the style.css and then my parent theme also has this style.css. So when the files are present in both folders, the one in the child theme will be the one that has been used. So right now in my child theme, the style.css is empty. That's why on the front end you'll see this, no styling at all. This is where the functions.php comes in. So I'm just gonna throw in some code here. Okay, so basically what this does is, this line here it tells the word parent. I want to use my parent theme style.css, so I'm bringing in it. And then over here, I also want to load my child theme.css. But it brings in both the style sheets.  So if we were to refresh it, you can see that our site is back to normal. So right now we are using, inheriting the child, the parent theme, style sheet. And we can still update, do the updates on our child theme. So I can still change the background color to blue, for example. And then it's gonna change. So with this two files over here, style.css and .php, we can start to build our child theme. We can start to override the different parts of the site. So in the back end, we have... Is it trying to hand the parent css for its loading? No, it's loading two star sheets. If you were to look at the network tab, you'll see that there are two. So if it's a .php file? So right now, yeah. Okay, let me just show you the example. If I were to use the footer.php. For footer.php, we are not including both because in our functions of .php, we are only enqueuing the style sheet. So enqueuing means to kind of like load the style sheet. But we are not doing anything to the .php files. So by default, if we were to have a footer.php over here. Is it? Yeah, it's gonna load this one instead. So if... Yeah, because CSS, we are actually enqueuing both. They are bringing in both. But for the .php files, we are using whatever that is present in the child team. So... So you can't enqueue it or so, right? There isn't a reason for you to... You can't enqueue Java 2 or .php files, right? You can enqueue CSS. No, you can enqueue JavaScript files as well. But there isn't a reason for you to want to have footer.php, right? So if you want to have...  So maybe if I want to change this line, I can just edit here and then it's just gonna be reflected. Okay. So when you're doing this, you can still update your parent team and then your footer.php will still be intact, the changes. Everything very heavily on the child. Yeah. If you update something and it's like totally overriding, your child has a... Yeah. Right, so that's what happens. That's what happens with WooCommerce. WooCommerce has a lot of... I've done a lot of template overrides with WooCommerce. So when, for example, if there's this single, like a product archive template, if I was to override that and then WooCommerce release a new version that actually changes that structure, what you'll get is this alert in the backend, telling you that your template override is outdated and then they would want you to look at the new one and then compare it with old one. So that can be a bit more work to do if you were to actually override a lot of templates. So for me, I wouldn't... To add custom changes to my site, I wouldn't go immediately to... I wouldn't look at template overriding first. I would look at using hooks first. So if there's no hook, for example, then I would look at overriding a template. Then again, if you were to override a lot of templates, you're gonna be quite challenging for you when the parent theme update has a major update. So it will tell you the design dimension that you will tell you about WooCommerce? WooCommerce will tell you. Because you're... See for my better. See what it will tell you. Or is it a WordPress child function? No, it's under WooCommerce settings. They will let you know that your theme override, now your template override is outdated. So it's WooCommerce that will notify you. About the theme... It's the same thing. As long as you override this WooCommerce template, WooCommerce actually knows you're using your own template. And then they will notify you if there's any... If yours is outdated. That's any version number, right? It's called actually... Actually, one way to cheat is to just change the version number at the top of your template now. But then you probably want to look through the whole file and then compare. So I think I've covered... Oh yeah, another thing is... I was mentioning just now about functions.php. Why is this different? So any files that exist in your child theme folder, right? If that file exists in your parent theme as well, it's gonna... Your child theme will be the one overriding that. This is true except for functions.php. This is a bit special. What this does is it loads your child theme functions.php first and then it loads your parent theme functions.php after that. So this one is not gonna override because in your functions.php there are a lot of... There's probably gonna be a lot of custom functions. And if you were to override the parent theme, your site is probably gonna break. So this is the only exception. It's gonna load both the functions.php but the one in your child theme is gonna be loaded first. So if you're wondering why is the child theme the one being loaded first, if you were to open some of the functions.php in certain themes, right? They have this... They allow you to... They call it like a pluggable function. They allow you to override the function. For example, in my parent theme, I have this function over here.  Usually when you're creating themes, right? You want to make your functions spuggable. This means that adding this conditional statement at the top of your function. So in this case, in this way, since the functions.php of the child theme is being loaded first, you can create the same function. You can create same function with the same name and then override the way this function behaves. So let's say I have this one right now and when my functions.php of my child theme loads is gonna create this function. And then when the parent themes functions.php comes in, it will do a conditional check. It will check that whether this or if this function name exists, then we don't have to create this one. So it's kind of like overriding, allows you to override functions. This is why the child theme functions.php loads first before your parent theme. In case you're wondering why. So I think I might have shown a little bit too much code. Okay, I think that's all I have. If you have any questions, I'll be happy to answer them. Or are you guys convinced that you should use the child theme now? Where do you ever use child theme? Is there any student who would use child theme? Yeah, that's a good question. So I think I might have skipped that part though.  Because when you build a theme from scratch, you are. Is this more work for you? Yeah, it's more work. You're basically building like a 30 to 30 theme from scratch. So there's no reason for you to use a child theme. So that is one. I think to me that is the only when I wouldn't use a child theme.  I can even insert CSS snippets into my customizer. Why do I need to use a child theme? So it's personal preference I think. I prefer to just open up the font and edit changes. I don't have to lock into my admin and then go to customizer and make it clear for it to load and then it changes. So, yeah, if I would create a theme from scratch, I wouldn't need a child theme. There isn't a reason for me to use a child theme. Anything else? I'll ask you a question that's a bit reverse on what you should know. Okay. If I didn't have the theme, what I have to start to design? Hardcore coders will probably want to develop a theme from scratch and then build the design based on, build the site based on that design. So they're just gonna code everything from scratch. And then right now you can even choose to use page builder. You just start with a blank page and then just create the whole design out. So I think right now page builders are quite hard to do in WordPress community. So it saves a lot of time, definitely. It's true. I've probably used page builder myself. Like back in the day when people were actually getting someone else to design it. Yeah. They're designing it. They're using the PSP and then they know. Yeah. Well, this doesn't work.  So it's not just converting the PSP into HTML. It's converting the PSP into HTML and then converting the HTML into, to insert WordPress template functions, that kind of stuff. So that is what we do before page builders exist. Yeah. Even when they're using page builders. So I wouldn't say they slow down. You definitely have to use the more reputable ones, right? So I wouldn't say they slow down your site. But if I were to choose whether to use one, I wouldn't, I wouldn't, that wouldn't be a reason for me not to use a page builder. I just didn't want to, I just didn't like the way it kind of conflicts with my workflow. But I wouldn't say a page builder slows down your site. Maybe if you're not using the more popular ones than could be, but if you're using the famous few, then you should be fine. Yeah. Yeah. If you don't use it anymore, if you just deactivate the plugin, it's just a bunch of... Shop codes, right? Yeah, so that's why right now, all the leading page builders, they are not short code base.  Like V for example is short code base. If I'm not wrong, haven't used that in a long time. Elementor and Beaver Builder are the two more popular ones. They are not short code base.  So you've advised us to be using plugins that use short codes? No, no, no. That's page builders using short codes. I wouldn't, it's not really a good idea. Like for example, if you were to use DV and then you wanna change your theme in the future, then your site is gonna be all short codes. No, no, no images or nothing. So that's why people, they don't really want to use a page builder that is short code base. Visual Composer, DV, to name a few. Yeah. It's not that they take a long, it's just, it's not good. If you were to change your theme and then, suddenly all your site is just gibberish, you know. Yeah, so that's why it's quite frowned upon. Short code base builder. Yeah. But still a lot of people, like DV is still so popular and it can still perform well. So, but if I were to choose, I wouldn't use a short code base. There is plugins which remove the short code if you need to change. Yeah, I think there is, there are plugins that remove that. So, I guess at the end of the day, if you want to go through, if you are adamant on using DV, for example, and then you can still look into that solution to remove for the short codes. Yeah. It's okay, I think. Nothing against that. Yeah. So, try to use, instead of just for the theme itself. Yeah. If I want to make some changes in the plugin. Yeah. All the structures. Yeah. Yeah, that's what, that's how we usually override WooCommerce templates. If you're familiar with WooCommerce templates, then they will just encourage you to copy this file and then paste it into your shell theme. And then you probably have to put it, you have to put it inside a WooCommerce folder in your shell theme first. And then you can override the same structure. So, that's how you would want to override templates that are from plugins. But, like what I mentioned just now, I think the first thing you should look into is to use a hook, like an action or a filter to change the thing instead of using template overrides. Because then when WooCommerce releases a major version, your template might be outdated. Yeah, but it works well. Because they don't really have some, in certain situations, they don't have the hook that you want. So, you have to override the template. I have a talk on that. I can link it to you. I did a talk on that. I can drop the link in the meetup section, comment section, and then you can take a look at it. But essentially what it does is it allows you to just customize, extends WordPress. It allows you to customize and add features on top of WordPress in a different way. It's one of the reasons why WordPress is such an extendable software. So, without hooks, you probably wouldn't see a lot of third-party. Is it a bit like React hooks? No, no, no. React hooks is kind of the same thing. Like when it reaches this, the code reaches this runtime and then it's going to run your code. So, it's kind of the same idea. So, it's when your code reaches this particular line and then it's going to call whatever functions that are being put into this. So, it's kind of like the same idea. So, a bit of a shameless plug. But I think you can just go to my blog and then just presentations. Yeah. Oh, yeah, the one in hooks is over here. Yeah. Sorry? I feel that if you are, if you want to add something to your site, this function rather than the look and feel, you probably want to go to the plugin route. So, you can also add certain functions into your functions of PHP. But then again, if you were to show everything, all your custom functions into your functions of PHP, right? If you were to change your theme, all your functions would be gone. So, what I usually tell people is that if you want to add a certain function, regardless of what team you use or what my site has this function, I will create a plugin for that. So, if I just want to modify the navigation bar because this team has this ugly navigation bar there, I would do it in the function.php or even in the style.css because that's pertaining to the theme itself. And if I were to change the theme, it doesn't matter, it's gone already, so it doesn't matter. Yeah, so, anything that's more function-related, go forward to create a custom plugin. Yeah. Anything else? So, congratulations to you. Thanks.