Hello, I'm going to talk about how we made FutureLearn more accessible. Hi, I'm Nicky. I'm going to introduce FutureLearn very quickly and then talk a little bit about accessibility generally and then do a kind of really deep dive into some detail of the specific problem that we were having recently and how we're going to fix it. It takes about 15 minutes. So what is FutureLearn? Oh no, the flicker. This is terrible. How do I make it stop? We don't know why this is, but if you have white edge-to-edge feels like a lamp. Good. OK, well, let's see how we're going. Anyway, some of them are different colours. It'll be fine. FutureLearn is an online social learning platform which means that we do online courses with content partners by universities and cultural institutions like the British Library and the BBC online through our responsive website, as you can see here. So what we mean when we talk about accessibility, you can see this, this is actually our mission statement. I kind of have to roll my eyes a little bit when I say that because I hate those words, but that's what it is. The best learning experience is for everyone anywhere. So what we think about when we talk about accessibility in that context is not just screen readers, if you've heard of those, not just screen magnifiers or people who just use the keyboard or people who just use the mouse. The reality is that everybody is out there, they have different eyes and different brains and different fingers and they use computers in all different ways and all of those people have to be able to do that. Everyone, anywhere. So how do we do it? You might have heard of organisations like the W3C and the WAI and WebAIM. These organisations very kindly think hard about these sort of issues and set up guidelines that we can just follow. It sounds really simple when you say it like that, but anyway, I'm going to go through a couple of them, not all of them because there's lots. Keyboard navigable. Obviously this is, well, I think everybody in this room, the power users probably understand why this might be important, but not just for power users, but for people like my mum who has or gets arthritis and sometimes doesn't have a great range of movement in her arms or a colleague nearly broke his arm at the weekend and now can't move and is having trouble with that, which kind of introduced to me this idea of a temporal disability. It might not just be that there's something, you know, providing tax alternatives. Again, the kind of obvious one that you think of is like, oh, screen readers, we've got to do this because screen readers can't understand images, and that's kind of true, although I think people like Google are having a really good go at that. But again, and specifically thinking about future learn, not everybody learns really well through video or just pictures, so things like transcripts and subtitles on the videos are super important. Using more than just colour, and this is where we kind of start shading into the crossover between accessibility and just kind of interaction principles and good design, I think, I choose to call it that. So yes, obviously people who are colour blind are going to have trouble differentiating if you don't use the right colours, but people with all kinds of low vision will have this similar sort of problem, and also I found out while researching this stuff that there's a horrible thing that happens as you age. The shades of blue that you can see become less, like they all kind of merge, and I was just like, good thing that I like pink. And again, obvious, this is good for everybody. You need to make sure things are clear and simple so that you can find the information quickly when you need it, not just because you have a learning dyslexia or something like that, but you might just have a headache or a cold or be stressed. And similarly, again, the last one, the obvious, so this is more about getting information in a timely fashion if you're in a hurry. So yes, this kind of stuff is good for everybody because sorry to be depressing, but we all get old and we all have accidents. Again, another sort of factoid when I was researching this was something about one in three people over the course of their lives will have a period of what would be termed disability lasting up to months or years, which is kind of frankly terrifying. Not that I want to put the fear of God into you, but yeah. So these are kind of also, I picked these specific ones because I think they're kind of the easy ones that everyone's heard of and hopefully are doing in their sort of daily jobs. I think that you will probably be familiar with these sort of guidelines. And obviously some of them are going to come out of the colour and the language conversations with other people on the teams that we're using to build this stuff. So I think something that's really important to have in your head when you're having those conversations is kind of looking at this list of dusty, dry things that I've got to do to make it accessible and get stuck in this mindset of, well, if I do these things or if I do just these things, my site will be accessible, but it will be really boring or it won't be very interesting visually or engaging or interactive. And I don't think those things are true. You can have both. They're not mutually exclusive goals. So, yeah, this was the specific problem that we were having on the site that we needed to fix. It was a bug. Bearing all of the previous points in mind, we wanted to fix a problem with our like button, which is this tiny thing down in here that I realise now that no one can see because I thought there'd be another screen. Yeah, so if you're zooming on in, when the problem that the bug that was there was when we hit like, we can see that the colour changed. Oh, God. But we know that's not enough, so we can't use just colour, so we also update the like count, so we show visually that something's going on. So we think, oh, great, we've given some feedback. Unfortunately, as it stands, this is not enough. The markup that we were using made sure that it wasn't keyboard accessible and it wasn't screen reader accessible. So this is the same thing again, but as if it wasn't just a visual, but the screen reader was reading it out. So if you haven't used one, a screen reader, it's just an app that sits on top of the browser. It's not the browser itself, and it can read any text that's on the screen, not just websites, but any other things that it happens to be on the computer. So you can see here, it says like one, and when we hit it, crickets. So rubbish, we've got to fix this. So yeah, and the way that we do this, we're a rail shop, so the whole partial just kind of gets spat back out, and that was the cause of one of the first problems that we had with the, it wasn't keyboard accessible, as we will see. So this was, yeah, the problem we were having, the like button, you can see it visually, but you can't hear what's going on. So this is one of our pages on the site. This is what a content step looks like. So over here on this, you have some learning and a video or an article, something that you're going to, information that you're going to take in, and then on the other side, you can talk about it with your fellow learners on the course. This is kind of why we felt that this was a problem that we needed to fix specifically, not just because we want to make these things accessible to everybody, but liking is kind of an important part of the interaction between people. We want to make people feel so good that when, you know, when they've been on Facebook and they get a lot of likes, so this is why. So how do we do it? We use a tiny bit of JavaScript, ARIA roles, which we'll come on to later, and CSS. I presume you've heard of JavaScript and just CSS. But anyway. ARIA stands for Accessible Rich Internet Applications, and it's just some attributes that you add to your markup that other applications can read and understand. So we'll come back to that. So the JavaScript first. Yeah. This is where the JavaScript comes in, obviously. We mean JavaScript focus. You don't need jQuery. I just couldn't fit anything else on the slide. It's super simple. It sounds really kind of like, oh, God, really? Yeah, it is really simple, but that's good. Because we replaced that whole div, remember, now the DOM is like, hey, I don't even know where my focus is supposed to be. In our case, then, as part of that response, we focus back on the like. We actually go right back to the specific like button, I think, because that's where your focus was when we kind of interrupted you. So this will fix the first problem for people using the keyboard. Yeah. So what happens if you don't? I have a video that's white. Brilliant. So yeah, you can see we have focus. Not very well, because it's flickery, but that's how we're indicating our focus. This is keyboard navigation only, so you shouldn't see a mouse pointer anywhere, but let's just see what happens, anything. So we've hit like, we've lost our focus, and I think I'm going to try and tab now to go to the next thing, and I'm miles away from where I wanted to be. I'm not actually using the skip-nav in this, because I wanted to show how painful it can be. Yeah, so eventually we get back to where we were, but it's kind of a pain. I think that comments threads can be like thousands and thousands and thousands of comments long, so it's very painful. So don't lose focus. I know it sounds really simple. One of the things I really liked about this was that it felt a bit weird at first, because there are so many sites that you see those horrible spammy ones where they kind of hijack your cursor or your key press or whatever. I thought, God, I don't want to be one of those people, but I think actually this is the right time to use this kind of tip. So aria rolls accessible rich internet applications, special attributes that you put on your HTML tags. You don't need to install anything on the server or the client to use them. They're just there, they're part of the spec. They should work as far as part of the spec goes, as we'll see. So browser support in terms of, yeah, kind of Android was a bit shaky, but it's much better now. It doesn't really tell the full story, can I use? Because obviously there's lots of different types of accessible technology and devices that are reading the aria attributes and these aren't all on that list. They don't all work in everything, surprisingly. But like CSS rules, the browsers or whatever would just kind of skip over anything they don't understand. So it's quite safe to use anything. If it doesn't work in one particular device, for another one, that's fine. Aria Live is the one that we're particularly interested in today. There are lots of others, but this one is the one that we want to use right now. And this is what it does. This is exactly what we want. We've just changed something on the page and updated something and now we want that update to be read out. Yeah, so the way I think of it is you put the aria live attribute on the tag and then it kind of registers itself with it and listens to it and all of the nested content within it as well. And if anything changes all the way down that tree, it kind of puts its hand up and says, I've changed, you can listen to me now, something. So it's great for giving feedback. It has, yeah, can take three values, polite, off polite and assertive. We use polite because it means don't interrupt. So if the person has started carrying on doing something else like reading the rest of the comments, then it will do that until they've finished and then pop up and say, so it just doesn't interrupt, which is really nice. When I was researching this as well, I found a weird, I think, I'm not sure if this is really true, a screencast from about 2011, which seemed to imply that the assertive value before it was that used to be called rude, so you would be polite or rude, which I kind of feel like, hmm, good thing they changed it. So, yeah, this is the result of all of that flickering. One like. Now, two like. So we've put our Aria live role on there and you can see, ah, cool, okay, we've got some text being read out, but you can see immediately there's a mismatch between the markup, between, yeah, it's not a sentence. So this means we're going to have to use some CSS to hide some content from the screen to show only some content to different screen readers. I'm looking kind of shifty at this point because I know it's not really the best thing to do. This is the kind of hack part of the, we were feeling really good earlier because we used the right tool for the right job and now maybe not so much, this is the kind of work around. Yeah, so this is what we did. Yeah, so this is kind of nearly what we ended up with. You'll notice at this point we had to switch the source order as well to make it match the visual. We've got a new ARIA role of ARIA hidden, so that will say to assistive technology, don't listen to me, I'm not interesting. So that's the thing that is displayed visually and then there is visually hidden utility class just to, of screen. And then we can go mad in our visually hidden content area and kind of tell people a little bit more context about what's actually happening, so that's nice. And then finally, if you tried with a screen reader, this is what it would say, and this kind of makes a bit more sense, I think, as a sentence. So that's kind of it. We used a tiny bit of JavaScript, reset the focus, make sure that people don't get taken out of the flow. A few ARIA roles to make sure the feedback gets announced at the right time and other content is available and then the CSS just to hide things. Question time. Oh, and confession time first. And I have a question for you. I've actually never used Ember, so, yeah. But I wondered if there's anything that you pick out immediately of the framework or that could be in the framework that would help this kind of problem or help us solve it. So that's why you think about that. I can answer your questions maybe if you have any. Hello. I'm imagining that the focus is because you're replacing the whole thing. Yes. You've done that the other round, you've just done the element. Yeah, so I'm imagining if it was just a link, then that would be fine. You'd still have to swap the whole div anyway to get the nice two likes you like to this. So in that sense, to make the like button more accessible to readers, you have to replace the div to manipulate all the content. Yes. That's right. How do you manage testing this? So what can you imagine that's the kind of thing that you can come along, do a... It's the problem once, and then in the future someone else comes and adjusts the mark-up because they've got a new design or something. Is there anything that you can... Do you have... What would you suggest organisations do to continue to make sure that you don't get re-questions? It just happens. I can tell you exactly what we do, which is that we write the mark-up and describe why we're writing it that way and then the next person who comes along will know why we did that, I guess. And we have tests so that stuff fails as well, obviously. It's a Rails app in case... Sorry, I didn't show that. So there's lots of specs all over the place for that kind of thing. And manual testing as well. Not every time with screen readers. But yeah, lots of testing in various forms. Is there anywhere specifying a test on what a screen reader should say? Ooh! Well, it will read the content of the element of the mark-up. So, yes, by having the content there, I guess. You take one element or not the other. But you can just say, load this page and then expect screen reader to say, do you like this at that sort of level? I don't know. I'm not aware of screen reader simulations for things like aspect or Jasmine or anything like that. It would be good. But at the moment we just check that the right content is in the right place. Yeah, these are some really good more links, by the way, and stuff that was super useful when I was making it. The examples of different times that having those kind of principles would be this A to Z, it's A to Z of accessibility, which I kind of stole a lot of the examples for. I made all of those up. Hello, Jamie. Are there any bits of the new one that we had to completely rethink it for the screen reader? This one, yes. It's on our list, yeah. Iterative, yeah. I think next time when we come back to this, we'll be thinking a bit more clearly about it up front. So, you had to... I was just going to say, I think everyone probably likes the accessibility and often they're probably not. But I definitely do not know enough about the different types of accessibility. So, you know you mentioned how everyone at some point in their life will have some disability or something like that for a short period of time. Is there a resource or did you stumble across something which had a load of use cases that might change your mind about how to do things on the accessibility? That's this one. The A to Z, A to Z, yeah.  Yeah, it's literally an alphabet, like 26. Yeah, and it kind of changed my view on it as well. Because I think that's probably the takeaway that I get is that the way that I put it together, I go, and there's a screen reader at some point. Whereas in actual fact, even changing the language is a good... I've never think about it. There's a whole bunch of stuff going on there, you know. Hello. The question is not technology, but it's more about the business case justification. These sort of accessibility features, as you point out, are important. They may not be my first one to race out there and start off to build these things in. But how did you justify the cost that comes with it? Is there any sort of guideline in terms of who needs to do this sooner rather than later? I guess everybody, really. I mean, going back to those kind of... The last few points on the pink slides are things like clear design that's up front for everybody. Clear, simple descriptions and instructions. Where are learning sites? Are things like subtitles for the videos and transcripts and stuff like that? We really just have to have... Just because not because we have to be accessible, but because we're missing half of the people who don't like watching videos. Or who can't watch videos at work because... Well, let me ask you the difference. Are there any actually legal requirements that you have to do in the future? Yeah, I believe so, yeah. You need to make your sites accessible. However, there's a clause that says you have to do it reasonably accessible in terms of not making bank drums in the process of doing it. So you have to actually work towards making things accessible. Most banks and financial institutions or public bodies are required legally to at least hit a minimum of accessibility requirements for which my company works and not pay it over. But there is legal requirements so it's worth thinking about it as well. Because if you do become successful, you need to have a strategy that you can either roll out quite quickly or have at least put some space and stuff in initially. Just one comment with your like button. So I think sometimes we try to solve problems using technology when sometimes it could be when you click a button that says you liked it. And I think sometimes it's also thinking about it in a way that accessibility is considering things beyond a technical solution but a perception thing. So I am quite busy and I have the mind of a goldfish and forget what I've done. It's all beyond Facebook and it's similar to common. Because I'm supposed to be working and they interrupt me on Facebook because it's more important to be on Facebook. And then I'll be like, why is it that I like this? And so it's even like the language clues and the sorts of things that you can do that are even quite simple and not necessarily technical. It's worth talking to people like copyrighters and other sorts of people like that as well because they will think about things that you ask your world technology will never consider. It's like I have a technical solution for this. It's amazing the work and it could be something even simpler. It's an ongoing battle we have with that button. The questions we considered for this problem was just to get rid of the whole thing entirely and then the problem goes away, right? Especially because there's kind of concerns over cannibalising commenting because actually what we really want is conversation. So if you let somebody kind of be very lase, you know, not really interested in it. And yeah. One comment from the JavaScript framework world. Oh yeah. There's a project called React Accessibility. What that does is it lids your components as they arrive in the DOM and it will look out for certainly like obvious mistakes. Obviously it can't spot everything but it does stuff like if you've got a cannibal on a dip it will say to you, hey, do you want a roll button on this or should we just use a button for this and stuff like that and it will try and look out for bits of text which they can see will get angles and become monetisable to the screen reader and there's a port of that for Edinburgh as well. So this is a JavaScript framework so if you give the opportunity to do this kind of thing I'm sure you can do it but you can take the same approach with the scaling of the DOM like any linser, you can assemble a companion of common mistakes and this is what this does and it's issues with warnings into the JavaScript console so you would see them all better and your developers can go and she should ignore them. Could you put that into your build process do you think so it would fail? Is that something that ember contributors would consider moving into the core or would that be a framework? Reacts are not sure ember is enough for the community to be there Anyone else? In terms of the analytic side can you tell what sort of disabilities people have or accessibility issues Sorry, in an automated fashion I don't think so It's not like browser screen readers don't have user strings or anything like that Oh, maybe they do No they don't That's because screen reader manufacturers don't want to announce that their screen readers developers will give a sub-part experience to people if they know you're using screen reader That's one example of why it doesn't announce It takes the mystery shopper approach I think they're justified in this approach We've all been sent to a mobile website That's why that's why it's hard to get statistics We do have a weird thing in our team where each developer spends the day doing QA and tech support and on the days I've done tech support users emailing me the thing doesn't work and eventually we get down to the problem is that they're using a text-only browser I'm really interested and I want to talk to you more about it Probably bad use of QA time Can I ask who's used a screen reader For those who haven't you should really have a go I think they're incredible pieces of software and they use all other kinds of clues to tell you about what's going on and use the stereo field to tell you about where your cursor is on a particular page and all sorts of audio indicated to tell you what's going on and what you're interacting with It's true That's a funny fact I think we all should be concerned We are at least one of us some of us are TIA aid support and it turns out that there's more blind people than we are so so remove support for us or if you have to choose to support blind people because you have accessibility so that's the story That's quite All right, let's hear it Thank you


