So let's discuss how to approach the unseen poetry exam and more specifically how to write a model answer for the January 2022 exam, okay? So remember, as I've mentioned, we're going to look at unseen poetry and more specifically how to answer the question that appears in this paper. More specifically, the poem that you're going to be given for this paper, especially if you want to practice and I will definitely suggest practicing these questions, is it's called Brendan Gallacher, okay? So this is Brendan Gallacher or Brendan Gallacher, all right? I'm not that great with the pronunciation of this name. However, this is a poem that appears, okay? And remember that in terms of context, you're not supposed to have ever seen this poem before, okay? This is the whole point and the whole nature of unseen poetry. I've never seen these poems before. Now, let's quickly talk about technique before I show you how to write a model response for this particular exam question. Now, as I've mentioned in my introduction to unseen poetry, remember you've got around 35 minutes that you should allocate to this part of the question. It's worth 20 marks. How do you approach this question? Firstly, remember that you need to spend the first 10 minutes of your 35 minutes reading and planning and selecting the different terms and the different examples that you're going to take from the unseen poem. As I mentioned, you want to aim for at least three or four paragraphs, so four responsive essay paragraphs, meaning you want to take a quotation from the beginning, two quotations from the middle, you know, early middle, maybe later middle, and then something from the end, okay? What you're doing, especially when you take that approach for your different paragraphs, is you're showing your examiner and your teacher that you're not lazy, you've read through the entire poem, and you're also now selecting different parts of the poem to analyze and to discuss. Allocate one of your paragraphs, of course, talking about form. Form relates to standard types, okay? So for example, is the poem laid out in quatrains? Is the poem laid out in, you know, five stanzas? Is it written, for instance, in free verse and so on? Also, of course, dedicate at least another paragraph, make it, say, a structure paragraph. So this is where you're talking about things like sentence types. You're talking about things like listing. And of course, dedicate another paragraph to language analysis, okay? Remember, this is all touching on your AO2 skills, okay? AO2 means are you able to illustrate an awareness and an understanding of language, form, and structure when you're approaching an unseen poetry question. For me, I would suggest trying to do this four times, okay? So for instance, let's say you have one paragraph dedicated to form, one paragraph dedicated to structure, and then say two on language or one paragraph in form, two in structure, one in language. However you want to mix it and chop and change it, try to just make sure you write enough, okay? I would suggest minimum should be three paragraphs. Or ideally, so of course in my model response, I'm going to show you how to write four detailed and really, really good, pure paragraphs for unseen poetry. Final thing is the approach, as I've mentioned, will be the pure paragraph structure. Point, evidence, explanation, link. Point means you're answering the question directly using keywords from the question. Evidence is you're just taking a bit of evidence, a quotation from the poem. Explanation, this is where you now show your awareness of form and structure. This is where you go into analytical depth. This is also where you talk about reader effects and of course link is you're linking it back to the question. Also in your link you can mention reader effect. So now that we've got a bit of this background, let's have a look at how to answer this particular exam paper and I will show you a model answer that I've prepared and I'll walk you through it. So let's discuss how to approach this particular exam question. Now, when answering this question, remember as I mentioned, you will be presented with the poem that you've never seen before and then you need to answer a question based on this poem. Now, as I mentioned, I have pre-prepared this question and also of course a model response. So I'm going to walk you through what my process would be as I'm reading and answering this. Now, of course, make sure you always have your highlighter handy as well as the pen that you're going to be using to write your response. Now, let's have a look at the question first. Within this question, as you can see here, I've already highlighted the keywords. So I actually sat it and wrote it out as if I were in your shoes as a student doing my exams. So here you ask, Explore how the writer presents Brennan Gallacher in this poem and your answer you should consider the writer's descriptive skills, choice of language, form and structure. Remember, of course, language, form and structure, this is your AO2. Remember, this question tests your ability to express this assessment objective. So the more AO2 and the more kind of language points you can rack up, the more form points you can rack up and the more structure points you can note, then, of course, you are really positioning yourself in terms of getting, you're really positioning yourself well in terms of maximising the amount of marks that you can get. So let's quickly read through this poem. I'll show you what I would highlight and, of course, I'm going to show you the model response that I have prepared. So let's have a look. Read the following poem, Brennan Gallacher, for my brother Maxi. So all of this is included within the title and it's in parenthesis, in brackets, okay? He was seven and I was six. My, Brennan Gallacher. He was Irish and I was Scottish. My, Brennan Gallacher. His father was in prison. He was a cat burglar. My father was a Communist Party full-time worker. So now here we can see that the speaker is juxtaposing the different dads. He had six brothers. I had none. My, Brennan Gallacher. So, of course, as we can see here, even in the first verse, there's this constant reference to this Brennan Gallacher, okay? So this constant use of repetition, which is a structural technique, makes us, as readers, really focus on this particular individual, okay? This individual is so important that even the poem is titled after his name. So let's have a look at the second verse. He would hold my hand and take me by the river, where we talk about his family being poor. So he comes from a troubled poor family. He gets his mom out of Glasgow when he got older. A wee holiday someplace nice. Here we can see that there's a little asterisk, a star, which means, and of course, also there's a little asterisk here, a star, which means that these are words that you're not expected to be familiar with. So here cat burglar means a thief who climbs buildings to gain entry, and wee is a Scottish language, or Scottish dialect, an informal Scottish dialect, meaning small. So he says, he would take his mom out of Glasgow when he got older, a little holiday, a wee holiday, someplace nice, someplace far. I tell my mom about Brendan Gallagher. So now the speaker is talking about how, you know, he's so proud of this friend, he would tell his mom all about him.  And she'd say, why not have him run to dinner? So the mom is now wondering, hey, why don't you have him run to visit us? You know, you love this guy so much and you're talking about him.  You know, we've been fighting around. No, no, I'd say he's got big holes in his trousers. I like meeting him by the burn in the open air. Burn means a small river or stream. So here, actually, what's interesting is even if the speaker seems really obsessed with this Brendan Gallagher, actually they're hiding them from the mom, okay? So there's also maybe an element of embarrassment here. So they're saying, no, no, no, no, you know, he's really poor, he's got big holes in his trousers. So obviously already this should strike you as a reader, as a little bit bizarre.   Then one day, after we'd been friends for two years, one day, so here it's repeated in the fourth verse, one day after we've been friends for two years, one day when it was pouring.  And I was indoors. My mom says to me, I was talking to Mrs. Moir, who lives next door to your Brendan Gallagher. Do you say his address was 24 Nova? She says there are no Gallagher's at 24 Nova. Interesting. So now there's a shift here. The speaker is being told this person, there's no one that lives in the address that you're saying he lives in, that Brendan Gallagher, he doesn't live in this address. There never have been any Gallagher's next door. And he died then. My Brendan Gallagher, flat out on my bedroom floor.  Oh, Brendan, my Brendan Gallagher. So now of course, the first three verses are really powerful in showing this close relationship that the speaker has with this Brendan Gallagher. However, I think this kind of last two verses are really interesting in the sense that there's a sudden shift, right? So as a reader, you're supposed to maybe perhaps be a little bit surprised because it seems like, you know, this person is obsessed with this Brendan Gallagher. It seems like they're best friends. And then suddenly, firstly, it's really strange that they refuse to introduce this person. But then at the end, we find that there is no such person as a Gallagher. And then suddenly this person dies once the mum outwardly recognises that there is no Brendan Gallagher. So then we realise, actually, this is an imaginary friend. And of course, even here, where there's this repetition of one day, one day when it was pouring, this is really powerful because up until this stage, right, we're only seeing the speaker's perspective. The speaker and Brendan Gallagher were in their own world. And then suddenly an outsider, the mum comes in, asks about Brendan, does a little bit of digging around, and then finds that this Brendan actually, there is no Brendan Gallagher. So this repetition could serve as a turning point in the poem, okay? Because it's one day, suddenly, okay? So this speaker is really happy about this relationship and then suddenly it shifts, right? After we've been friends for two years, this repetition, which is a turning point, we call it in poetry, Evolta, meaning there's a sudden shift. First three verses, it's all about Brendan Gallagher. They're in this kind of, you know, close friendship. The mum is asking, they're saying, why don't you have him around? This person's coming off of excuses. And then suddenly the mum outwardly tells the speaker, hey, there's no such person as Brendan Gallagher. And then suddenly this really dramatic ending, okay? So here, there's all of this, there's a caesura that's used here. He died then. And then we have this listing of all these features of Brendan Gallagher.  And we can see here that perhaps the mum outwardly recognising that there is no such person as Brendan Gallagher, right? Maybe that amounts to the death of this person's imaginary friend. And of course, we're even told that something terrible is going to happen here because the speaker and the poet, of course, uses pathetic fallacy. The weather reflecting the mood. And of course, and in this case, it's the mood of the speaker. The speaker's really, really sad, okay? So what I'll probably think about is firstly, in terms of form, we've got one, two, three, four, five verses, okay? So this is form. You have five verses or stanzas, all of which are five lines, okay? So here, these verses are written in what we call quintains, okay? So a quintain is just a five-line stanza and it's really regular, right? So of course, there's some kind of predictability that's established, but then suddenly that sense of predictability is completely disrupted by the end. Of course, as I mentioned, what I'll probably also talk about is this use of my Brendan Gallagher, even, for example, the possessive pronoun, my. Show the speaker is so close to Brendan, right? They really love this guy, you know, this is their best friend. And then we also can see here where the speaker is saying, look, you know, we'd meet where we'd talk about Brendan's family being poor, right? And we've got alliteration here. And, you know, we can also see that Brendan, supposedly comes from a fairly troubled background because the mom drank too much whilst the dad was a cat burglar, right? So of course, here we can also see, even through these repetitions, and here's of these pronouns that Brendan comes from a fairly troubled background. However, as the poem progresses, there's a turning point and then suddenly we realize actually this Brendan doesn't exist. He's totally made up by the speaker. So probably when I'm answering this, I'm probably selecting something from the beginning, two things from towards the middle and then something from the end when structuring my response. And of course, I will not, I will ensure to not lose sight of the question. Just to reiterate the question asked to discuss how the writer presents Brendan Gallagher and you've got to talk about language, form and structure. So let's have a look at a model response that I prepared using the full paragraph structure and also the peel paragraph technique point evidence explanation link. And I'll show you how you can layer in some really complex points using such a simple framework. So let's begin with the first paragraph. To begin with, the writer presents Brendan Gallagher as playing a pivotal role, in the speaker's life. It's clear that Brendan is a close friend and companion. That's my opening point. As you can see here, I've made sure that I'm alluding back to the question how the writer presents Brendan Gallagher, but equally, I've developed that point, right? So I'm basically saying Brendan is really important in the speaker's life. Of course, they keep on repeating them and their name and what we can gather is that this is a close friend and companion. Let's have a look at the first E in my peel paragraph, the evidence. The narrator makes repeated reference to my Brendan Gallagher and each quintains now making a point about form and each quintain in all five standards mentions him. Okay, so here I've talked about Brendan Gallagher, the evidence, but also I've mentioned form. Here's now my explanation and in my explanation, this is where I'm going to add technique. The writer uses repetition structure of Brendan Gallagher to show how the speaker's life is dominated by their friend. The possessive pronoun, this is now a language technique. As you can see here, what I've done is I'm adding, I'm layering in lots of stuff, okay? So I'm actually killing lots of birds with one stone. Rather than just saying that I'm only going to keep structure for one paragraph, I've literally added a little bit of each, okay? You can do that, but of course, if you want to keep it even more simple and just keep like say, for example, just one structure point here, you can do that too, okay? But I'm just showing you what it takes to really write at a grade eight, grade nine level, okay? Try and add some of that information but weave it in in a nice and sophisticated way. So let's look over the explanation. So this is now the second E. The writer uses repetition of Brendan Gallagher to show how the speaker's life is dominated by their friend. The possessive pronoun, my, illustrates how attached and devoted they are to this individual. K, this is the poet's surname, okay? So this is Jackie K. So I'm going to say either the poet, the writer, or I could also talk about the surname K. K uses a tight predictable poetic structure. This is a form point. As the poem is written in five stanzas which are quintains and this reflects the structure and predictability, the relationship offered the speaker. All of this is my explanation. In my explanation, what have I done? I've included language, form, and structure discussion. But equally, I've also talked about how this structure, the form really reflects the relationship that the speaker enjoys with Brendan Gallagher. So now here's my link back. Hence, Brendan Gallagher is presented as a crucial character. The speaker is committed to their friendship. This is now me linking back to the question and ensuring that I use keywords from the question to show the examiner that I totally understand what I'm supposed to be talking about. Let's now move on to the second point in rather the second peel paragraph where I make an additional point. Moreover, as the poem progresses, Brendan Gallagher's life is portrayed as being troubled. Although he was only seven, we can see he had a difficult life as his family was impoverished. Again, I've started off by making a point relating it to the question. And of course, also, I've included just a little bit of information here showing that he's really young to be going through all of these problems. Let's have a look at the evidence. The narrator admits to going where we would talk about his family being poor. His mother drank and his father was a cat burglar. I've included my evidence taken from now towards the middle of the poem.  As you can see, I'm making my way through the poem. Here's my explanation. Kay uses alliteration language to emphasise how much Brendan is confided in the speaker about being poor. Confided means you're talking, you know, your innermost thoughts, your deepest thoughts to somebody. The verb drunks and I'm zooming in on one particular word. Creates a strong sense of pathos, which means sympathy, within the reader. So now I'm mentioning reader effect. Who worries that Brendan was exposed to terrible things at a young age? That's my explanation of added technique, alliteration, I've also zoomed in on one word and also talked about reader effect. Now here's my link. Consequently, the writer presents Brendan's life as being full of troubles. The speaker evidently sympathises with him as they look like they want to comfort him. Here's my link back to the question. Once more, I'm making sure that I'm talking about the keywords within the question. How's Renan Gallica shown and presented within this poem? Never lose sight of the question. As I mentioned, now I've taken something from kind of early in the middle. I'm now going to probably talk about something from towards here later in the middle. I'm walking and progressing through the poem. So here we've got now the Volta, the turning point. Volta is a really powerful structural device to point out if you do see a key point within the poem that shifts. So now let's have a look at my third Peel paragraph. Nonetheless, as the poem progresses, the writer begins to cast out about Renan Gallica. The speaker's mother is presented as an intrusive outsider who asks unwelcome questions that serve as a turning point in this poem. That's my opening point. Let's have a look at the evidence. The narrator remembers evidence one day after we'd been friends for two years. One day when it was pouring. So now that's my evidence. Here's my explanation. Kay's repetition of one day structure is ominous and it acts as a Volta, a turning point which is structure. The Pathetic Fallacy, Pathetic Fallacy's language which informs us it was pouring is climactic. It's really important. It's the climax of the poem. The narrator is forced to step out of the small world they have built around my Brendan and they are forced to talk to another person about their friend. So now that's my explanation of really packed in. Lots of interesting structural observations but also I've gone one step further and basically said, look, now this is my interpretation as somebody that's just read this poem. What I'm basically trying to interpret and this is what you want to now start factoring in into your writing. Take it one step further and think, okay, if they add something like one day, this sudden turning point, what's that supposed to do? In my perspective, it's supposed to take this speaker out of their own world and suddenly they now realize they're forced to confront like the actual outside world. The mum is forcing them to do this. Here's my link. As a result, Brendan Gallagher is suddenly presented as a questionable figure to us as readers. We begin to sense the character, the speaker's reluctance to talk about Brendan to their mother. Here's my link back to the question. Now that I've written three-pill paragraphs, something from the beginning, two things from the middle, I'm now going to select something from the end. Of course, this is a sudden, unexpected shift, okay? Suddenly, Brendan Gallagher doesn't exist and this is supposed to be, I would argue, at least for me when I was reading this, I found it quite surprising and really shocking. Definitely something I didn't anticipate. I thought Brendan was a real person. So let's have a look at the fourth point. Finally, as the poem concludes, we are astounded to realize that Brendan Gallagher is a figment of the speaker's imagination. The writer presents Brendan Gallagher as an imaginary person who never existed. Here's my opening point or rather my final opening point. When the speaker is forced to accept that Brendan does not exist, they admit here's my evidence. He died then, his spiky hair, his grin, his funny flapping hair. That's my evidence. Here's my explanation. Kaye combines listing structure with alliteration, language to portray how harsh and sudden this realization was for the narrator. The childlike adjectives, impish and funny, so now I'm zooming in on particular words, are especially poignant, which means sad for us as well as the speaker. The mother's affirmation that there are no Gallagher's is a disquieting revelation. Disquieting means really shocking, really troubling revelation. So it's a disquieting revelation. This acknowledgement that he was imaginary amounted to the death of Brendan's persona and we are devastated for this speaker. So now here I'm talking about reader effect. Let's have a look at the link back to the question. Thus the writer presents the melancholic, the sad and abrupt death of Brendan Gallagher. We are shocked to realize he is the speaker's imaginary friend and we're sad as his death leaves the speaker in solitude and isolation. So that concludes the fourth and final peel point relating to this poem. So as I mentioned guys, make sure when you are answering this question you need to demonstrate your AO2 skills within your different essays. Try to also separate your points out and my approach and my suggestion in terms of approaching this question is pick something from the beginning, something from the middle or two things if you're going for the four peel paragraphs and then something from the end. So what I'm going to do is I'm going to read this through one last time. I'm not going to make any pauses so that you can just be clear what this essay is about. To begin with, the writer presents Brendan Gallagher as playing a pivotal role in the speaker's life. It's clear that Brendan is a close friend and companion. The narrator makes repeated references to my Brendan Gallagher and each quintane in all five standards mentioned him. The writer uses a repetition of Brendan Gallagher to show how the speaker's life is dominated by their friend. The possessive pronoun, my, illustrates how attached and devoted they are to this individual. K uses a tight predictable poetic structure as the poem is written in five standards which are quintanes. And this reflects the structure and predictability this relationship offered the speaker. Hence Brendan Gallagher is presented as a crucial character. He is committed to their friendship. Moreover, as the poem progresses, Brendan Gallagher's life is portrayed as being troubled. Although he was only seven, we can see he had a difficult life as his family was impoverished poor. The narrator admits to going where we would talk about his family being poor. His mother drank and his father was a cat burglar. K uses a literation to emphasise how much Brendan confided in the speaker about being poor. The verb drank creates a strong sense of pathos within the reader who worries that Brendan was exposed to terrible things at a young age. Consequently, the writer presents Brendan's life as being full of troubles. The speaker evidently sympathises with him as they look like they want to comfort him. Nonetheless, as the poem progresses, the writer begins to cast doubts about Brendan Gallagher. The speaker's mother is presented as an intrusive outsider who asks unwelcome questions that serve as a turning point in the poem. The narrator remembers one day after we'd been friends for two years, it was pouring. K's repetition of one day is ominous and it acts as a vulture.  The narrator is forced to step out of the small world they have built around my Brendan and they're forced to talk about another or to talk to another person about their friend. As a result, Brendan Gallagher is suddenly presented as a questionable figure to us as readers. We begin to sense the speaker's reluctance to talk about Brendan to their mother. As the poem concludes, we are astounded to realise that Brendan Gallagher is a figment of the speaker's imagination. The writer presents Brendan Gallagher as an imaginary person who never existed. When the speaker is forced to accept that Brendan does not exist, they admit he died then, his spiky hair, his grin, his funny, flapping ear. K combines listing with alliteration to portray how harsh and sudden this realisation was for the narrator. The childlike adjectives impish and funny are especially poignant for us as readers as well as the speaker. The mother's affirmation that there are no Gallagher's is a disquieting revelation. This acknowledgement that he was imaginary amounted to the death of Brendan's persona and we are devastated for this speaker. Thus, the writer presents a melancholic and abrupt death of Brendan Gallagher. We are shocked to realise he is the speaker's imaginary friend and we're sad as his death leaves the speaker in solitude and isolation. And that concludes how to answer and how to approach this particular exam question. Our suggestion is literally download this paper and try and answer it for yourself. That's the best way to improve when it comes to unseen poetry. Thank you so much for listening.