Oh, good. I still have the model of that boat a little bit beat up and the kids painted it with sparkle stuff, but Good enough. I'm thinking I want to turn this boat into a mini peddler like many people can pedal it This has a floor in here. It's not in this. It has hatches Now I'm thinking You know in my other pedal boat, I just have people sit right inside the pontoons I'm thinking of doing that for this Because every time I think about you know putting pedals out in the middle here It just seems like it's gonna take up all the cargo space So I think I need to put people in the pontoons But I think I don't want to put them right in the pontoons because the person is gonna have to sit way back here To pedal here so that the paddle wheel isn't hitting this thing so maybe the person can sit up on here and And then the pedals can like I could just lower a section here Put pedals there the same thing on the other side and then the same thing up here You know the person can sit up on the top and pedal a little bit lower I think that'll be more comfortable. Anyway, and then it'd be a paddle wheel in the middle here somewhere Or maybe maybe I'll just have two pedal spots at the back and at the front I have chairs with with oars so that Anyone who wants to help that's not pedaling can just use the oars to go faster But then I can just move the chairs out of the way if I need cargo space I guess I guess I should just start with these first and Maybe I can slip some pedals into the this is this has been known as the kid box Because where the kids always used to sit when it was using this boat So maybe I can put some pedals in the kid box area that can also work And then four people can all pedal the paddle wheel here or here maybe two paddle wheels, you know, I could have a Paddle wheel up here And I would I'd have to make like the indents in these pontoons for that the people on the side to pedal But someone could pedal here someone could pedal here Someone could pedal here and someone could pedal there and then there could be a big paddle wheel right in the middle and I could make that all removable So you can take it out and put it back in so I could take it out if I'm not gonna have more than two people and Then put in just a flat floor for cargo, so I'm gonna have to make this a transformable boat, aren't I? maybe I can think of a way to To kind of integrate everything Think about it. One thing I Could do is do like on the zombie chopper Which is you know have the pedals that go to gears that go to a shaft to a propeller And that takes up a lot the less space because you don't need a big paddle wheel up here Hmm My fingers do some thinking Well, either way, I still have some time to think about it right now the boats up like this right and I'm hoping the barnacles that are on the bottom of it will Bake off and I'll just be able to chip them off more easily Then after that's done. I want to Put another layer of resin on the bottom of there and re smooth out the bottoms because they you know They've been pretty beat up And flip it back then Yeah, I'm pretty sure there's gonna be a pedal spot here and there anyway What's the point of this many-person pedal boat well obviously it would be nice to take my whole family, but also I Want to start doing adventure builder meetings again Now I used to do this thing where once a year I think I'll start doing it more often but you know once a year I'd have an adventure builder meeting and People would come to my place in Vermont and just camp out for a week. Well here. It's a little bit harder to do It's why I haven't had any in the last five years. I guess Like transportation is more difficult. I Guess you could just pitch a tent, but then I don't know just the little the logistics of a lot of things are trickier so my friend and I want to set up some Some probably some concrete domes. They're just like dormitory style. So people could come Stay for a week Maybe just get a bunch of people to come and stay for a week and then have some project going on that we can all work on That's fine and interesting. Maybe maybe we would just work on a project that would make the the visitor area Cooler and then every time people come they can come and and Make something that makes it cooler for the next people and the next people come and make it cooler for the next people Anyway, so the many-person pedal boat would be for picking people up in town Which I think it'd be super fun Way more fun than getting a motorboat. It'll take longer obviously, but So much more peaceful, right? Am I being coherent? I can't tell I water in my ear. I can't hear anything