U.S. fears Iran could provide Russia with ballistic missiles for war against Ukraine. The United States fears that Iran is preparing to provide Russia with modern, short-range ballistic missiles to wage war against Ukraine. John Kirby, the White House National Security Council Strategic Communications Coordinator, said this. The American side says Iran has already provided Russia with combat drones, guided bomb units, and artillery shells. Questions about ballistic missiles increased after Russian Defence Minister Sergei Shoygu visited Tehran in September, where he was shown Iranian Ababil and Fatih 110 ballistic missiles. We are therefore concerned that Iran is considering providing Russia with ballistic missiles now for use in Ukraine. A National Security Council spokesman said, The White House also confirmed information to the Wall Street Journal about the intentions of the militants of the Wagner Terrorist Group to transfer the Pantsir S-1 air defence system to the Lebanese paramilitary group Hezbollah, which supports Iran. Russia has become closer to Iran after its full-scale invasion of Ukraine in February 2022. Among other things, Tehran has provided the Russian regime with thousands of kamikaze drones that kill Ukrainian civilians as well as the technology to provide them. Since last year, there have been unconfirmed reports that Iran may have transferred ballistic missiles to Russia. In October, in accordance with the agreements reached under the Iran nuclear deal, a UN Security Council resolution that imposed restrictions on Iran's ballistic missile programme was terminated. Russia then said it would not support continued sanctions unlike Western guarantors of the nuclear deal, potentially hinting at cooperation with Tehran on these technologies.