The Minister of Science, Technology and Innovation, Uche-Narje, says President Balatinbu has given the directive in line with the presidential executive order number five to fast-track and create technology and innovation centers across the six geopolitical zones of the country. The minister said this during a facility visit to the Royal Materials Research and Development Council Technology and Innovation Center complex in Abuja. Six geopolitical zones, in case of nationwide, will ensure more people access and benefit from these ground-breaking technologies. These centers aim to enhance the public acquisition of the vital role of science, technology and innovation in Nigeria's economy in the Uche-Narje. Transitioning from the resource base to the knowledge in the Uche-Narje to the Uche-Narje, we made the secretive approach, current research and development activities in Nigeria. Today, the establishment is a collaborative platform for scientists nationwide in the African region and in Malaysia. Post-train shared experiences, insights and best practices. Four, provide a platform for showcasing and analyzing research outcomes. They've been the way for potential potential. you


Welcome back to another video if you're new here my name is Cara do not forget to like comment subscribe to your girl so I just got home from the gym I'm exhausted like I'm so tired and I'm hungry every time I get from working out I'm always hungry but I'm about to make me some cereal I don't know about y'all but I love me a good ol' Bola cereal okay okay girl and that's what I'm about to make I'm here I'm not doing nothing fancy for breakfast today because first of all I don't even have that I don't have no avocado so and I feel like leaving the house so whatever. This is Fabriela what did she already say she was like um like y'all can stop waking up and make an avocado toast and iced coffee like and I feel like whoa she came for me I'm about to make me some cereal and this is cereal I've been eating y'all this is the Magic Spoon brain-free cereal girl is sugar-free and you already know we all be here working on our diet our intake our sugar intake because you already know I'm a sweet girl I love sweets and sugar and stuff I had to cut I had to cut back to lose this weight girl and I'm getting skinty okay anything to keep this figure so anyway so yeah I've been eating this Magic Spoon cereal y'all this cereal is so bomb even though it's sugar-free world and this is the fruity flavor I have four flavors the fruity the cocoa the peanut butter girl the peanut butter is almost going cuz I just been snacking and sitting on my couch watching movies and it tastes just like a Reese's Cup girl just like a Reese's Cup and I like that this only has four net carbs 13 grams of protein and it's sugar-free so zero grams of sugar zero I make my cereal with almond milk I don't know if y'all noticed that I really don't drink regular milk at all like I recommend Magic Spoon y'all and it also is keto-friendly no GMO soy-free grain-free and gluten-free this is crazy how this is sugar-free and it tastes just like the regular fruity cereal I know some people put ice in a cereal but I wasn't I was never that girl I was never that girl so yeah y'all you'll be able to get a chance to try Magic Spoon yourself all you need to do is click the link down below and use my code for $5 off because they are sponsoring this video so thank you so much Magic Spoon and I'm so happy that they put me on cuz I'm gonna keep ordering this cereal because bro cereal comes in handy it's easy to make in the morning and also it's sugar-free so and like I said the fruity one and the peanut butter one you'll be able to get your own Magic Spoon like I said check the description box below use my code that's on the screen and I'm about to finish this y'all and get dressed I just did my own ponytail y'all and I'm about to get my day started because I have things to do so yeah I'm about to finish this get dressed and we've been ahead out cuz I got stuff to do so I'll check in with y'all once I get dressed and stuff hey y'all welcome back to another video if you're new here my name is Cara do not forget to like and subscribe so my TV is about to get delivered I got an 85 inch because my wall is kind of big and I wanted to fill it up so so yeah that's what we're doing today and it's gonna be mounted and my coffee table comes today so y'all be able to see how cute that is I can't would see that in person my mom wants to go meet the people so and it's kind of nice out today me and Aliyah supposed to have like a pool day so I don't know but yeah but I also have to go look for lamps while my mom's here so but anyway let's make me some tea I'm up to my TV and then my coffee table did come but I was just in the sun so I'm about to take a shower and homeboy is gonna do his work his Instagram will be on the screen if you want your TV mounted in Atlanta he's like the best hands down to me so no course one or nothing but anyways I'll talk to y'all once I get out the shower but he's gonna do his thing for my expertise okay exactly don't be trying to do me and but it's too late and I might come on put your nasty thing I just washed my knee we lift it up you push it more up like we have to okay we have to have a game playing before we just start I'm gonna touch it yeah hey y'all so it's the next day and my TV is hung so cute but obviously I don't know the white ships throwing me off they need to come off and I got a soundbar and so today some man is gonna come in a line my couch if you can tell kind of the couch on the long part the cop the pillow on the chase is up the pillow on the chase is elevated more than the other pillows it's not aligned so yeah my my OCD was like oh my god that can't happen so she has somebody come to fix that but I'm about to get ready to go get in the shower cuz I have a flight to catch and that's gonna be in a whole different vlog but I wanted to show y'all these new hair products that I got because girl why did my those ponytails just did a lot of damage to my hair I'm gonna just keep it at that so I end up getting some of the hair kitchen hair products I got the hair growth oil and then the intensive hair oil herbal hair oil yeah so this one is rosemary and peppermint and then this one is just a whole bunch of herbs so anyways I'm gonna hop in the shower cuz I got a flight to catch and that's gonna be in a whole different blog so catch y'all later hey y'all so I just whoa not yesterday but the day before I just got back from Miami which was in another vlog so now I'm back home now I have to do some stuff for my house so my mother is still here so this morning we just got the creases out the rug for the hundredth time I'm so tired of this rug y'all just don't understand but yeah I'm gonna put my desk back on there and finally I'm gonna put my makeup in there and clean it off and stuff but my coffee table just came I'm excited for y'all to see it I'm excited to see it myself so my mind is getting ready to unbox it real quick so we're gonna go through that and it's Saturday Saturday 4th of July so yeah this is my coffee table it's cute I like it so we're gonna wipe it off real quick I didn't know if I wanted to go for the square shape or a circular shape but I didn't really want circle because my dining room table is circles so this kind of is like different but the top is clean so I'm putting on it okay y'all so quick intermission cuz we finna go but we're about to go to run some errands real quick and gets a slider for under the coffee table but I wanted to show y'all my rings that I got this these are from slung on Amazon I got a whole bunch of new rings y'all and these rings y'all been like dying to know where they're from I got them up Amazon and I just got a whole bunch of new colors so the first colors that I started off with were these big old jumbo ones this line green white and then this clear one y'all have been loving these these are so cute and they're aesthetically pleasing especially on your fingers and got your nails done super cute so then I got a bunch of new colors I got like this blue one I'm about to put on right now cuz I got these blue pants on from boo boo and I like the little ones better cuz obviously you can just it blends in better on a regular daytime look but I really love this baby pink one I want to try it on this one is so cute oh yeah period oh my god it's so cute so yeah I have a bunch of new colors purple red yellow and then black another lime green one white so yeah y'all make sure y'all check the link down below and then go shop my Amazon store cuz I'll link them there and I need to put them up in here real quick like real cute because obviously I like them to show cute yeah I'm waiting for my mom but yeah we just gotta run some errands I gotta pick up some things y'all my g-v-g boots are finally done stretching I might wear them today if I go outside I need to go outside I don't know why I'm so irritated today I think I'm hungry I made I love my rings they so cute I really thought I wasn't even gonna be into these rings like that cuz I seen them all the time on Instagram that was just like they are right like the chunky regular marble looking ones and now I've seen these ones with the balls on them I was like these are too cute and then you can mix and match with your fit girl these rings are a look okay I'm also take a cute picture it is oh really I'm just so excited now for now now I'm really excited to get my nails done all the time thank you nail pictures with my wings so cute so cute anyways so yeah those are all my new rings so make sure you go shop my store anyways I'm just gonna wait for my mom cuz we're gonna go in our errands like I said and I gotta come back and I got a lash appointment to get ready for so so yeah I'm gonna check in with y'all once we start you know going into stores and stuff so so so we just got to target what thing this is cute so I'm trying to find some you don't like this you don't like this now what if we like it and it's long just like the pillow can't risk it that's what she was looking at mm-hmm I guess but it's not see not like magic magic yeah it was soft feel it it won't it's not gonna lose its fun you know what I'm saying mm-hmm I like that table thing yeah okay don't forget the gliders here so next you just saying that because I like it no I really don't like it okay put that brown thing and lots of put it on the other side don't go on the other side what against texture you like that one huh ma'am you don't never want to like what I like you don't never want to like what I like so we just ain't liking each other okay stability I like the texture and the mix material what I like them all so great go work out that one last cube with the hands on my knees hands on my knees hands on my knees you okay kid how are you doing that you act like you struggle hands on my knees hands on my knees hands on my knees hell yeah hell yeah it brings texture it's it brings out the lightness and the thing so beautiful um scootch it up some more scootch it in front and a little scooch it's all about placing it right there all back a little bit back back back and forth I feel like it's amazing if it's supposed to be a maze it ain't not a maze it's like a square go around and go around again like what are you talking about a maze hands on my knees which one y'all flip it over like the brown it's more it's more um crisp clean edges got the texture it gets the light yes yes girl come through with it come through with it come through with it let me look up close and personal but I didn't buy two of those we could have just been so I guess this moment I really like this that one isn't giving me I don't know I like this circle I want to keep it tight and closed so make sure you don't be special for y'all I just feel it's like a different contract but I'm gonna I'm gonna keep this one for now and get the other one and see so I'm gonna look this up now go take a shower to see what target I can go to um let me go see because they only have one at birth they only have one of those so I thought I was having a lack why is my battery dying so quick right now but anyways y'all so these would be the options I'm feeling a little bit better now I don't know what's going on with me but anyways so um these would be the options I really like this so far but I really think a gray cube will look even better right here so my is looking on the internet right now ordering some but that's one back that's going back that's going back and that's going back so we're about to take these back right now and got another one of these so I can see how it looks because I honestly think it looks cute I don't know I just I'm just saying it looks cute like texture so about to do that and then tonight obviously it's fourth of july weekend so I'm gonna go outside I haven't been outside so I'm gonna go outside so I'm here cute and yeah and we and Aliyah are gonna go to dinner and then we're gonna go outside so we'll see what the night brings hopefully no it will be a good night it's gonna be a good night morning y'all today is a fourth of july I hope y'all have a good one I still got makeup on y'all because I fell asleep with my makeup on it was a lit ass night y'all know when it's too late like just can't make it to the bathroom but um I just ordered me and my mom some Atlanta breakfast club I haven't had in a minute but y'all if you're okay girl if you're in Atlanta y'all have to go to Atlanta breakfast club is so good um but anyways so yeah last night was a good time a couple drinks some hookah y'all already know the vibes but today I think me and my mom are just gonna make some rots um and real chill and I'm gonna get my lashes done later but yeah I don't know what else is going on y'all I have come to the conclusion that I really don't like long ass hair no more unless it's like straight because I only like like if I'm gonna have it curled I only wanted to my boo like extra long hair just it's just like it's giving I don't know I don't like it but anyway it's just hard to control but anyway I'm about to pick up this food I'm gonna listen to my music and I'm gonna tune back with y'all later in my memory design anyway so good morning y'all is the next day from the fourth of july I didn't do absolutely nothing me and my mom didn't even make brats like what the and then yesterday y'all I went to breakfast with alia I know I said I was going to Atlanta breakfast club so I ended up getting my mom that and then um I just went to go have breakfast with her um because I just wanted to be outside and eat you know so but we went to cafe intermezzo a lot of people were asking me where we went um first of all they took a long day to get our food I heard they have like really good desserts breakfast whatever um it wasn't that great to me because the first toast tasted burnt and it just didn't have no flavor like where's the vanilla like where's the powdered sugar like this is why I chose to eat this way to taste those flavors so today's Monday I just have to do some work done and then um I'm gonna be having a pool day it's 9 58 I can really probably get that vlog edited before 12 30 so I'm about to make me some coffee real quick and get to work um so yeah so I can lay outside get some color and probably hop in a pool so yeah I'm so basic one of them so making coffee at home but did this come out like that oh my god it smells like a coffee shop it smells so good but I hope y'all had a good 4th of July and y'all I posted a twerking video on my Instagram and y'all were laughing at me y'all were like literally thinking I'm a fucking joke but it's but anyway that's it right there I'm in a better mood today I don't know why yesterday I was just not in the mood to anyways I'm about to edit get my work done so I can enjoy this hot day because the rest of the week is supposed to be raining so I'll be talking with y'all once um I have company over at my pool I need to go get like them some water or some snacks or something to lay out by the pool because I mean that's a good host right anyway I was checking with y'all later hey girl it's the next day and I was a terrible vlogger yesterday I was really just enjoying the sun but today I just got done editing a video um literally I don't know why I've been bad at vlogging I've been so upset with myself but today I tell myself like girl get back on your itch like what are you doing like what is happening but anyways um I just got my lashes done this morning and I got my period today and y'all if y'all do not have nixie y'all need to get a nixie because that's what I use they sponsored me before but I literally that's all I use I don't wear pads I don't wear tampons none of that and I know you can get some at Nordstrom um they sell in there but anyway so my mom just left I'm waiting for her to come back because I need to go find a lamp for the back of my couch and y'all I've been enjoying my couch girl I've been you know lounging and watching movies and stuff like big ass tv okay like it's a vibe and I love movies y'all I just was why I watched two movies last night I watched this Disney movie called Luca I like Disney movies and another Disney movie but it's like human version um it was Cruella y'all gotta watch that like that's probably my favorite movie this year so far so but yeah I knew I was coming on my period I knew it but I'm just waiting for her to come back so we can go to restoration or other places to find a lamp um and just you know get things together around here and I need to order a a tv stand because that thing sitting right there is so ugly that speaker or the soundbar but anyways and yesterday my mom made brats we had potato salad beans so good anyway I should have showed y'all but like I say I was really bad vlogging I don't know what's wrong with me but my mom also ordered me this little cushion thing and I've seen this before at Target but she ordered online to go with that little chair because sometimes I like to get in my thinking chair and start editing so she was like oh you can have that to like put your feet up and edit so that's that was nice to her to think about that so yeah so I'm gonna be organizing my whole makeup drawers too um before she leaves she just we just had to redo this work like I said for like the hundredth time um but yeah I'm just waiting for her to get back so I'm gonna probably check in with y'all once she comes but I love my lashes they're so cute so we're on our way to restoration we're looking for lamps yeah we it's just we're looking for lamps but the first place we're going is rh um y'all did my own ponytail today it's cute for the first one negative Nancy in the front talking about oh if I did it I would have did it better you know it's always one of them people's but I scratched myself today my face but my skin looks good okay but yeah I hopefully we find a lamp um the lamp is going behind my couch so yeah so I just want to get everything in there first and then start putting like pillows and like a throw um I feel like you just gotta know what you want to place up in there to make everything make sense you know what I'm saying yes I do y'all restoration got so many steps but they be tripping about cameras but um so this is how I was gonna look in my bedroom my dresser a mirror and a lamp like that just like that so cute and these are really nice I really just like that lamp over there this one no not that I'm talking about the lamp behind this couch the gold you don't like this oh those are cute you like these there's no latch y'all they playing music they playing music so it's gonna be hard for me to blog yeah they know we're gonna get copyrighted but these are cute I'm gonna see I'll let you y'all know if you find anything else that's right there but that's gonna mean it's over y'all so we came to the cheesesteak factory um because we are starving all day but anyways she wanted to get in the back with me I don't know why my driver thinks they have the audacity he's your driver to come in the back with me like this is not your area I'm so tired but we're waiting 15 minutes you you shoulda took your time and plus you didn't have a mirror and you went to sit down I did have a mirror so yeah y'all anyways like I was seeing I'm in a corner now I'm about to go to my nail appointment and um I was just eating my sandwich and seeing what nails I wanted to do and I think I know what I want to do I've been wanting to do this style for a minute hold on my Starbucks y'all know I gotta get Starbucks for you guys hi can I get a iced chai latte with almond milk um you can do venti okay and that's it six 15 thank you thank you I've been really in a shy mood but um yeah girl and also I'm really getting tired of people trying to get my attention doing clown shit I remember when I posted a video I hate when people try and get my attention and start doing clown shit like and I really learned to ignore it like I really just I want to make a whole video about it like how to control your emotions and how to let like like not let anybody get a reaction out of you you know what I'm saying hold on they're gonna look all in my fucking car watch that's like six 15 okay um I have apple pay thank you you need a straw sis um yeah I do sis thank you um yeah so like how to ignore people and not get let them get a reaction out of you so wow because that's what's really been happening today and motherfuckers just really want to get my reaction and being an influencer does help like because obviously a lot of people talk shit and you gotta ignore it and you just you know but when is somebody that is supposed to mean something to you like trying to get your attention and just doing it on purpose is just a different feeling you know so but yeah um I'm gonna get my nails done then I probably I really want to spend some time with myself um I don't know why I just need some alone time I might take myself out to lunch so while he's doing my nails I'll probably be looking at actually no no I'm not I'm lying maybe later who is this who is this but yeah I really want to go on a solo date today and so I'll probably do that later but I'm gonna do my goal inside I don't even know what the fuck I'm saying at this point I need to go to the gas station what I was talking about um last thing in this vlog but y'all I love my nails so much look at them I'm obsessed like when I was looking at them today like my heart skipped a beat because I am in love with them details the details it just makes me so happy but this little bone right here um so about these cubes over here y'all um that y'all have seen in the beginning so basically what we're gonna do um that's gonna return so we're just gonna get another cube like this and just get our own fabric and cover it so that's the plane with that so and then my clock is hitting me that is basically it for this vlog I hope y'all enjoyed um I'm gonna start a weekend vlog hopefully I get into some fun and do some things that I'm not supposed to do because I'm actually very bored yeah I was just telling my mom it's like I'm bored like I need something spontaneous to happen to anyone asap because I'm bored and stuck so so yeah anyways like I'm actually not ending the vlog because I have a lot of other stuff I want to show you up before I end this video off so today's Friday I'm about to get late tonight so um but anyways daytime errands it's 11 o'clock I was supposed to go to a workout but my mom leaves on Monday and we have stuff to get done so I need to do stuff with her so anyways we're about to leave and I don't know what the I don't I woke up so irritated today y'all but we're going to Best Buy I need to get a printer and a whole bunch of stuff girl so and I want to take a nail fee today with my nails because I just am ready to post because they look so cute I wish I was going on vacation like this is giving me vacation nails for sure so and I also want to go to the altar rations because I got a few pants I want to get altered just in case I go places this weekend I just want those pants to be ready to go you know and she's real nice really I go too so I feel like I'm not talking normal I feel like my mood is making me talk not regular but I'm also getting a new adapter if y'all have like a um why is they playing some techno music up in here but if y'all um oh my god this is $30 I heard you can like put one of these in like a n***a car and like track your stuff but I don't know but anyway I'm about to get one of these USB adapter so we're looking for a printer oh I thought you had one picked out oh should I get one of these for a mouse I don't know oh just I want to see how much it is first if it's a lot I'm not getting it this is raining and I'm on my period and I'm very moody so we're at center hall like I actually never tried this before but I me it's the type of weather so but I'm not getting a cookie it's nasty I didn't taste it my mom said it's nasty wait which one did you get last time if I waste my dessert on this nasty thing I'm gonna be very upset on your what did you get your just water yeah you did it's not bad I don't like I'll get some cinnamon bar cinnamon cream cheese and some peach on them normally no oreo for me it's just a flavor that's like we're gonna ship it all together that's probably why that's their name so they can give it different kinds of cinnamon so yeah if y'all like cinnamon buns that you can come to center hall like it's not bad it's just super sweet you would definitely need to debut this with some ice cream the cream got like that aftertaste yeah that cream cheese is not right that whole damn cinnamon it's not bad but it's just it got like a it's not bad it got like a taste to it not I don't know I don't know what tastes like cream cheese gotta be the bomb and your cream cheese is not the bomb man I don't know who told them to open the store but y'all it's the center store man it's just not the vibes today and I'm moody so y'all have y'all ever been to the vortex restaurant it's just giving me like dungeon food we see it all the time and we be like we're gonna go to the vortex see if it but it scares me honestly like hot topic but um yeah so um we're going to home goods first but I mean we're going to eat first and then home goods because my vanity so um I want to put stuff in my vanity because you can see it so there's a glass top over it I just want to get like cute little stuff to put in there target has one but there should be one next to a home good she wasn't paying attention I know she was she's probably on the phone like you I'm actually I don't know I don't mean you'll be putting in these rush hours and all these back-to-back overcrowded Atlanta you need to be alert and these little ass streets yeah this is a little stream like I don't know where she is now these streets are narrow like who measured they too much it sure is y'all spot we just got to home good what's the air why is this couch kind of cute I really need to get a little rug y'all because I'm really getting tired of the rug in my eating room watch my mind go come up in here like why are you looking at those rugs it's girl because I can't told y'all watch hi huh because why is this rug kind of cute this oh my god this rug is cute it can't go in my video room because I'm tired of the one yes it will it won't move I bet you let me show y'all I think I want it y'all so we're at you a little place I like this is dinner I gotta feed her for her sleep because mama's out tonight okay oh thank you so much oh I can't wait to try okay try this y'all I've been wanting to try like a good spritz and I don't know what made me want to get one eggysen but I wanted to find a place like a little photo that today it's the next day I don't even know where we left off but I just literally came home and watched movies or whatever I was supposed to go outside playing chains but I'm a little outside today it's gonna be cracking outside today girl because but I wanted to show y'all a couple things I have worked out I want to show y'all some items that I got recently that I haven't shown y'all because I'm cleaning my closet it's clean now but these are what I have to put away so I want to push out on these nipple covers y'all so I got these nipple covers from Nordstrom they are probably the best nipple covers I have ever tried I love wearing nipple covers just because I don't like wearing bras and if y'all are new you would know that I don't like wearing bras and I really want to get my boobs done so um so if I don't feel like wearing a bra and I just feel like I just need to put some nipple covers on girl I put these on you can't even tell like I'll probably put these on tonight when I get ready and I'll show y'all even though I'm filming like I get ready with me I'm gonna show like how those look under the shirt or whatever and I'm going to um link the brand I don't have it I thought I had the box because normally I put my nipple covers back in the box because they're reusable um but I can't find it I got some new girl I'm so excited about this piece because I see it everywhere it's on tiktok I see all the girls have these oh I got some other what else did I get yes I got two things okay so I got the slip dress two of them I got the fits everybody slip dress and then I got the soft lounge rib slip dress and army and sand both smalls because y'all know I'm the smallest though and skims is really stretchy so I like to size down but girl I feel like this one is the fits everybody because it's kind of see through mesh but yeah I got the short one and I cannot wait to try this on y'all I kind of want to try it on for y'all but I just ate I just ate some spaghetti and ranch girl so I'm kind of bloated so I really don't want to put that one because I'm about to put my and then oh I didn't know this is ribbed but I was not reading the details but okay so this one is probably in that material that y'all have seen everywhere on tiktok on the internet the gross is giving body with this one this material so this one is the fits everybody um and this one is the soft lounge rib it's a thicker material and it's rigged so yeah I have like the lines in it and I got this army green color and it's long and it has a split in it where's the split I just seen it or am I tripping I swear I thought it had a split um guess not but yeah it's long can't wait to try this one that's all I got from skins and then I got some thing from Tom Ford something I've been wanting for a while now because they're always out of stock bro because these other fashion girls pretty much have these pants but and I feel like they're affordable they're $200 like so even though that is pricey but like for Tom Ford and like a photo piece girl because these photo pieces be like a thousand dollars but 200 I can do but these are the shorts and this army green color y'all like I cannot wait to wear these I've been wanting to wear my like dalmatian looking um Tom Ford shoes that Jeremiah got me for my birthday so I really want to serve like a Tom Ford look I really want to save it for like Miami or something somewhere if I go somewhere on vacation but I need to go to um get these altered because they're kind of big on me and I want them to be like fitted like show booty they show booty but I want them to be tighter um so at Tom Ford they actually have somebody that actually knows how to like alter these for the girls because like I said it's a really like a faction statement piece because these are like men shorts but the girls wear them so um so yeah they know how to alter them so yeah I just thought this was really cute I really want a black pair and then like the pink pair but I really want the black one next but it's always out so I got these so cute and then I stopped at like H&M and Nike um I've been wearing my Nike stuff so to the gym so I just got like simple sports bras and stuff um and then I went to Zara and I got this cute shirt I might wear this tonight and it has like a knot in the middle I thought that was a cute little detail and I want to push my boobs up to make them look cute and like you know they there and I want to like you know blossom my chest with a little Tom Ford shimmer oil you know you know give the girls what they want so I thought this would serve like a cute little look with like an army like ring look or something I don't know I just thought this was like a cute simple so yeah I didn't want to try this on because I don't think you could try step on it and then I had end up getting this little body suit thing just to throw on I thought it was cute because a girl had it she was literally walking with one in her hand um y'all know along mine's be longest hair at Zara so I was waiting like and I seen this girl walk past with it I was like oh my god where'd you get that she was like girl over there you want me to go get you one I said yeah and then I just didn't need hold on I gotta delete some memory oh my god my hair looks atrocious but I need to do a hair mess but anyways so she had this it's a small I really don't know if I could fit a year or not I'd be lazy when trying on clothes but I'm probably gonna try this on later but I thought it was cute like a cute little throw on fit for like the daytime if I want to go to lunch with somebody hopefully it fits because the shorts are stretchy but y'all know Zara this is different the bottoms would be different for us okay so I didn't even know words so that's what I got from there and then I hadn't been to H&M in a while so I wanted to stop there and see what they had and I stocked up on these types of shorts I'm gonna show y'all because I like to wear shorts like this like little cute loungewear shorts so they had like a whole bunch of colors I got this gray one a cream one and then a black hair right here I already wore the cream ones though but they're just so cute and convenient and I love how they look on me and I got these in a small and then I got some socks because I be needing some socks oh and then okay so I got a pair of Nike stuff in here so and then I got like I said I was stopped at the Nike store and I got like a bunch of like sports bras and stuff so I got this pink one a blue one and then a white one um I really like Nike sports bras but I want to get into like different sportswear um I know y'all been trying to like ask me to do like a haul so I think I want to like order like a bunch of activewear and try it on for y'all because I don't like activewear that's like like when I'm working out and like in motion I hate when I have to keep moving my leggings um like keep pulling them up so I don't like that so I think I want to try like a bunch of activewear and like put y'all on like what's the good what's the bad what's like you know so yeah I want to try like gym shark glue lemon um and whatever else so and let me know what other activewear you guys like so I can try it out really like Nike leggings y'all not gonna hold you like the dry fit girl I got two pairs in the black and then I've seen this cute color so I had to pick it up it's like a greenish olive color so that was real cute so yeah that's all I got so I'm about to put this stuff on hopefully that stuff is gonna hold you I'm probably gonna take a nap for the rest of today my arm my head hurts so bad I don't know what's wrong I've really been having like the shittiest week I'm not gonna like y'all I started my period and I hate when I start my period because I really like I just started thinking bad y'all like I really don't be in the best mood especially like I don't know what's wrong with me um I just get a whole bunch of thoughts in my head and then like I don't know like for this month of July I didn't write anything down I didn't write anything down as far as like content so I really want to take the time out literally right now to um plan out my content um because my mind has been here we've been trying to decorate it's just been too much like girl like I haven't even sat down and planned out my content for July so I have a whole bunch of stuff due and I'm just trying to think of videos on the top of my head and I'm not writing it down and I'm just getting like my head is hurting I just don't want to do shit like uh so yeah but I'm gonna show y'all the house update basically she is really trying to make this cube work okay um she said she liked it this now I'm trying not to call her she but my my my mind that liked this cube pattern at night but now she doesn't like it so what we're gonna do is just I think I said this before just find a fabric that we like and just cover it up so that's that coffee table and then also in this room I'm about to um put my top back on my vanity um and put my makeup in there but I'm not gonna do it today because I'm like I said I'm doing to get ready with me and I gotta do my makeup later and my mirror that I use to sit down is broken so I have to use my bathroom mirror anyway so I'll probably do that in another vlog but I think my little thinking chair area is real cute this little circle thing from target she just took the legs off because they were brown and I think it looks really cute I can just lounge here do whatever I need to do um and then right here I really want to get like a neon sign with my name and I want to get a lamp over here because I sometimes like when rooms are dim I don't know I don't like turning on big lights sometimes so I really want to get a little lamp for in here um just for when I'm chilling and stuff like that so yeah and if y'all see any cubes that y'all think will go cute with my living room like a cute neutral brown let me know because um I want to see and then yeah just send it to me on Instagram and also um wow my hair looks so bad um and also my nightstand is getting my other nightstand is getting delivered I can't wait for that to come um and I'm probably gonna sell my other mirror in my bedroom um that was in my old beauty room it's like literally like the one that I have now just in a smaller slimmer size um it's not as wide as the one in there so yeah so I'm gonna take a nap I'm gonna take my ass and my ass down and take a notepad and just jot down the stuff that I want to create this month um and I need to drink this green juice too and then we're gonna go out tonight so I just don't want to be in a bad mood tonight so I really just want to lay down for a second until I gotta get ready so I'll probably check in with y'all later once I do that so yeah I'm excited um so this is the end of the vlog and I'll see you on the next one um y'all this week I'm sorry I know I was really a bad vlogger when it's my period time girl I get so moody and I don't know I just wasn't thinking straight but I'm gonna make up for it I'm gonna get it I'm back on my ish like so forgive me I'm so sorry I'm disappointed in myself to be honest but you know minor setback major come back you know so we live and I love y'all so much and look forward to all the content coming this week and I'm so excited to you know push out different content this week so I can't wait we lay I love y'all so much and I'll see y'all next video