Hi everybody it's Sam at Mixed Up Craft, thank you for watching my tutorial today. I'm going to be showing you how to make this pretty substantial size storage box for your six by six paper packs. So you could obviously store anything in this as long as it's no more than six inches wide but I've made this specifically for my six by six papers. I was keeping them in A4 trays which is fine but I was forgetting and they were kind of getting broken up amongst each other and it's been since moving. I moved them when they were still in the trays and then some of them had kind of jumbled up and I've sorted them out it's fine but I needed something that was going to I don't know just be more organized and I've come up with this.  Now the reason I've done two is for two reasons. Firstly you may want to just have half the size you may not want to have two and I want to be able to make a maybe a smaller one and have that to hold just other things in but so they all match. The other reason I've done it is it just adds that more that bit more structure to the boxes. So these are made with one mil chipboard which is just that very very strong cardboard that's on the back of your 12 by 12 paper packs or your eight by eight ones. You'll be able to use eight by eight. Six by six won't work because this is six and a quarter the longest length I believe if I remember rightly. Anyway I'll go through all that but that's why and then I've done this base again if you see there and I finished it with corner protectors. I've got this pom pom trim and then I have made all of these dividers that I've laminated and then with my labella I have I've lost where that one is now where's my go wild. I have made all the the labels for it so there we are go wild and also the reason I've done them with the stickers over the top is so that once these papers are gone I can just peel that sticker off because it does peel off easily and then just pop something else on there so I don't need to these are reusable which is great. Initially I thought I was only going to make one but now I think I'm going to make two so yeah I will be making another one and then I've got that really nice stamp on the front which says there today I will create something beautiful and this looks really nice on my shelf and I'm super pleased with it so let's get into the tutorial. Okay so first of all to make the actual box itself to hold the six by six paper you need two pieces of five by six and a quarter one two three four five yes six and a quarter so two pieces of this is one mil maybe two mil chipboard that's not the right one I'm using let's just double check yeah one mil um so yeah two pieces of that and then two pieces of three by five okay so that's your sides and then for your base you need a piece of three by six and a quarter okay then the thing I'm using is this one here and basically when you put this together it's a piece of 12 by 12 okay so that's what I've cut it from so from that 12 by 12 if you cut it in half it's six inches and then cut along the six in the the 12 inch side of that six by 12 piece at seven and three quarters okay so you'll have these pieces here which will be six yeah six by seven and three quarters that's those two pieces and then these two pieces of what's left over so six by four and a quarter okay once you've got all those you need to start sticking them down apart from the base the base we don't do nothing with because it's all going to be attached to that other piece so you're pointless wasting your paper on it and and anything like that so starting with these two the bigger ones I guess you can start with the sides if you want you're basically going to stick it in the middle here okay your overhang will be slightly um thicker on the shorter side then this the longer side that doesn't matter we can always trim that a little bit later but that's what you want to do so I'm using my half inch um tape here and just going along and just covering the backs if you've got thicker then that's fine but just go over and cover if you don't have double sided tape just use your wet glue again just make sure it's paper friendly you don't want this to get all wet and end up being quite soft the whole point of using chipboard is to keep our project nice and strong if you start adding a pva glue or a heavy water based glue all that will do is the chipboard will soak up the water it will go very soft and it will lose shape and over time it will just not look very nice so just make sure that you select your glue um where's my bone folder so I've just gone over that and then just go over if you're using double sided tape and just make sure that that is completely stuck down and it's not going to go anywhere I've got a little bit that overlaps on that one there but that's fine peel off all the backs okay once you've removed all your backing there just flip it over and just stick it down am I only am I I'm only eyeballing mine or I'm eyeballing mine which is what I was going to say just sit it down there as long as you got enough to fold over all the sides and then just go over the backside there and again just make sure that that's all stuck down like so then just go over each side and fold it over and just burnish it okay and then just get that card used to being in that position like so okay so that's what you should have you want to repeat that with your other large one okay so stick that one down in the middle there and also with your smaller one so your two sides just stick them down so they are like so and do the folding on each side as well like I just did there okay so with your pieces on your large chipboard these edges that are slightly larger you just want to trim them so they're about the same as that it's a half an inch I mean it's just easy to do this quickly you don't have to be too precise just so they're kind of the same it just means you won't have it all hanging over inside they stick together which will make sense when we get to that bit okay like so so now what we're going to do first is get your two larger pieces and your base so the piece that we've done nothing on and what we're going to do first of all so we're going to stick two of the flaps down like so so the easiest way to do this is I've been using my red tape oh it's my pom pom trim and pop your red tape down so that it is kind of hogging the chipboard okay so don't worry about going towards the end of the card just the chipboard like so and then just make sure you got all your air bubbles out of the red tape like so take off your backing and then I'm also then just going to use some of my wet glue which will then stick down that other bit where the tape didn't quite reach but it also just gives us a little bit of movement and this glue dries very hard so it will also give it more strength and then bring this up onto the side okay so it's now bent and then stick that one down so it's completely flush so make sure you've got it at a right angle make sure your chipboard lines up end to end perfectly with your side bit of chipboard here and just using my bone folder to make sure it's all stuck down and then when you open it you get the perfect gap that it needs to come back up so that now sits perfectly side by side there okay so that's one of our sides so you can leave that that down again you can do exactly the same with this side so again just running my red tape along hugging the chipboard add some wet glue and stick that one down okay so you can see now I've got those two even gaps on both my sides there and turn it around you're going to do exactly the same with these pieces so one piece is going to go underneath like so so you're going to lift it up stick it lift it up and stick it in so when it comes down again you'll have that kind of gap so do that with two side pieces okay so this is now what you should have then what we're going to do is stick down these pieces and these pieces on your larger ones and those and the top one there all right so exactly the same way red tape and glue you're going to stick them all in okay so I've done those two sides and one thing make sure you use your bone folder and really work those edges to cook to create that really nice corner that I've done it's all about making sure this is all really stuck down I've been squeezing any glue that I've been getting out there make sure your corners are all really nice and it's just completely flush you can see there you've got two really tidy sides okay so next what we want to do is add um let me get this right because I'm thinking you've got to stick it in that way so you want to flip it over and you're going to put red tape on the backside of the flaps on your side pieces here so these little bits here you're going to put red tape on now when you add the red tape you don't want to go completely up to the score line you want to be about a millimeter away from it so if I just pop this one down first just so you can see because otherwise you run the risk of being able to see the sticky tape so if I pop that bit of red tape on that one and I fold that round can you see that I've come away from it by about a millimeter or so okay so that when we bring that best way to do is to check so you know I've put my tape down now when I stick that you don't want to see the red tape so I know I'm not going to see any of that stickiness okay so do that on all of the four sides here okay so I've done those ones then flip it over and just pop some tape on the short ends of your side pieces because you're just going to stick these down normally okay so with your little side pieces get them stuck down first it's just easier to do it whilst it's all flat if you don't do it you just do it when it's together so it doesn't really matter either way but we might as well do it now so again just stick it over and then like I said with your bone folder just make sure you're really working that card like so and just do the same on the other end okay so flip it back over again so you've got this side and we'll start with one of them here so take your backing off and then again I'm going to add some of my wet glue because this dries clear so it doesn't matter if it splodges out the sides but it just gives us that wiggle room which is what we need and then just bring this one down and bring up your corner just like you would if you're making any other box that should come up completely flush there with the top so sit it down so the base is on the bottom so you've got something to lean against and just bring up your corners and get that all stuck down and then pop it on its side and use your bone folder and just go in there and just really work that in so it's nice and secure okay and then just check the outside I've got no glue there but you can see now how we get that really nice corner just looks really professional just like ones I've seen in paper chase and stationery shops and that's the look I wanted to get so then do this side so you're working on the same sides there so again just taking off my backing and add my glue so just carry on and do those when you do this side take both bits of plastic off at the same time I put my wet glue on at the same time and then just bring it down because we've got that wet glue you've got time to kind of just make sure they're both in place pinch the top so they're stuck and then flip it over and then you can just go in there with your bone folder and flatten it all down okay so there is one very strong box so if you want you can line the insides but you really don't need to so now if I bring in some of my six by six as soon as you put this in you don't see anything I've got a lot I've got a sort rule out make all the dividers but it just looks so much neater so you now need to decide how many you need so I'm using obviously the two and I'm going to give the rest of my six by six that I don't need to my mum but now we're going to make our base for the two for two sizes and make all our dividers okay so for my base I've got the same chipboard again and this piece here measures seven and a half by seven and a half and then I've got a piece of matching paper here for some reason I done it a nine and a quarter by nine and a quarter and I wanted nine and a half by nine and a half but it really isn't going to make that much of a difference it's still going to give us a nice overhang so this is for two boxes that's what I need it for obviously if you want one box then you'll just grab your box pop it on your chipboard and I'm just giving myself a half an inch overhang bring this up just so you can see like there that would be and then you would cut this so I'd say for one box let me tell you actually you would need a base that will be so what's our so that's three so it'd be four four by uh what are my measurements here so I don't know I'm working the other way so it'd be four by and that's six and a quarter so four by seven and a quarter yeah four by seven and a quarter okay for just the one box but because we're doing two that's what you need and then that bit of paper so this is exactly the same way so you're just going to cover this with your tape and wet glue and then we're going to stick it down okay so I've just stuck that down on the back and then you want to do exactly the same as what you did to make the box so just go around on each side and just really burnish it throw my bone folder there across the table and that one there okay and then to do the corners instead of cutting them what we're going to do let's get a bit of wet glue and you would have formed a square shape from when you folded it that way in that way pop your glue in the square and then come over a little bit like so okay and then what you're going to do is pull up the corner exactly the same way as I do the mini album corners bring it up and then that square you want to just line up the lines again if I bring it up so where it's folded you want those score lines to just line up with your chipboard okay and then just use your bone folder again push out any glue it would just get absorbed by the chipboard anyway you just want to work it into corners like so okay so that's what you want to do and you want to do that on the all of those four corners okay so there's my four corners and then all you want to do is add glue and then fold up each side and again really work it with your bone folder make sure the glue is spread out and get those four sides stuck down okay so those are now all nice and flat now if you want to cut a piece of white card just to cover that you can I'm honestly not going to bother I'm not going to be lifting this up and neither is anybody that comes into my craft room so there is your again really nice base and we just need to do the edges so again doesn't matter if you don't have these it's still going to look nice but this does just prolong its life and help it obviously last longer so pop your corners on all of my links to what I've got will be in my blog really butt it up to the corner pop some tissue over it and I prefer the hammer the pliers they leave marks and they're really really hard to use sometimes and whereas the hammer it's just done quick and easy and you get a really nice finish so just do that on the four corners okay so that is now our base all done so next what you want to do is we need to stick our boxes together side by side so you want to stick them like so so I just use your wet glue for this and just stick them together just on the middle sides there okay so I've stuck them together and now what you want to do is stick the base which you're going to now put tape wet glue all on this so we can then put the whole thing down on there okay okay so just spend some time making sure just pop mine down now just just hold it in place there until it's uh you're happy that it's stuck down just grab a ruler or something um your bone folder you can just get in there as well and just make sure you're pushing all the glue down on the base there I've just put a load of my six by six in there and I'm just going to leave that now because the weight of those six by six papers will keep the bottom of my base nice and flat so that glue really really dries and then when we come back I will be doing the dividers and decorating it okay so I've been busy I have gone ahead and I've decorated all around the edge there put this pom pom trim and I've got a sentiment sentiment it's not a sentiment I've got a stamp this one here today I will create something beautiful and I plan on having it on the front there okay so you'll see that in the photos when that's done but what I've been um doing is making all my dividers so for example here I've got old stamping up I've got my label so I'll show you that in a minute as well um first edition botanical beauty so that's the first edition storyteller first edition floral fusion first edition paradise crash and so on and so forth um I am sorting them out and I've got a feeling I think I'm going to make another another two of these and do and have two sets together because I love it and I know I said I'm going to be getting rid of six by six but now I don't know so much anyway so that's that one ready now what you need to make your dividers is as many pieces basically um that are six inches by basically you're going to it's going to be six and one eighth of an inch because I wanted them to come up just slightly above my actual card stock which is six inches so the white comes up just above it and then I've got these little divider dies so you get all different ones I'll share the links in my blog and basically this one doesn't stretch across the whole six inches so I'm having to let me just bring in my base plate so I can lay it on here first sit it on your base plate and then lie it down so it is in line I've just done two pencil marks which are at six and one eighth of an inch from the bottom so up to this point here it's six and one eighth of an inch then I'm just lying that across there and then sandwich it and die cut it okay so then it's cut it out and obviously it's like that so all then you need to do is just very neatly just trim into the ends there now it doesn't matter if you don't have this die what you can do is just cut straight at six and one eighth of an inch and then just die cut a rectangle piece of card and just sit it slightly over stick it down and then we're going to run it through the laminator so you can still make this you can still make it look you don't need to have the bits that I've got and it will still look nice and then I've got one of my laminating pouches again I would usually cut that off but I'm not going to for the video quickly I've got my laminator here all ready to pop it there and just run that one through okay so that has nicely covered and then what I'm going to do is get that cut out so just with your scissors you just want to go around okay that's that cut out and then you want to label it now the reason I've done not done the labeling first is because I want to be able to use these again and again so once I've used that paper pack I can just peel this sticker off so this one here is for this this is all my origami paper which again I kind of forget I have which is why I'm glad I've done this now because I've got some really gorgeous origami paper here to do some lovely projects with so yeah that's just reminding me so I have the brother p-touch uh what's this one p-touch d210 um now I had to label my labeler because I brought mine in China so mine was all in Chinese and it is in Chinese but I just went onto the brother website and just copied the English so it all works perfectly fine so I've already got in the one I've done last so this is just going to be random origami paper random okay print and then print again comes through the back and you've got a little thing there with the scissors on it and you just cut that like so and there's your sticker so you have to trim it back a bit there is a way to make it so that you don't have that kind of waste um but I haven't got around to learning how to do it so it probably takes me a lot longer because it's all in Chinese so I'll just carry on like this you just peel it off and then line it down line it down lie it down here make sure I get it nice and even there we go so I've got one now with that and then this one's going to go so that's all my old stamping up at the back that's stamping up that's that I'm going to put it right at the back so I can see it so origami there you go that is nicely full I could probably fit another thin pack in there but I adore it like really really adore it you know and you just love something that you've made I love this so um so yeah I'm going to do my little thing on the front I might decorate it a bit more I think just the pom-poms are enough actually so I love that you can just flick through it see what you've got it's going to sit great on my shelves and yeah it's it's not hard it's just long winded again takes time it's a nice nice day project um you know put movies on and stuff like that which is what I've been doing but I'm yeah really really pleased with it so I hope you've enjoyed um this storage solution from me today and please give me a thumbs up as always if you did and subscribe to my channel to see more thanks for watching bye


Good morning everyone, I'm Andrew Friskup, I'm the serial extension plant pathologist at NDSU and today I'm going to give you kind of a small grain disease update on what we're expecting for the rest of the year in the Langdon Northeast, North Dakota. To best summarize what we saw early on is we did not see a lot of fungal leaf spots. You know, we used to scout and form, seen them arrive early, but this year is a little bit different. We didn't have those long due periods that really promote the infection of those pathogens, so we had more of a later disease onset. Also, with the common practice of putting a fungicide down with that herbicide, most of our early disease type of issues were less common as far as what we've seen in previous years. With the Northeast, there's one big exception as opposed to the rest of the state, was the appearance of rain and frequent rain. So the one thing that we have to start thinking about is what is the phrasarium head blight risk this year. If you want to look at a state, a more of a state impact of phrasarium head blight risk, the greatest risk beginning in the middle of June, starting in the middle of June, has been in Northeast, North Dakota, and that risk has only gotten higher as we start moving to the 4th of July weekend. And I know there's a lot of heading out wheat and I know there's headed out barley, and we have to start thinking about when are we going to put down that fungicide. So the two things that I always want to mention about a fungicide, one is know what you're using and when to apply it. The best products to use out there that provide the most amount of suppression of the disease are persaro, corumba, and merivisace. Those have routinely always provided about 50, sometimes 60% suppression depending on the year. The next thing that we should focus on is when should we be making those applications. So if you think about starting with wheat, the best time to make that application is when we start seeing the onset of flowering, or when we start seeing those yellow anthers start extruding from the center of the head. Now the common question always is should we be too early or too late. Granted sometimes you're just forced to one decision, but our research over the last to five to eight years have suggested that being a little bit too late is better than too early. Now you're still getting suppression regardless if you apply too early or too late, but we're seeing a little bit more on the back end of flowering. And the best way to describe that is if your wheat flour, if your wheat field is flowering today, you have about seven days to make that application to get good disease suppression, but also protect that yield. Now when we look at barley, we have a little bit of a different timing change, and that more has to do with is that barley does not flower outside of the boot. The best time to make that application is barley, was when you have complete full head emergence. And that application window again, if you want to talk about it, lasts for about seven days. And in some ways you could think about what stage is barley, how long the stem is below the head. In this case, my estimation is this is about three or four days after the beginning of full head. And just want to stress that this is still a good time to make an application if you weren't able to get out there already. So the two big things is what you're using and when to apply it. The other thing that I want to focus on is one disease I think that we're going to start seeing here develop during the first week of July. And this is bacterial leaf streak. Now when we think about bacterial leaf streak, there's a couple of things that I want to point out. One is we're starting to see this disease occur more frequently in the state. And the other thing is it's highly associated when we start seeing strong thunderstorms. So this past couple of days we have seen thunderstorms rip across the state. And that is more or less a prime time when we're going to start picking up bacterial diseases. Bacterial diseases, as the name suggests, do not respond to fungicides. So there's nothing we can spray on them that works effectively. And we are confined to using less susceptible varieties. Now if you use the variety guide, you're going to see a one to nine scale. Certainly anything that five or below is kind of what you want to mark it as far as if you're running into bacterial leaf streak problems. The biggest thing is, is this can be a severe yield limiting disease. As you can see on this sample, you see the streaking, you see the necrotic and sometimes yellowing streaks running up and down the leaf. When you start hitting the flage leaves, you can start losing yield potential. Last year on our most susceptible varieties, we documented 50, 60 percent yield loss. On the more resistant varieties, they were kept minimal to one to five percent. So resistance definitely does pay. As we move forward throughout the season, my key messages for Northeast North Dakota is continue to stay on top of your field for scouting, not only for disease, but also for growth stages to see when or if you're going to have to make that fungicide application. The other thing I always want to encourage is I hope you guys have a very successful and happy harvest. Thanks for your time. And if you need to reach out to me, work locally with your county extension agent, or you can reach out to me directly.