Ffliw gofo'r droll. So, byddwch yn ychydig. Yn ymgylchedd eraill o'r ystodau o'r adnod i'ch wahanol i niadr wrth i'w mwyaf gyda'r Llywodraeth Cymru.  Ieithi gŵl o'r sgol i'r newestep yn ystod, mae'n oed yn gallu gweithio y gŵr ymgyrchol ei wneud. Ieithi gŵl o'r newestep yn rhan o'r sy wedi'i gŵl o bobl? Ieithi gŵl o'r sydd yn gwneud o'u gwneud o'r maithau yn gweithio ymgyrchol? Ieithi gŵl o'r newestep yn ystod i'r newestep, felly mae'n gŵl o'r fwylo sy'n gwneud o'r fwylo. Mae'r hyfforddiadau, os gallwch ein gweithio ar gycheg o'r hunain gofynag gan glasgrunau. Mae'r hyfforddiadau ar gweithiwch ar ei ddedig am bobl a'u mewn cramgellau ddechrau. Mae'r mynd i ddylch interu wahanol, ond y ffordd i'r greu ymlaen. Mae'n ei wneud yn oed o'rndeych chi'n arwm nourrach a'r hyfforddiadau. y cwyl ceisio'i cyfnodol, mae phobl i'w £4 i gael ei bob gweithio'r cyfnodol, mae yma'r ymwêl i'w dyn nhw i gael y cyfnodol. A symud y ffóorau cyfnodol mae ffóorau yn gweithio'r cyfnodol sy'n cyfnodol iawn y wneud. A gwinelliaid â'r mynd i. mae'n mynd i'r ddafnwys. Mae wnaeth beth sydd wedi gyda llof i ymdweud. maen nhw fydd ffast. I have to be able to maintain all this clearly in ouratory ways. So, how do we make the theme easy for people to use? Well, we make it a standard well-defined package, something that can easily copy from place to place. You don't have any problems installing that. We provide an easy way to select a theme so that people can just play around trying on the different themes available. We make the theme update instant so that you're running applications rydych chi'n cael ei dylai耗. Rydych chi'n cael ei rhaglenio ein ffordd cofarlorei, nid yw'r ddweud ddim yn ei dycofalo, e'w ddweud i'w dei ddweud o hynny, i ffwg i ddweud o ddweud, creu bod yna'r ddweud yna i ddweud o ddweud, ydw i ddim yn gwnewch yn eu ddweud o ddweud. Dwi gydweithio'r ddweud o ddweud o'r ddweud, rydych wedi gweithio ar erioedd yn i fynd drwy'n i'w ddweud o gyrdd cheilio'r ac oedd yn gwneudienen o amser, oni wedi cael ei gweld y cym sectorthau i gefnogi yw'r cyfodol yn gweithio'r cyflog. Mae'n wneud o'n gweithio'r cyflog yn y formi a'r cyflog yn gyfle i ym Hellydd Cymru. Alrhaeg yn gweithio'r cyflog yn gweithio ar gyfer y llunedd cyflog yn cerddwynt ac yn cynhyrchu'r cyflog not to write any additional code. Sometimes you do have to write additional code though when we do that we need to support versioning because you want to make sure that the direct version of your executable is loaded into the system. One of the ways we're looking at doing things is by tidling images onto individual controls so that you're building a theme out of individual pictures. Felly, we need to have a nice simple mechanism to define those tiles. I chose to use a single image and divide it up. So you design your button and design which parts of it are going to go where. For the developer, we have to keep the number of methods to a minimum to keep it simple. That's a lot harder than it sounds. We need to put as much code into the GUI library to make it as standard built in as possible so that the developer doesn't have to re-write stuff if possible. We organise things in a clean and simple way with related stuff written together. And we'll try and document it. So, how did we actually decide to do it? It's going to be a slow incremental process of getting theming working perfectly instead. We're just partway there for the moment, really. So, we need to build a theme engine and the tool to design themes in parallel so that as you develop one feature in the theme engine, you've got the tool to try it all around. We need to use as much of the existing theme for functionality as possible and that's actually quite a lot of them instead. We need to design it from the very beginning. Instant switching is good things, dynamic update. And we just use the ideas from Chameleon. That's a theme engine produced by the Etoile project. Basically, their concept was tiling for everything. Define rectangles, define the images that fill those rectangles with various controls in the GUI. Draw themselves using those rectangles to tile their left top corner, bottom right corner, filling things in between. And we have to provide theme methods that a coder can actually override so that they can say, right, I don't like the way this is drawn by fault. I'm going to do it completely differently. Okay, the existing theming stuff. The new step has pretty much always provided system images. That's things like the arrows in menu items, icons for file buttons for when you're at a load from a file system, that kind of thing. So we can reuse that mechanism in the new theme API. What we do is we replace the named system images that are built into the system with versions from a particular theme. And when the theme is deactivated, we just revert to the originals. System colors. Much the same system images. The OpenStack API provided a color list, a list of named colors that the system uses. So it has something saying highlighted control control, that's being highlighted. When a control draws itself, it looks up one of those colors right now. All we do is replace that color list when a theme is activated so that new colors will be used throughout and restore the list when a theme is deactivated. We always deactivate the Open before activating a new one and that kind of avoids confusion. System fonts. Again, the NewStep API provides a whole list of standard fonts by name and standard font sizes by name and uses those to decide how text is going to be displayed in the various different controls. The user default system specifies which name maps onto which actual font and which real size. We could have a theme changing all that sort of stuff. Haven't done it yet. NSInterface style. That's a mechanism that was introduced by OpenStep many years ago to control the style of the interface. They used it for changing the style of applications between Next Step and Next Step running on Microsoft Windows. It's a simple mechanism where you tag several different style names for different behaviors. When you set a particular interface style for a control then that control will draw itself differently and you've got hard code of drawing mechanisms in there to do the different look and feel. Because it only lets you switch between well-defined styles that are already built into the low-level library it's too limited for general thinking that we can use it to switch between standard behaviors such as menus. The Next Step menu is a vertical menu on the top left corner of the screen. MacOS menu appears all the way across the middle of the screen and Windows menu appears within a window. The user default system in OpenStep is a really major component that allows you to define a database of lots of different information and that includes fonts, colours, all that sort of stuff. But we can extend it to add more behaviors. A default to control whether we have the applications draw the window decorations in the top bar of the window or the window that can play or whether we let the window manage it. We can actually use that to control all sorts of detailed individual behaviors if we decide we want them. So what's new in the new thinking system? Well, we can set any colour to be used by a control individually rather than using the system colours list. So we've got more fine-grained control there. We can set the interface defined style for the individual controls and parts of controls. Now that's always been possible via the default system but using the default system is kind of inconvenient. Most users have trouble doing it. They don't know what defaults they can set. They don't know what the possible values there are. So having the thinking system do that simplifies it enormously. Setting tile images to be used for a control. That's totally new and adopted from the communion thinking system.  So a control instead of drawing itself by using low-level mechanisms that's a standard part of the drawing model will use specific methods as a part of the thinking system instead. So tile images. I've already said this from communion. And main tricks are up to nine images. So we can have say two rows of three images or two colours of three images or even just four images but up to nine so that would define a rectangle with top left corner, top right corner, bottom left corner, bottom right corner. Then the image in the middle can be tiled repeatedly to fill however wide a control is. The image in the middle on the vertical axis would be tiled to fill up the border on a larger control. And the middle part is either tiled repeatedly to fill a control or scaled up to fill a control or just admitted because this is something that you're going to draw in the middle part with something else and you're only using the tiles for the border. So that concept of a metrics of nine images really works very well to draw a standard simple control that's not made up of other parts. If something's made up of other parts obviously you have multiple sets of tile images for each of those sections. Yes, we use a single image, I think I mentioned that. The idea is that we actually let people design a single image and they can do that in any sort of drawing package and produce a nice looking image for what they want the thing to look like in the longer. Then they go into the filling application of that image and specify where that's sliced up into nine sections. It makes it easier to design the nine parts of the tile and use a theme selection. User defaults are too obscure. It's actually quite simple to set a theme using user defaults. You just set a user default to specify the theme there but who wants to do command line stuff like that? So what we did is we extended the info panel that all the new step applications use pretty much. There's a standard mechanism within the API for creating an info panel. All we do is extend that standard mechanism so that it shows the current theme at the bottom of the list of all the other information about the application. Clipping on the name of that theme brings up the theme panel which is the icons of all the themes on the left and lets you select on an individual and click on an individual theme to select it. Once you select a theme, it displays the information about who the author was, when it was written, any other information that the author wanted to put in there and obviously changes the way your application looks. There's also a button on that panel that lets you make this selected theme be the default for your application. That's the design application. It should be usable to tweak things because we wanted to be nice and simple for people who just want to mess around with their things but mostly it's designed for the actual theme designer. The person who's going to write a theme from scratch is going to put new versions of various different controls and then systematically change colours on that panel. It has to provide easy ways to replace the system images to specify replacement colours to set the menu style, to set the decoration behaviour, to set all sorts of individual information. The GS theme class is actually built into the GUI library and the library uses for drawing. The basic class is responsible for handling loading a new theme from a bundle and that includes loading in your executable code if you're overriding individual methods to draw things together. It controls the switchover between themes, that process of deactivating one theme and activating another. It handles all the actual changes in the mechanism of introducing the new system colours and the new images and changing the user defaults. And it provides methods to obtain all the different resources that you use to draw your controls. And it's designed to be efficient. So it uses load-on to land caching, and nothing in there. None of those big resources like the images are actually loaded into memory unless they're used. At the load they're used, they're cached. They stay in memory for the duration that that theme is active. And look up for them. It's just extremely quick. The activation process. We start off when we activate a theme by sending a notification to say that the theme is going to activate. That allows anything else in your application to do any work it needs to do to handle that theme activation. So some of the Huey classes will observe that notification and will change the way they behave when they see a new theme being activated. But also, user code can handle that. So if an application wants to be able to deal with them in a more intelligent way, it can use the notification as to do that. Once we've sent that notification to say we're going to activate a new theme, we change the user defaults database system colours system colours. We change the current theme, which is a global variable, essentially. So that everything can use this new theme instance, this new object. We update the main menu of the application, because that's a kind of complicated bit where we have to reorganise the menu if we're changing from a horizontal layout to a vertical layout, that kind of thing. And we send another notification telling everything that the activation has completed. That's the point when all the windows can redraw themselves to take on the new appearance. Thing to Activation is pretty much a reverse of that. We send a notification to say that it is stopping. Remove all the images, remove the current theme instance, revert to the original one, which might be, or will generally be built-in one. I look at the same notification to say we've completed it. Right. I put in a whole section on this, because it is an important detail that we don't override the default system when we introduce a new theme. Almost all of this standard theming mechanism, all the old stuff, certainly, is controlled by the user default system. We avoid overriding what everyone else has set there. So we set our new defaults in a default domain that's at the bottom of the list that's looked at consultancy last. I don't know if everyone's familiar with the default system, but basically you have different domains that you set defaults in, and you have a list of domains, and when you want to look at the value of default, it goes down the list, finds the first match. So the matches produced by the themes are always the last matches, and someone else can tweak things by setting individual defaults. I don't know if that's the right decision, but that's the way it works for the moment. Okay. Low-level drawings for things. This is a whole new section of the GSP class still. We provide utilities to do things like tiling of a rectangle, drawing borders, drawing the central part.  This is the toolkit of things that you can use to do simple drawing. You can always use the very low-level API, the NSB to get past that kind of stuff, but it's simpler. The main API for the theme, if you're going to actually implement new controls in the theme system, it's as... I'll start again. We have a list of methods that are essentially designed for drawing specific controls. So, for instance, the button has a few methods that allow it to draw itself using the theme API rather than using low-level mechanisms. We override those in the thematic.app. It lets you add new code to your theme that will override those methods. And the controls call them to call themselves. So, these methods use the tiles, the interface styles, and the images that are provided by all the standard thinking mechanisms. If none of those overrides that let you theme things, if the tiles aren't there, the colours aren't there, that sort of thing, it always falls back on the original hard-coded gymwsteth style. Named items are a fairly important concept in the theme system. It's not enough to change the look of all the controls in a particular class. The reason for that is that a particular class of control is used in different contexts. Buttons, for instance, are used throughout the system, and you won't necessarily want the buttons to look the same everywhere that they're used. So, the OK button in your open panel, maybe all the OK buttons, want to look different from most other buttons. The way we handle that is that the enclosing control so the open panel, for instance, when it creates a button in itself, it also can assign a name to that button. Basically, it registers that name with the current theme object. That allows the theme designer to then provide resources specific for that individual button rather than all buttons. Right, current state of development. OK, the framework exists. It's useful. You can create things with the application. The system image assistant colours interface-style information. All that old stuff is there built into the theme system, easily set up. The GUI library controls need to be converted to use the drawing with methods from the theme API to use the named items and the named covers and the name of the tiles. Currently, NS Sprel View are all switched over to using the theme API, but there's plenty of work still to be done on other controls. I suppose the NS menu really is controlled by the API as well. So the look of the main menu. We need volunteers. In future, we need, first of all, people to actually start using this to design some nice themes. Partly because we want to have some nice themes. Partly because that can show any shortcomings. We need to continue the process of looking at the individual GUI controls that haven't really been themed yet and to find the methods that we're going to use to draw those. These are the bigger methods that are added to the current theme API. We need to obviously update those controls to use those methods, update the thematic application to support those changes. We should support setting system fonts. There's not been any call for it yet, but I'm sure at some point in the future people will want that. I think that's the end. Now, the obvious thing to do at this point is to try a demo enigmatic. My screen here. Maybe you can kill an excellent anti-wist art. You can do that up. Now the subtle word again. Yes, I should do it. Will that not be sized screen again? Thank you. So I had to borrow this. I don't have an adapter for my computer because of the projector. Looks good. Let's try to start the thematic application. OK. I can create a new theme. I want you to see when you create a theme. First of all is your your main window for that theme editor. Up here we have system colours. That's quite straight forward. It's not the most... Anyway, the system colours inspector lets you select which system colour you want to change. And then you can use a colour world to pick a particular system colour, say. So the control highlight colour might have changed to yellow. Control background. It's in an instant effect of setting a red background colour for all the controls. Pretty ugly, but it illustrates a point. Then we have the system images. That inspector you get all the different standard images so you can find the image you want to change. That one. And double click to get up an open panel to select the image you can actually have on just if you want to replace it. The menu inspector lets you, for instance, select between menu styles. So now we have a horizontal menu bar at the top and a vertical menu bar again. What are the constraints for a horizontal menu? Constraints, in what sense? What happens if there are more menu items than on the screen? I have the faintest idea, to be honest. I don't know, we've had that for quite a while actually come across that in practice. We had a discussion about what we were going to do for in window menus. We've just recently added Microsoft style in window menus and of course windows were a lot shorter, so it's actually a real problem in that case. In that we're quite likely to have menus where the number of items won't fit across the width of the window. I think what we decided to do there is have a submenu produced at the right hand side if there were two little states.  But that's not yet implemented. Windows decorated natively or decorated I think. Unfortunately, that's the one thing that doesn't yet work immediately on the fly. You have to exit from the application again.  We've had to change all the back ends as well as changing the GUI to implement that. So let's take a little time. Final one along here. That's miscellaneous stuff. It's where you set who's the author, any additional information you want on the thing. Change the icon for the thing. That kind of thing. Just quick close that one. And open an existing one. Now, thanks to Ricardo for this one. He didn't want me to show this. It's an old version of this Windows theme. Actually I've properly modified it a little so he's not even responsible for all the mistakes. Facts is I didn't have anything, didn't have time to lock up anything myself. I lost it. It broke. Oh well. I just have an image there. OK, so here's an example of an image setting the timing for it. So if you've watched the button on the main menu, as I changed the position that I cut this image. He says to be always in position. It does in this at the moment. The backend API doesn't require it to be symmetrical. The thematic application does. Anyway, you can see the effect of changing these positions. Basically we're drawing the border around the outside in this button using this image. We don't have that here. I should go back to so I realise I just went along the top system colours, system images, menu, window and miscellaneous. The rest of this space in the rest of the space here in this area is for other GUI controls. The idea is that you're going to go on a thematic and just drop other controls in here. So at the moment we've got a button right in here. There's a scroll view with a couple of scrolls. Now, if you click on one of those your theme inspector comes up with a whole lot of different options. So first of all this tiling you can see the control. Click on there and you can select an image to use for tiling. You can select. In the case of the scroller different named items here. So the scroller down arrow is one of those named items that is specific to the scroller. Select the down arrow and say select a different colour for the scroller down arrow. There you go. Only affect the scroller down arrow. I could also, for instance, set a different colour for the scroller for example, long. So you can customise each individual control. Set the tiles to draw it. Set the colours. You can set options if they have them. This one does. I've forgotten about that. Well, that's good. So you can have arrows at the same end of the scrollbar or at the specific scrollbar. That's very important. Yes. Just a quick question. Are these colours always all back or are these a part of the strategy? They're not. Okay. In fact, the Ricardo's one that we just looked at was not okay. Okay. So you can have all of our values for the colour. In the future as well? You have an effect chain in your future to have a custom border in your confidence? You go, yes. Now, of course the final thing is codes. You actually want different code. There are various things you can include in your code. In extras that you need. So if you want to add common methods that are shared by different methods within your theme or include extra non-headers, for instance we are going to be doing a windows theme which will want to use the windows theming API which means we're going to need to include their headers. Global variable declarations, additions to a makefile to build it on. One of your actual theme methods for a button in view of a particular style for a particular state. So if you click on edit for that you get up a template method that just invokes the super class implementation. These template methods are all when in fact all these settings in the thematic are defined in property lists text property lists in files in the thematic application. So most of adding a new control is very easy you just change those text files. But anyway if for instance I want to put some more code in here maybe I won't bother putting any code in here. If I was to put code into here and click on done it would automatically compile that and put it into the theme. I don't know that would be kind of fun to do. So you handle only solid code also? Can you also handle some gradients and predefined patterns? We don't have gradients and patterns in there. We have just colors and we have tile images I think you can handle that. Any gradient should be imperative using a gradient every time? Not necessarily. A gradient could be implemented using a tile image or it could be implemented using a code you just override the method to draw the gradient. At some point in the future we might add gradients as an option controlled by the user default option but we haven't done that yet. Really? That covers it? Questions? What happens if you enter code, invalid code and the code editor is out of interest? Then it will give you a compiled error I'll see if I can do that. The mouse is a bit sensitive so if I just enter some rubbish there hopefully, yeah we'll get that. Of course you can delete. You've made a mistake. That's kind of easy. We'll get back to that. Does somebody try to convert the gradient theme to the new gradient step theme? No. That's probably a good idea to do but... I mean it would be nice to have that mouse with the gradient guys if they ever move through there. Yes I don't actually think there are very many comedian themes yet. At least two or three though which is a lot more than we have in the way of proper themes. I don't need one, I really like it. I prefer it all of it all the time though. Anything else? More questions? I have no idea what the time is. It's about 5 minutes. It's about 5 minutes. Will those themes be compatible for with other theming engines what they use? Somehow. Nice. The way we're going to make things compatible with other theming engines is to actually get in and write code based things. Most of this is designed on the assumption that what we have using the application is a theme designer. Someone who's interested in the graphics and who's artistic and knows nothing about coding quite often. If we want to integrate with Windows which we do or KDE or something like that then we're going to have to use their native theme engines in a way we have to do that. It's to go into the code level to use their theme engines from within our code. We can do that in two ways. If it's reasonably possible we can use their theme engine to draw into our cues directly. Directly draw the controls. Where that's not possible because their theme engine doesn't work that way what we can do is use the theme engine to draw into a background window and then take the contents of that window as an image picks that and use the tiling mechanism to draw that within our things within our controls. It's a roundabout way hopefully we don't have to use that but it's a fallback option. So yes the intention is to write some things to look like other systems. You said you wanted to keep the developer API fairly simple at least methods possible but at the moment you've only implemented a button with scroll bars and things. Yes. How do you envisage keeping it simple as well as having those controls specifically made as well? Because you've got like Zoom checkboxes and radio buttons and they all have their own they all have their own unique methods. Well no. Hopefully most of them won't because actually most of those things are implemented pretty much as buttons and can be drawn very easily using the tiling mechanism. So the vast majority of cases what we already have will do the job for them. What we have to look at are the more complex controls like where you want a whole panel that contains a browser and various buttons and things to behave differently. One possibility because of the nature of Objective C is that we never provide them for the very very big complex controls directly. We say you add a mechanism to replace a control class drawing that draws itself with a subclass that's completely different than what it has. So we could add a simple API just to effectively replace the classes with another version for those controls. So that should keep it let us keep the count down. We've got generic stuff that should work very well for all the simple controls. Then we've got a simple mechanism for people to override very complex controls that really need to be done completely differently. What we're really aiming to do is keep down the count of methods that are in the middle that don't really fit into either of those to extreme camps. So your checkbox and radio buttons they'll use the draw button method plus they'll have a different image of them. We've all been selected somehow with an active parameter. They already use system images for instance. The checkbox uses so they have named images already and you just pick the image, replace it in your thing before the checkbox changes its behavior. Before named images you can type this theme and replace the button which is the mother class almost every part of the using it has changed because so many items are buttons that everything got a window button so that's the point where the image is necessary. Yep. OK. I hope that we can get ready for next selection.