An opportunity is nothing if you don't take advantage of it. And the Ravens, they have a huge opportunity, literally right in front of them, right in front of them, to take advantage of the AFC and their strength of schedule that really appears to be a weakness, versus the other teams that are currently atop the AFC, like the Chiefs, the Beals, the Dolphins, and the Jets. And in this video, we're gonna take an in-depth look at that schedule, just so we can get a reminder of this opportunity that the Ravens have right in front of their faces. But it's also a sad reminder that the NFL season is almost over, it's coming to an end really soon. But anyway, on a brighter note, so right now, top of the AFC. And good morning, team, keep it clean. I love y'all, hope everything is really, really good. But the top of the AFC, the Chiefs, they are sitting at seven and two right now. Dolphins are seven and three, Titans are six and three. They are quiet six and three. I ain't really been hearing too much about the Titans being up there like that. Then the Ravens are six and three, and the Jets are six and three as well. Then we got the Beals too. The Beals are sitting at six and three. So it's a lot going on up there. It's a whole lot going on up there. But let's look at Raven's schedule. Cause of course, we keep hearing about all that strength of schedule. They got the easiest schedule for the remainder of the year. But let's take a look at it. Next up, they got Panthers. Panthers really, it's been a bad year for them. Obviously they got a lot going on. As y'all know, they face the Jaguars, the Broncos, let's ride baby, the Steelers. Now that could be a tricky one because it happens all the time. Regardless of record, Ravens, Steelers, they'll give each other a fight. Hopefully not this year, but we'll see. So they play the Browns. Browns, that'll be the Deshaun Watson Browns since he will have came back the week before. They play the Falcons, Steelers again and Bengals again. So while Raven's schedule is technically the easiest based off of the team's records, they still got that work cut out for them. And as much as I would just absolutely love for Ravens to run the table, go undefeated for the rest of the season, I just can't realistically expect that. I hope that they do, but I just, I can't expect it. Cause stuff happens, mistakes happens, teams show up, sometimes Ravens, they go to sleep, it happens, unfortunately, it's part of football.  We not on our A-game every single week. Me with that, I'm not on my A-game all the time. Us with our jobs and whatnot, we ain't always on our A-game. We got some days where it's just like, oh man. So I can't expect the Ravens to be perfect moving forward. But I do expect them to win a lot more games than they lose for the remainder of this season. Now let's look at the Chiefs, the Chiefs remaining games. They play the Chargers division game. You never know how those could go. They play the Rams, Rams been, this year ain't been so good, but they just came off a silver bowl. So I'm sure they cool with it. They play the Bengals, that's always a fun one. You know Joe Burrell right now, he got the Chiefs number. So we'll see what happens with that. They play the Broncos, another division game. We'll see if Broncos, Country Rides and that one. They play the Texans, Seahawks. Seahawks, they've been sneaky this year. They've been sneaky. They also play the Broncos against a division game and then they play the underachieving Raiders. So Chiefs got their work cut out for them. Now the Bills, who just lost in heartbreaking fashion at the crib against the Vikings. That was such a fun game. That was such a fun game. But anyway, they play the Browns. Browns, they don't know what they got going on right now. They also play the Lions. Lions are this weird kind of sneaky team. They play the Patriots division game. They play the Jets, the overachieving Jets. So division game and Jets been playing tough and Jets ain't scared, man. They play the Dolphins and Dolphins, they already beat them this year, I believe, right?  He been doing this thing recently. And of course, the Justin Field, Lamar Jackson comparisons are getting thrown out there. Cause you know, they ain't gonna get it to it right now. But anyway, they also play the Bengals and they finish off with the Patriots. So their schedule, again, all these schedules are tougher than the Raven schedule. And then let's look at this team that beat the Ravens earlier this year, the Miami Dolphins. They play the Texans, the 49ers. So that could be a tough one. The Chargers, that could be a sneaky tough one. The Beals, that's obviously always a tough game. The Packers, the Packers, maybe by this time they play the Packers. The Packers will have rejuvenated themselves and really got a breath of fresh air.  And then speaking of the Jets, the Jets' remaining schedule, the Patriots, Bears, Vikings, hey, you gotta give respect to the Vikings. They've been doing that thing. The Beals, Lions, Jaguars, Seahawks and the Dolphins. So Jets got their work cut out for them too. It ain't no cakewalk. And then the last team, that quiet team, the quiet six and three Titans, their remaining schedule, they play the Packers, the Bengals, the Eagles. Ooh, okay now, the Jaguars, Division game, Chargers, Texans, Cowboys, Cowboys, and the Jaguars. So Titan's schedule is very rollercoastery toward the end of the year. But bottom line, man, Ravens, NFL said here. And I mean, NFL, they make the schedule, but the way that it was designed for Ravens, it was top heavy in the beginning. All the toughest, well the toughest opponents, because again, people still gonna play them tough. It's gonna have Ravens, ain't gonna just steamroll all these teams that they played. I mean, I would love if they do it. I just, I don't expect it to happen like that. But NFL said, hey, we know your opponents for 2022. And this is the way we're gonna schedule it.  So we wanna see these Ravens in the playoffs. They make it happen, make it happen. Ravens have, of course, I love when people say the Ravens have been battle tested already because they have, they have. And they certainly will some more.  Well, you gotta make your weaknesses stronger. Those are the games that really prepare you for the playoffs. And again, I keep saying it, that that's my biggest thing with these Ravens. Regular season, all right, hey, cool. Regular season, longer, Lamar healthy, majority Ravens healthy. They gonna get it done. But playoffs, playoffs is where you really gotta come with it, obviously, because playoffs, it ain't no, all right, let's get better for next week if you're losing the, no, no, no, no. Playoffs, win or go home, win or go home. But the Ravens right now are set up to win, to not even necessarily win out. Again, hope they do, but they're set up to win and make it to the playoffs and then the rest is history. But it's important that the Ravens take advantage of this prime opportunity that's literally right in front of their faces. So come playoff time, come the end of the playoffs when it's Super Bowl time, hopefully the Ravens won't be saying we out.


Yeah, we on boss talk one-on-one. Yeah, we gonna This coming up that's hot right now in the music. What about push ice is I'm saying push Did he have any music left? Hello, that's that month when he was locked up that I like but uh, he ain't doing what he was doing when he was I don't think he was recording like that So Gucci was controlling his music.      I can't do him bro. I didn't Play on Do you You Hey, I play robin so right now So you you just future and I see you We're talking about the goats though And like nobody can disagree with that period period top five For sure you gotta give it to him He ain't in my playlist.   I am with it I'm telling you right now. Uh, you got some banging music out there them boys. Did they think Now I think you better future. Oh Y'all better appreciate it. I hope I get there.  Like he'd be crying He had a lot of waves though, he had a wave with you know what I'm saying he talked about he talked about The trap now he rich, you know what I'm saying you see You know Now you talk about Margella's What about Dallas what the hell Dallas Fort Worth young nigga Grand prairie what the hell's going on how what can we do How can we keep people paying the bag right here instead of paying niggas to come here and get the bag? I'm tired of that At first we gotta come together and get together. They gotta I gotta get behind this Now you'd be listening to something here. Yeah, I'm done with that, bro. I'm saying they gotta get behind this Y'all gotta come get ready though for sure. They gotta get behind this when these So y'all gotta be more consistent. Y'all ain't putting out enough y'all gotta put more work out No, I want that whole got to be coming all the time visuals the music everything that y'all see y'all romantic y'all in there playing the music And loving it. You got stuff that you had three four years. You never put out. You're too romantic with the music I bet y'all got a lot of stuff. You gotta put these projects out man. I think the one who put the most content out is who win Yep, I'm being real. That's real effect though and quit. You know, you know when I seen dsr A long time ago that music I did not really I couldn't rock with that But they kept putting it out every damn week right every other day So now we got the visuals and stuff we have I don't think people working hard enough. What do you think? um Barrio, you know you In the middle of the evening it don't work hard. I just need to see what I'm saying see the young niggas They make you even happier though. Like they gonna have something to talk about Now they don't start rapping though. They gonna have something to talk about on my mom


What's the worst and most dangerous way to speedrun the first 100 backroom's levels? Hey everyone, my name is Broogly, and today I'm gonna be walking you through the dumbest, scariest, most insane way to speedrun the first 100 levels of the backrooms. This method is gonna have the most dangerous environments, terrifying entities, and dumb decisions that you can possibly make trying to get to backrooms level 100, and it's more of a non-example of how to speedrun it. I've already made a safe speedrun of the first 100 levels, so if you haven't seen that, go check it out. This is gonna be the opposite of that, so without any more blabbering, let's get into it, shall we? So no matter what type of speedrun you're doing, you'll always start on level zero, which we all know is the infinite yellow expanse of buzzing lights and wet carpet. But that's the rookie stuff, we're gonna get into the crazy stuff now. Anyways, you need to no-clip out of level zero as fast as possible and get to level one. Level one, of course, is the infinite carport with concrete floors and wetness all over it.  Again, this is rookie stuff.   Because you did this, you are now in the claustrophobic attics of level 19. Level 19 is only classified as a class two difficulty, so it's not too bad, but it gets really cramped in some spaces and it feels dusty and gross, and it's just an attic. I mean, that's scary enough. But you probably think you made not too bad of a choice here. To get out of level 19, you need to find a small handheld gaming system in one of the boxes that's going to be up there. So you find one, you pick it up, and that's actually the second bad choice you've made because now you'll be sent to level 212. You passed up level 100, which was your destination, and you're way far ahead in a terrible level because level 212 is classified as a class five difficulty, and it's an entity-infested airport. The airport has been overrun with entities like wretches and skin stealers and skin givers and hounds and clumps and smilers, and literally every bad thing that exists in the back rooms is here. And you, just send yourself here. Nice. Now you're thinking yourself, you know, how do I exit this level? How do I get out? Where do I go? So you run around and try to find a door in the terminal area that you're at to try to escape this level. You find one, and because you found one, you think you're safe.  But no, it is not the safe level 11 city that you've been sent to because you'll slowly notice that the sky of the city is crimson red and everywhere around you reeks dark energy. Congratulations, that is the third mistake you've made on the speedrun because now you found yourself in level 11.3, a class five difficulty cityscape that has a dark negative energy coursing through it. The level is called the red light district and it has a race of sentient red cubes that float around with weird shadow entities that hide in the alleyways waiting to attack you while you pass by.  So in your panic state, you run as fast and as far away as you can from the middle of the city and lucky for you, you just made the first right choice of the day. By running away from the city, you accidentally found the entrance to the regular level 11. So good job, you know, you finally made a good decision. I'm proud of you. And now you're in the safe level 11, the infinite city with tons of people and food and safety and groups and everything like that. The only problem is you don't want to stay in level 11. You're trying to get to level 100 beaches. So now you're looking for exits of level 11 and you find someone that says you have to go into the sewers to exit.  Congrats. Now you're in level 34, which is a claustrophobic sewer system that's filled with entities and water and it's classified as a class four and it's also pitch black and you didn't bring a flashlight. Typical. So that's the fourth big mistake you've made. Now you're in these tunnels and you start stumbling around the dark, musty waters of the sewer until you find what looks like a window. You're not sure if it's an entity or if it's a real window, but at this point you don't care. You run into it and you no clip out through the window and now you're on level 99. Only one level away from level 100. You're almost there. Except level 99 is a desolate wasteland expanse of desert with a hot burning sun that shines all the time. It's also classified as the class of desolate wasteland. So good job. That's the fifth mistake you've made, but you think to yourself, you know, I'm only one level away from level 100, so it doesn't matter. You know, I can't be too far off. You end up wandering through the desert landscape for hours and hours until you find an abandoned town. You think that the exit has to be here somewhere because this is the first sign of life that you've seen and you end up finding a door that's labeled swimming pool and you think to yourself, let's see, level 100 is actually an ocean and a beach and this door says swimming pool on it. Close enough, right? I mean, surely.  The only problem is you won't see level 100 soft sand beaches on the other side. You'll wake up in a disgusting, floating wasteland with random objects everywhere and congrats. You made it all the way to level 7. That is the sixth mistake that you've made today. You were literally one level away from level 100 and now you're all the way back at level 7 and you have to find another way to level 100 now, I guess, because you just backtrack the entire time and you're on a really dangerous ocean level with storms and entities that want to eat you. So yeah, that was the worst possible way to speedrun level 0 to level 100. I made this video using the listed exits of the levels on the wiki dot and I thought it'd be pretty fun to see how many mistakes a person can make trying to get to level 100 and as you can see, there was a ton of mistakes that were made. Like I said, I made a video on the safest way to get to level 100 from level 0. That'll be in the description. This one is the most dangerous way and you made a ton of mistakes trying to get there, so don't do it. Go watch the other video of how to do it safely. Let me know in the comments if you have a worse way of speedrunning it or if you like this way or if you have another way. I'm excited to hear what you gotta say. That's it for the video. Thank you so much for watching this. This video is extremely fun to make. I really hope you enjoyed it. I love these speedrun type deals because I feel like no one else does them and I feel like it's very unique and stuff and I have a great time making them because I just love to see how crazy it can get. The fact that you can start on level 0 and make it all the way to level 99, so close to 100 and then just be sitting back to level 7 is just funny to me that you can go to all these dangerous levels. I mean it's not really funny but it's funny, you know what I'm saying? Anyways, I am on the road to 1 million subscribers and when I hit a million, I'm going to be flying to England and staying in the level 188 hotel. If you want to help me get to the 1 million sub, Mark, drop a sub, share the channel. Thank you for support, all your help and everything you do for me. I'm so appreciative of you. The channel is literally just growing absurdly fast and I cannot thank you enough. So seriously, thank you all so much. I love and appreciate you all and make sure to tell somebody that you love and appreciate them because life is too short to not tell people that. Let me know what other speedruns you want. Let me know what other levels you're going to go over, what other entities if you want me to go over POIs and things like that. Let me know. We're all about the backgrounds here on this channel. I love it. I love where it's going. I love the vibe of it. Thank you all so much for watching and I will see you all in the next video. Peace.


Welcome everyone. We'll have a talk by Alexander Stefan about writing testing C code with Python Please welcome Alexander. Hello everyone. Thanks for joining the session I work as an embedded software developers. So I write firmware for microcontrollers mostly Unfortunately, this is mostly C code not yet Python code Though recently we've ported micro Python to one of our controllers. So somehow we're getting better Before I start for the talk, I'd like to know a bit more about you to your experiences with unit tests So if you've written any unit test in any language yet, please raise your hand. So get an overview. Okay, great That's most of you And who of you has written unit tests for C code probably in C then Okay, that's probably about half of you Last question then is who enjoyed the experience especially if you compare it to writing Python code instead Well a single guy. Yeah, perfect So then maybe I can show you a more fun way to write unit tests for C code Now you might wonder what my motivation is for that and some of it can probably be summed up with this quote here That the C language combines all the power of assembly language with all these of use of assembly language So with C you've got control of everything and you can control everything But you usually also have to control everything you need to do everything yourself. There's little support from the language and For testing stuff, you probably don't need all this power You're not constrained with resources You don't have that performance requirements that you might have in product in production code So you could actually use a higher level language to make it easier for you to write your test code Don't do everything in a low level language like C Now let's look into that in a bit more detail if you write unit tests for C code with C code Then there are some good things. You've got the same language everywhere So at the developer you do not need to switch contacts between different languages different styles different syntax And that might also be good for a lazy developer who only knows a single language And of course if you're working in an embedded environment like I do Then you could be able to run your unit tests on the target device or at least on a simulated device So that if there are bits and pieces of your code, for example implemented in assembly, you can also test those But it's also a bit limited in some ways I already told about the limitations that the language offers you so you can only use C constructs Which are not as powerful as Python constructs. For example, you need to write much more code and you could in a high level language But you're also limited by what the framework has to offer you and if you look up unit testing frameworks for C code There are tons of frameworks out there, but most of them are very basic They don't offer advanced features that you might be used to when you look at unit testing frameworks that are offered For example for Python code. So there are a few frameworks only that offer mocking, for example And in the end you're also limited by what the ecosystem has to offer For example, we would like to test some cryptographic algorithms in our implementations And of course you can call into OpenSSL to verify some some calculation But it's not really that easy and it might be nicer to do that in Python Now maybe we can do better than that and I've prepared a few examples to show you how unit testing C code with Python would look like So the first example is the most basic thing I could think of We've got a single function in our C code and that just adds two integers and returns the result So this is the header file, the public interface that we want to unit test And this then is the implementation of that function It just adds the numbers and returns the value and if you write a unit test for that It could look like this So as usual with Python unit tests You've got a test case class as Container for all your test cases the single function in there then is your test case We've only got one here And it's rather simple it loads in the source code that I've shown you before creates a module out of that and Then has an object on which it can call the functions that is defined in the module This function returns the result and we can assert that the result is really correct Now you don't see any C code in here and no construct that really do anything with the C code from before the only Mentioning a thing that you see is the name of the module the parameter for the load function And this is where all the magic happens. So let's look into that the load function here Consists of three steps first it loads the source code on the module So it opens the C file it opens the header file and reads out the source code And then it uses CFFI to build a Python module out of that thought out of that source code There are three calls that you need to make on the CFFI object for that And the first call the C def call will tell CFFI what interface it has to export to our Python code So we pass in the header file contents that defines the public interface. We want to test that so CFI It needs to generate the interface for us And then with the second call we need to tell CFFI about the implementation of the function So we pass in the source code here and the last step then is for CFFI to actually build the module that we want to have So it runs a C compiler in the background Builds the module and in the end does the last step we can import that module and return it to our test case And that's really all you need to run this example that I've shown you before Now I've got three more examples that all built on this implementation So I'd like to quickly ask whether there are any questions for this example already So that you can better understand the following examples You mean if you're more than one source file? It works now. Yeah, because if in this example source file I have some sort of includes and dependencies to other source files and how do I go with that? I have to compile them also and link them somehow or how does it work? Yeah, I've got some more complex examples with multiple files and with external dependencies and we'll show that later Okay, any more questions, otherwise I'll continue with the second example And the second example is still rather basic We've got again a single function that you can call multiple times And we'll just add up all the parameters as we pass into it and return the current sum This is its interface and This again the implementation So now we've got a global variable that we use to sum up everything The function just adds to it and returns the current value and The unit tests now look like this to make matters a bit more interesting. I've implemented now three unit tests not only one And so that I do not have to repeat this load call in every test case again I use the setup method this gets executed before each test case is run It will load the module for the test case And then the test case can access the modular just as before can call the function there assert that the results are correct But if I were to run this test case with the load function that I've shown you before it wouldn't work And why wouldn't it work? Well in the source code? there's this global variable there and The load function that we had before it just imported the module at the end And if you know a bit about how importing works in Python those imports are cached So if there are multiple test cases running the first one will actually import the module initialize the global variable all the other test cases will just Reimport just get the cached import back and it won't be initialized again So the assumption of the test cases that the sum also always starts with VRO Doesn't hold here. And so the test cases would fail Now there are Several solutions to this I'll just going to show you the simplest one and that looks like this the load function is still the same just the first line with the comment Has changed or got added Where generate a random name for the module so this avoids all caching by importing essentially a new module every time this function is called Which might not be the most Performance solution and it will also use more memory But it avoids nicely all the problems that you could otherwise have with caching all data For this I use the UID module which just generates a random unique ID and depends that to the file name Which is then used as as the module name all the other code in here is the same as before So each test case can still load the module and gets a fresh copy every time You could also implement that In a different way and when you have when you've imported the module just Re-initialize it every time what that would make it would take more code. So I don't show it here Okay, then example number three and here we are getting to multiple files now Since all the other examples so far were very basic was just a single C file and a single header file Now we take at least a second header file and we want to do some mathematics with complex numbers So we define our own structure for that That has just two fields for the two parts of a complex number for the real part and the imaginary part and we have that in one header file and Then we want to want to implement a function that uses this type So again, we use the example of addition adding two complex numbers and returning the result and We can implement it like this. We just add both parts together and return the result at the end now the test case for this again, doesn't really need to know much about the C code we load the module as before and You don't even have to deal with the complex type that the header file declared somewhere when you want to call the add function you just pass in the lists here and CFFI will automatically generate structures for that so that the C code is happy and gets the correct results and Also, the the result of this function call is a nice Python object where you can access the parts of the structure with normal names and can assert that all this Results are correct But again for this example to work. We can't use the previous implementation of the load function Because in the previous implementation It just looked at the source file and the header file of the module that we want to test It doesn't really know about the other header file that we also need Now if you remember the source code you could say yeah, well the other had a file got included into the modules header file So it should be present there But unfortunately CFFI cannot deal with these include statements So what we need to do is we need to run some kind of pre-processor like the C pre-processor over the source code So that there are no more include statements in there. No other directive that CFFI doesn't understand Otherwise it would throw an error And this is done with this pre-process call in here Again, there are multiple ways you could implement that I've chosen to just run the DCC pre-processor over the source code and get back the results at the end I've got one large string that contains the contents of both header files and CFFI is happy with that Now for the last example It's gets even a bit more complex because now we we have some external dependencies In this case you can imagine your you want to program a microcontroller and Maybe the vendor of the microcontroller provides you with a nice library like this here where you can Read GPIOs using simple function calls and the vendor has chosen to implement different functions for each GPIO that you can access So he provides you with a library that has this interface here But maybe in your code you'd rather like to use this interface You only want a single function call and a parameter to select the GPIO that you're interested in Now you can implement that in your own code You just look at the parameter call the appropriate function and if you get a parameter that you cannot deal with you return some kind of error code And now this is the code that we want to cover with our unit test We don't want to test the vendors library So we don't want to use the the read GPIO zero or one calls here We probably couldn't use them in the unit test because they might access some registers of the microcontroller that aren't there in our test environment So we somehow need to replace those calls With our mock functions that we can run a test case that knows what the GPIO values are The test case for that looks like this The first change that you'll notice to the previous implementations is that the load function now returns two values Not only the module as before but also an FFI object That's part of CFFI's interface and we use that in the first test case To replace the C function that we don't want to use with a Python implementation So we define a function that has the same name as the C function we want to replace and we tell CFFI Hey, when this C function gets called, please use this Python implementation instead Don't use a C implementation that you might find somewhere and so the Python implementation just can return a fixed value When the test case can call the function that we want to test with the correct parameter and See that the value that is defined before is returned in the end And the second test case for the GPIO number one it doesn't the same thing but using a different construct So in this case We don't want to really define a function But we want to use a mock object like you might be used to from the unit test library And you can do just the same with it You configure your mock object to return a value when it's called and then tell CFFI Hey, this is not a function But just something else that you can call use that in place of the C function and Then the test case again works can call this function and at the end you can also use the Assert methods that are provided by the metric mock function And in this case again, we need to modify the load functionality This is again for comparison the old implementation and we need to add some more code to that for this example to work There's three changes here all again marked with the comment The first change is that's not sufficient anymore to just process the header file for the module But we actually need to process all the header files that are included in this module So it just uses a regular expression to collect all the include statements Then runs that through a pre-processor and as a result gets one large string again That contains all the include statements all the all the content of the include files of our module And the main work then is done in the next two lines Where we need to tell CFFI which functions we want to replace with Python code and which functions are implemented in our C code So the first line just goes through the source code and looks for all the function definitions so that we know Which functions are implemented by our source code and the second line then Goes through all the includes that we have looks for all the function declarations in there And whenever it finds a function that is not implemented in the source code It will tell CFFI. Hey, please insert a Python implementation in here that we can replace later The functionality is all there in CFFI. We just need to prefix the function declarations with this extern Python plus C Statement then CFFI will know okay. I need to generate some code for that And this will already make the compiler happy. It will find a reference for this function So it can call it and we can later replace it with Python code And in the end the last change is as I said before that we now need to return this FFI object also from the load function So that the test cases can tell CFFI about the the implementation that I want to use Now I'll show you a bit more detail how this step in the middle works where we Analyze the source code to find the function definitions This is based on pi C parser and this is the first part that collects all the function definitions So pi C parser will analyze your source code and will build an abstract abstract syntax tree out of it So you can later walk this tree with the class that's already provided and whenever you hit a function definition This wizard function here is called It will get the note out of the tree and can just ask this note Okay, what is the name of the function will add this to a list and so in the end once it has walked through the Whole tree you've got a list of all the the functions that are implemented in the source code all the names of the functions there And this is then used in the second part again based on the pi C parter module Where we actually parse all the Include contents into an abstract syntax tree and then tell pi C parter to regenerate the corresponding C code from that so that we can modify some bits of that and Pi C parser already has support to regenerate code from the tree and we just took into that and whenever we see a declaration for a function This is then again the visit function for declarations we look at the declaration there and see whether it's a function declaration and If it is and the name for this declaration is not in the list of functions that we found in the source code Then we'll just prefix it with the external Python plus C statement So that when TFI again parsers the source code it will know what to do with these functions Okay, this was the last example that I wanted to show you so to sum up I want to talk quickly about some of the drawbacks that this approach might have if you're used to other approaches and One of the main drawbacks is probably that if you use this code as I've shown it to you If your C code does something bad and tries to access the null pointer for example Then it will also crash in the test process because the code actually runs in the same process There are no boundaries between it So when your C code destroys something your test will crash you won't get any nice error reports and you might not like that So one solution to that problem would be to run each test case in a separate process and have one main process collect all the results None of one test crashes just crashes the single test case The main process can still report on the errors and all your other test cases will continue to run This might add a little overhead of course because now you have multiple processes running that Yeah need need some more computing time But at the same point at the same time you can also run your tests in parallel So if you've got multiple cores it might actually be faster in the end than running everything in serial And another big problem might be that debugging your test cases gets harder now because you've got a Python process that calls some C functions that again might call some Python functions and Where really do you debug that you can attach a debugger to your Python test cases? But that won't help you much once you enter C land You won't see what the C code does there or you can attach a C level debugger So you can see what your tests or what the implementation does, but then you have to deal with all the the C Calls that are done by the Python interpreter internally and that you need to skip somehow So it would be nice of course to have some maybe better integrated solution here some Combination of two debuggers for one for the Python flight one for the C side But smoothly hand over control once you enter the at the other part Or one could also argue that since we are talking about unit tests here If you really need to debug your unit tests Maybe you could also think about Simplifying your code simplifying your unit tests or even the implementation So that you don't need to debug them in order to find a problem But so that you've got unit tests that really can tell you where the problem is when something breaks But to end on a positive note if you're going to remember something from this talk I'd like to I'd like you to remember that writing the test cases is really simple And no matter how complex your C code looks like you've seen all the examples that I've shown you the test cases look pretty much the same Because all the complexity that you need to care about is hidden inside CFFI and the replica that I've shown you here as A test case author you don't really need to deal with that You just can concentrate on writing your test cases and you need to solve the hard parts only once Have it in a generic part of the code and never look at that again as long as it works So thank you for your attention Yeah, we have any questions and can you run tests from see from Python on a compiled library for example like from a Built binary code. Can you import that in CFFI? Yeah, that is one of the main use cases actually for CFFI that you can interface from Python to existing libraries So that you can build a nice Python interface for for libraries that already exist without needing to reinvent them So that's of course possible. This approach was more meant to test the source code So it passes in the source code not a library but of course you can also tell it here use the existing library and You could probably also do this Could you do this trick with mocking or like put alternative function or Function definitions in a loaded Shared object or something like that. Do you think that this is possible? Well, that depends if the function that you want to mock is not part of the library But would be part of another library and you don't link against that's library then it should be possible because then you have to Insert your own implementation of that function anyway for it to compile But if you want to mock a function that's part of the library that you you want to test and it's implemented in there You can't really replace it because it's part of the same binary and the code will just call the function in there You can't really take it out and insert another implementation there So you cannot switch out the binary calls, okay, I would refactor my C code say Change the name of the fact a function as a signature and Forgot to add up my test how easy it is, you know to spot the mismatch. Do I get the proper error message or does it just crash? No CFFI will tell you if you want to call a function that doesn't exist that well There's no no such attribute on the module You'll get the usual error codes for that if you change the type It probably depends a bit on how compatible the old type is to the new type If you maybe change an int to float or something like that You might even not need to to adapt your test cases Even if you pass in an int CFFI will just convert that to float value then for your call But if I would use a different struct name or so it would detect that Yeah, if you change the names so that are not compatible you Get an error message if you have on the other hand a structure That's completely different a completely different name But has the same the same types in there then you probably won't notice if you change the complex number structure for example and just Switch the order of the fields. You won't notice that when you pass in the parameters You will only notice that then when you test for the for the assertions in the end No more questions Yes Can the CFFI module can be also used for the c++ code? For what please c++ For c++ I think it's it's not Completely supported. No, but there's the main CFFI developer arm in one of the four girls You can ask him about new features Short answer is no Okay, thank you for your attention and thank you Alexander again