and it's only 15 euros so if you want more information you can go on to be just Elvis Rock and the Elves at Donegal Facebook. Yes and we've got a huge raffle we've got loads of prizes some Elvis prizes and some non Elvis prizes and we've got a couple of money prizes as well and we've got some items for auction and we've got a couple of very interesting items for auction so bring a few pounds with you and you never know what you would go home with. Well listen it's going to be a great night and you can let us know how you get on as I say we'd love to be there and keep in touch with us and you've raised so much you've raised 27 plus thousand. Almost 28,000 now yes 27,970 or something like that yes so we're well over that now. Credit for that and well done. The money is coming in now for a little asking for quite a few donations. Well done and we wish all of you and of course going forward the very best of health and sending our love to you. But for sending love to yourself Beatrice so well done and say hello to your mum for us and she will catch you again. We will Paul and thanks very much for giving me the chance to promote that big event. You're welcome and we hope to see you. Oh we will take the tour down the whole lot of us me and Jimmy land down and just you may be sorry he asked us but Beatrice take care, take care. All right you take care too Paul. Thank you very much. That's Beatrice Farley and they all the show this Saturday night and eight o'clock at the time. Right, quick break. A public service announcement from Donegal County Council. Join us to celebrate Europe Day and EU 50 on Tuesday 9th of May 2023. EU 50 events mark Ireland's 50th anniversary of joining the European Union. Speakers include Stephen Kenchella, media commentator and author of Ireland in 2050. Callum Markey, MEP and Chris McManus MEP via video link. Olivia Jones from Antashka, Donegal Youth Service Professor Hugh Frazier, Paul Kiernan, Jolene Koipir Machado and Professor John Sweeney. There'll be music from the New Land Choir and refreshments provided. This is a free event but booking is essential via www.donegal.ie forward slash Europe Day or by telephoning 074 91 249 50. EU 50 is sponsored by the Department of Foreign Affairs, Donegal County Council supporting Europe Day 2023. The spring sale is now on at Patterson's The Hall effort. There's huge savings across all departments garden furniture, bed, sofas, dining sets and giftware with up to 50% off selective mattresses plus up to 50% off ex display kitchens hundreds of products in stock and ready for delivery or collection open Monday to Saturday 9 a.m to 5 30 p.m. So get yourself down to Patterson spring sale now. Welcome back 18 minutes after what time is it Monday night 9 o'clock. We welcome our next guests and they've a massive night lined up tonight and we thank them for coming out of their heavy schedule. It's one for the road and it's Ren and Fenton. How's doing lads? How's the floor? It's going good. Quick, quick history of the band first. We came together in 2016. We came to me and Ren. We knew each other through the years through flas and competitions. We used to begin with the traditional music. We would have competed at all, any age groups, under 12s, under 15s, right up through and into seniors even. We kind of met through that and sessions and different things around the country and got together and he's both from Manor Man. No, I'm thrown. Good man. Good man. Thank God. I'm not too sure. You can call me anywhere. All right. Well, thank God. This is an honour. One of us here.  Monahan man, are you? I thought you're from Manor Man. I don't know why I thought that. If you haven't insulted that. No, no, no. It wasn't. I can't roll me from Manor. People are calling me. You should start a hand on here now, Jimmy. Would you see the text message coming on now? Oh, no. Ah, you got a Monahan man, right? So anyway, the band is starting since what, 2016? 2016, yeah. And the name worn for the road. How did that come about? There's no Mazel story behind it. It's kind of just, as I say, it goes one for the road. You can be in the pub there and people shouting one for the road. It's a good title. It's a good title. It's a good title. It fits somebody. It's two-piece. Two-piece. We started off as a two-piece and we're kind of moving more in than out.  Because of the bigger venues, not bigger venues. Bigger sound. Bigger crowds. Bigger crowds. And more money. Well, anyway, listen, we'll go straight into a piece of music in the first, what are music going to do for us? I don't see it. It's called we're here. Well, you're ready. Take it away. Thank you very much indeed. Tonight's night, we're just talking off air about it prior to that. It's a big night. Well, it's kind of growing to a big night, you know. Yeah, we started them about two years ago now. So, it's kind of a big student, kind of, around all the colleges and that now. There's these ones kind of coming from our way towards it, so. And are you the only act on it tonight? We're the only act on tonight. We were doing them all and things is getting a busy. We're kind of doing every sack in a third week now, you know.  How many nights are you gigging? It's kind of different every week. You'd be talking definitely three, four, definitely three or four, anyway. So, tonight's Monday night and then? It's Monday. We're back out Wednesday. We're back out Friday, Saturday, Sunday, you know. Are you as local this weekend, are you? Yeah. We're down the country. What is one Friday night? Oh, what do you have on Friday night? Because the man's sitting beside us. I can't remember what I'd done yesterday. Yes, it's a good job. It's a good job to manage your sitting there beside you. We've the king of the island beside us. Thomas Castello's joined us on Tubbs. And you're welcome on, too, my friends. How's it going, man? Good to be back here again, hey? It's been a few years now since you're up in Farron. It's been a few years now. I'm just thinking of sitting in the studio with a lot of different boys through the years. I'm here with Tommy and Godres Pio and Gary Gamble. And we're from the West End, which is all there, right? He's a great guy. And Pachy's, he's some great guys today. I remember coming back actually from an English tour one time from London, along with Gary Gamble and John Dole and off the cuff and a gang of us were David Craig. And Pachy Rangus, we were over in Holly Headhead and back. And he says, what time do you back it? He says, why don't you come up and do Monday night in the studio? And the ferry was late. The ferry was only to get back. But we made it anyway. We had a great nice crack here. No baller at all. Just come on and do it as you do. Just come in, don't it? So that's what it's all about. And you're busy yourself? We're busy. We're really too busy at times, you know. And we're going to chat about the big festival this weekend. Come on up, I've got to tell you, I'm bringing the line up there. And the lads are on it as well, aren't you? The lads are on it as well. I suppose that fest this weekend, you know, the reason these festivals, the reason I started these festivals maybe 10, 11 years ago was to try and get the tourism. We kind of traditionally had a couple of, you know, July and August was always July and the first two weeks in August. I was busy with the Irish College, which is a savior for the island because the fishing's all gone and different things that we kind of started doing these news weekends. And it's just a bit longer to bring tourism vital for us on the island. Very, very lucky. I suppose this weekend probably wouldn't have happened. You know, we had some great acts on. I suppose the headline act this weekend has to be the Washington donkeys, you know, probably the hottest act in the country at the moment. It's mostly by any standards, the numbers they're doing, and the guys who just, you know, they come out of here and they do this for me. And it's very great for them for doing it, you know. Well, we'll chat about it in a minute because I want to let people know about it and what so on. We'll go back to these boys. I know you said so much about the Washington donkeys and a little point in annoying these boys, like, you know what I mean? I said a gig here the night, you know what I mean? But do you do many festivals, that's... She and I, I suppose. Spilling up, yeah. I suppose Covid stopped everything, you know, we were in a good build before Covid, I suppose. And what we was going down, we was going with a four-piece or three-piece or what were you... With some pieces too. It was just kind of rising that way and then Covid just stopped everything on its head, you know. Stopped it for everybody. Of course it did. And during Covid and that, they just get involved in the online stuff. We did. We done some of the live videos, kind of, around, well, depending on what the regulations was at the time, there's some times you couldn't be together, whatever the case was. But when things saddled a wee bit, we were doing, we done some of the live videos together and homes and stuff and different things, you know. Excellent.  Wrist is up, yeah, by you. And Jimmy McCormick, the lads, and the smiley moody thing, and Keith Neary says, no more small town for them boys. And Eileen Carroll says, greetings from Kerry. Great singer, great music, love it. And Natasha Farn Voodoo. Ciaran McLaughlin says, but Natasha Farn Voodoo might need to get...  What? We need to go tonight. Oh, you have to go tonight? Oh, good stuff, Ciaran. There's some of the stuff you do when you read out. Nice thing about... Oh, but I can't... I have a lot of... A lot of times I can't see the text and I mix the words up, you know, so I'll get... But any big plans for the summer or anything, anything else? We have a couple of big things coming up, obviously, this festival coming up this weekend. It's always a great month for us to get out to the island. And you've been out before? Well, a lot of times. It's a big experience. We're not mentioning the Four Seasons. We can't tell you the Four Seasons went out. They can't mean it. No, but I can't tell you about it. We're more kind of mountain men, we're not used to the water out there. You've got that look about you, it's alright. You have to go wild for the stuff and the tenures. So the band themselves, have you recorded much as a band or have you not? Record a bit, a couple of singles in the studio. There was one there that was a cover of a Taylor Swift song. It was supposed to be released that time, like properly released before COVID. As I say, it stood everything on its head, so we're kind of working towards officially releasing it now, coming up shortly. Live album we're going to record now, and I think it's going to be in Switch Nightclub in Tjasselblené. Right. Well, that's just not fully finalised, but it's... Hopefully. You see, that's what people want to hear. It's hard to get to live. Do you write anything yourself? That's in pieces, not when released, but that'll be the way it'll be going to, hopefully, never.  You need a good knack for it. Oh, you want a good pension. Writing for yourself. Your manager could write stuff for you. He could. Now, he's recording any stuff at the minute, anything coming up that you can tell us about. We have a single coming up with a kind of a rate classified figure in the Irish scene. We just can't really say who he is yet. No, well, sure, it doesn't matter, but it's going to be a hit, don't it? I'll tell you, because the first time around, it was a hit. It's in the paper, anyway. It'll be brilliant. Well, we're not going to say too much, but... And there's people watching on the cameras that say, I can see the air eyes. There's somebody famous going to be back in... Or not so much back in this person, but he'll be in supporting. He's on us. Well, he's going to do a collab on it. We'll join in together. No, we'll say no more about it. Just shocked him when it comes out. And Kit Castellas' behaviour sounds very nice. We're looking after this month. Take something. And Makilla Armstrong, a little too... Better be ready for... Oh, sorry. Some boys, some tunes from James with my James. And Makilla said, better be ready for the first of September. Leonard and Armstrong. Yahoo! That's a wedding. Oh, is that a wedding? He's a good friend of mine. Oh, excellent, those of us. Who do you have this one here? Paul Sallies is on the sheep. Paul's the main one. He keeps the show on the road. That's the mechanic, man. Is that right now? It's the wrong mechanic. Oh, you need one, do you? And tell me this, do the weddings do you do a lot of weddings? We do, well, we do a fair amount, look. We don't want to go down the road of all weddings, but we do... What do we do a month? Four or five? Five, four or five months. You could do, you don't need all if you wanted to. Is that right? And what would you cover? What kind of music would you cover? Everything, or...? So could I say to people, it kind of depends on the crowd. You're kind of trying to judge to the crowd every night. You know, sometimes you get an older kind of a crowd, younger crowd, every next different stuff. You can only try your best, I suppose, but... No, but do you know why I remember doing the weddings with me and Marty Freel? Looks like me and Marty were doing the wedding discos. And honestly, God, you know yourselves better than I know.  And you're looking at Hatham going, jeez, what did he just come out for? But do you find that, innit? You're just betting away on the... It's been messed as well sometimes, I would say.  Any chance of some Midlands dates, lads? Midlands dates? Midlands dates, which is all that Humpmey had. Probably the well and the mortis, I suppose. Probably that, or there's a festival in Barnahar on the 5th of August, awfully. If people want more information, where can they get it? Social media, it'd be the main thing. It's Facebook, Snapchat, Instagram. Do you just come on the one for the road? Mm-hmm, it's all one for the road, it's all on the one for the road, like. Right. And then there'd be contact details, numbers, everything, all those things, right? Everything on there, right. Lorna said something was a brilliant drummer, too, and they own an old pipe band. I feel if they own an old pipe band, it'll have a big shout-out. Well, yeah, we used the drummer, you know. Started there when I was very young. All right. You pack the drums in there. Oh, God, well, I just don't have much time to do it now, but if I get time at all, I'll try and get out, you know. But... And Cairne said, some boys there, and switch nightclub, always a great night. Well, how do you say that, is something, and... That's Gasselblaine, anyway. That's Gasselblaine, all right. And the well will do fine. Paul, to the left. And the well will do fine. Paul says Paul... The well will do fine, was it? Well, it moats the well. It's a venue in Moat. Moat? Oh, I heard of it. Where's Meath? Right, tell something that Terry Trainor's listening. Good morning, Terry. Big shout-out to Terry. There you go, you see, the fan club. Well, I tell you, they're all good, right. Right, lad, no song, am I? You know, you have a contract, so you do it. I'll tell you what it'll do. I'll take an ad break and give you a chance to talk among yourselves. Do you see if he's no winner or something? And if he's two, if he's two, he will go with that. Well, learn a quick one here. Right, don't go away. One for the road, live and studio. And we're more chat coming up, and we'll tell you all about the big festival this weekend and learn more. A public interest message from Dunnegal County Council. Join Dunnegal County Museum and the county archives for two free talks examining previously unexplored aspects of Dunnegal's history. On Saturday, 13th of May at 2 p.m., Judith McCarthy, curator, will give a presentation on casualties and survivors from Dunnegal during and after the First World War. And on Wednesday, 24th of May at 7.30 p.m., Dr. Neve Brennan County Archives will give a talk on Irish Loyalist Refugees and the Irish Grants Committee from 1922 to 1929. These talks are part of Dunnegal's decade of centenaries program. For more information, contact Dunnegal County Museum at 074-91-24613 or museum at dunnegalcoco.ie. Dunnegal County Council supporting our communities and protecting our heritage. For the finishing touch, there's also a great choice of shirts, ties and fruit wear. Extra reductions for all wedding parties. At Watson Men's Wear, open seven days a week on Main Street, Dettar, Kenny. See WatsonMen'sWear.com. You're listening to Paul McDevitt. Hi, y'all. You're welcome back. We are live as always on a Monday night. And thanks for listening and tuning in. And it's always great to have people there and watching us right across the globe on our social media pages as well. And it's always a bit of a crack in the Monday night. The only thing about this camera is coming on here. People can actually see how well organized we are at Jimmy Kennedy. Whereas if people are listening, they just think, God, it's a very slick operation there. But when they watch us live, they just go, Jesus, what a pilot. God. Anyway, anyway. This now, one for the rotor was this here. And you're going to do another song for us this time. What are you going to do this time first? What do you want to do, Ray and you? You got a big year again, Joe. You got a big year again. Well, the fair thing is, because we haven't heard it in about 10 minutes. So if you're going to allow to hear one for the road, expect about 30. You'll know by the time we finish. You might even know it better than these boys. This is what he's going to do. We'll do this cover. We'll do a Taylor Swift love story. That's brilliant. When you're ready. And you're going to record this, aren't you? We'll have it recorded. Right. She's already fired out. Release this stuff. When you're ready, Doug. You might be saying, letting on, I know Taylor Swift stuff, or I would imagine it's slightly different than original. It would be. I can't even put it on straight. Do you do that many songs to you? That's kind of the main thing behind us. We do that with a lot of songs. Nearly everything would be, any covers wouldn't just be your ordinary cover. I give it a bit of a boost.  I find a lot of times when I listen to songs like that bands do. I think the cover better than the original. Now, that song there would be good for me. I wouldn't know Taylor Swift. She'll walk in here now. She'll point me to Emily. But well done on that. And listen, get it out there. And that's all about this weekend. You're appearing at the Rock on the Rock. And Thomas, tell us a bit about this now. Because this is a brilliant weekend. There's loads here. And I'm just looking. You have David Craig. You have my generation. One for the road, flair. And then you have a late disco each night. Now this package is never ending there. So take us through it from the start, if you don't mind. Yeah. Well, I suppose it's just something that we can start it back. It was maybe the year before COVID. I say it was just done with the festivals and the country fest this last year. This will be its 11th, 12th year there now. And that's kind of going down to strength. Very important, vital for the island to take so many people every year. And it's grown year on year. So we decided we'd try and maybe up the ante a bit before COVID. So we used to hire a marquee. Yes. And we found it was successful. There was just more room. Just some great venues in our moors, like the Smugglers and Air Lease and Glen Hotel and Phil Vannes and Nailies and all the bars. They're great spots. He's on the Jimmy there. He's a wee glinking his eye there for his time out in the island there. He's taking all these spots, you know. I'm going to tell you, Thomas, there's no point in me telling the lie now. There's no point in Jimmy taking the credit. I'd be out there on a heartbeat like me, tell you. And I don't have a bad night in the jet. It's an open invitation this weekend, boys. Aye. He's having an open invitation this weekend. You never know. But we just, you know, with the venues, we just, the crowds were getting that much bigger. So we started hiring the marquees out. And I kind of then thought, do you know what, I might just take a gamble. And I went last year. It's actually just a year. What, yesterday, the 6th of May last year, I bought my own marquee. Oh, you bought your own? I bought my own marquee. Good one. So we're self-sufficient there now. And yeah, I was, you know, told the bus in Dumkees and I, but I was doing last year and said, do you know what, we'll come out and we'll do the four-skiing, if you know what I'm saying. So like, forever grateful for that. And you know, they like the old crack in the ale themselves, they go out and they do the ace fishing and all that kind of stuff. And they're lucky enough, you know, they do a lot of work with them throughout the country and over in England. They're in different places with them. And they're saying, they want to come back here again this year. So it's just kind of, it's a bit like Daniel Dahl, coming back every year. They want to come back here and we're aiming. But come here, you hit the nail in the head, aren't they? Or flat out, they are in the big name, like I don't know. It's massive, massive. Like they did in the LEC then, clearly there last year. There's 4,000 people at the gig. 4,000 people, like it's, you know, they're doing our, like the next gig after our morning next week and they're heading for Australia. They're doing nine, 10 gigs in Australia. Gee. Yeah, it's. God, this is amazing stuff.  There's no nonsense. No. Not like, he's two boys, look. These boys, not the hawklers.  But you know, you were just talking earlier on, they're about Monaghan men and Talone men. Aye. I'm just thinking, I'm the only Donegal man in here in the Donegal. Just you're all right, mate. I should be worried about that. You're saving up here, young fella. Let me tell you. I know that. Nah, you're dead on. But it. Come here. This is a big thing you're taking on, Tom. So no point in saying it's not. This is a massive thing. And fair of say to you because, and like it's a gamble. You have two nights on here. Yeah. And you have accommodation packages and everything. So what's, what's the general justice? Is there a, is there a ticket only thing? We're, we're, we're ticket only because I, um, like I had, it's one thing building the marquee, but then you have your license and your regulations.  So actually, for, I'm in court tomorrow.  He has to, the station certs, you have to all the different certs, firing, which is all the different stuff. Yes. Once he, once he's happy then, they grant the license then. So we have an exemption. We run late. We run the half two each night. Right. Um, Seamus Boyle there, the Armour ferry. He's running late ferry every night then. Good night. Because we'll be catering maybe for 260, 270 people on the island for the weekend. And then there's so much more come across in the ferry each night. And can you come across like that? Just as long as it's booked, because we're like the ferry crew takes a minute at a time. Yes. And obviously I have a certain number. I can be put into the marquee at a time. Yes. So that's why we can run as a ticket event only. I'm firing to marquee from the... It's actually with that Armour holiday village. Oh yes, yes. It's probably about half a mile. We were up there before. Yeah, half a mile. So it's grand. It's, you know, it's a lot of work to set up. And it's only once it's set up then, it's to come down then again, wait away next week because we're heading then. We have another festival. We started another festival then, myself and the gentleman, the local Keith Neary. So we're starting to think, we have a thing starting this year called Town Festa Guys. We're actually on that festival as well. Where's that on? In Dunlowe. That's the June Bank holiday weekend. True. So we're heading down there then. We're heading out there. So it has to come down. We have to start the whole process all over again in Dunlowe for the June Bank holiday. It's both Derek Ryan's doing that one, Mark McCabe, the lads here, Gary Og. So we're doing three days. We're actually doing four days and three nights of that once at Town Festa. There's three local charities benefiting from it. One of them. And then when that's all over, we're heading for, we're heading for Derry Gondley, for the GA Club in Derry Gondley up there. And then we're back then again to Dunlowe for the very thing in Dunlowe. Massive, a lot of actually end up for Dunlowe then. And then we're back to Ironmore. We actually have two ends within six days in the marquee in Ironmore. And then we're into the Countryfest, which is August. So it's all going. We're trying to keep everything else going in the meantime as well, you know? But come here. We'll just move from that. We'll get back to you. We'll be coming back. You're all right, don't worry.  The 19th and 20th of August, you have the Ironmore Countryfest. And there's a crack and lineup you have there again. Yeah, it's gone two nights. Yeah, two nights. It's the same again, just with Country Music. We're very lucky. We have something like this, I think it's the 11th, the 12th year this year. People that just come back every... I have people that come to that festival from the first year. You know, what I mean when I started that, people said, oh, that'll never work for you. It'll never work. But it's just gone from stand to stand. You've proved them wrong. There's a young fella never heard of it before, David James. He's new up and coming. Yeah, wonder who's he? Now he's doing really good. He's flying. He's actually waiting out. He's waiting out. He's fine there, so he is. He is. I heard about that. I don't know. Wonder what he did. Will he take his back anything? He mightn't come back. They started hearing his voice over there. They mightn't let him back. Jimmy Buckley and Lovie Douglas. Of course, good old buddy David Craig in the band. And they're there this weekend as well. They're out and all, David's out and all. Real good guy, David. And Jesus, he's so popular here in Nulligall and Bortherfield. But he's a great singer. He's a good all-round singer. He can sing a ballad or a country or... Aye, we'll have to get him up again some Monday night. But come here, as I say, people want information now on these gigs and the weekend gig. There's very little left now for this weekend now, but to say we have small amount of availability left is just TC promotions there on Facebook or give us a call. The numbers are on there. Or my own numbers.<PHONE_NUMBER>. But we'll not be hard to track down. One of the easier people is supposed to be to track down for all maybe the right reasons or the wrong reasons.  And fully licensed, lit bar and food served on. More than you want. Yeah, it goes. Just regarding the guys, they just want maybe just some of their bigger gigs that's coming off there. Yes, yes. They've got better memory of some of the gigs, the guys. The guys have a big one in them pool and cabin. They were actually there on St Patrick's night and massive number to close the doors on her. So they're back now on the 10th of June and they're coming back here then again for the Donegal Rally on the Friday and the Sunday and the Monday. Big one. For the Rally as well. Big one. And they have Castle Rainy as well, Switch. And we're done a UK tour. We're actually in the UK. We're just back in the UK about four weeks. Of course, there'll be that now. I think it's moving fast. Four weeks. Four weeks from all many UK tours. Together we've done the bigger of the places that's left. So many places have closed. All these areas. Places that were so many that one time in England are gone. But we've done Martins in Birmingham, which is in the Irish centre of Birmingham, really. All the Voss and Dunkleys too, that all folked up. The Tumble and Paddy's. All that genre of music does it. And then the bands that's based in the UK would do it. So we're done there on the Friday night. And we had a fantastic gig there. And we headed down then to probably the biggest venue in London for the Irish music, the Cladding Ring. The guy from the Alice Oneset. From Clare, sorry. And we were there on the Saturday night. We had a massive gig there. We closed the door of the Cladding Ring. The music's still alive and well in the UK. Very much so, yeah. Irish music. Bring it on. So we'd actually left there then, but we could load it up. We'd left down to London from Birmingham. We set up, we left London at four o'clock in the morning. Straight up to Liverpool. A couple of hours' gigs. We had to bed for a couple of hours. And then we played Molly and the Loans. Liverpool on Sunday night. So we're heading back over now again. There's just the phone is just up. And one of these guys coming back. They're coming back. So we're heading back over now. We're doing the Crack in the Creek Festival in Manchester. And we're doing the Greenford Show as well in London. This year as well. So a lot of big work these guys. I think they were really going to go well. But it's just hard maybe to move the fact of so many commitments as a two piece to move it into the four or five piece. And I really wasn't that, had that much time to do what we were going to do. But I think, you know, these guys deserve a wee bit of help, but I think they have a good future. So that's why I want to low on behind them do what I can do for them. Good man. Very pretty. Well, lads, listen. You've had a wee break here. I'm sure we could hear the Galway girl again. Maybe move us on a final track for us if you still mind. You can do it, no problem. What are you going to do for us this time? I'll be here. You're not joking, are you? Shall we lose the hills of Donegal? I'll be right back. Ah, shall we not? Shall we not? I'll pay you up here. This is one for the road and we're going to do the hills of Donegal. Listen, Fenton and Ryan, thank you very much indeed for enjoying the Crackbees. Thanks for coming with us.  It's a busy one to be perfectly honest with. I think it's going to even get busier for you. So well done on that. Keep doing what you're doing and make good music and enjoy it. That's the main thing. Enjoy it, you know. Have the crack. And there are nine more this weekend for the Rock at the Rock and along with the Whistlin' Dunkeys and David Craig and My Generation and Flare. Brilliant, well done. And best wishes, guys, and to Thomas for great promotion and organisation of events from Kaz Haunter. Hello, Kaz. So, well done. And, Tubs, the best of luck to yourself too because you bring a good music, you're bringing a custom, you're bringing, I'm sure, you know, much needed money after and the local economy and helping it out. So, well done to you. Honestly, it was a couple of years there now. We didn't know what road we were going. And you keep in touch with us too, my friend. Well, listen, I want to thank yourself and Jimmy for taking us on here. I spoke to Jimmy a couple of weeks ago and, you know, it's so helpful. I think what you used to for the live music is important. Maybe it's what I'm doing out in the road and... Well, I'll be enjoying a crack. He's giving people, you know, somewhere to broadcast their stuff on this. Well, that's what we're for. And as I say, we always say the music scene's great at the minute and for them, a couple of years, we were away. We must have badly, so it's great that it's back in Long Main State. And continue success. Thank you very much. That's one for the road. Thank you. That's right. And Thomas Castello on TC Promotions. This is a brand-new song from our good friend George Hutton and Ava Reddy who just released it on their social. Have a listen to this.


It's pretty hard to present after Stefan because he showed real magic and I cannot promise anything comparable to that. So please be accommodating for what I can do. This presentation is first topic on this, first talk on this topic was made at EclipseCon in North America by Stefan Ksenis and me. And unfortunately Stefan could not come to this conference, so I am presenting for him his primary developer on this faster index for Java, which we are talking about. So what is this thing for? There is a problem. My job, our team is responsible for providing support to Google engineers who use Eclipse. Providing support with Eclipse, making sure that they can use Eclipse successfully and be productive with it in their daily job. And number one complaint we hear from our customers or Google engineers is that Eclipse is slow and not only it's slow, it's sometimes completely freezes the UI and you don't even have an idea what's going on. We have an independent way to verify these claims. We use UI responsiveness monitoring to record all UI freezes. They are centrally logged and we can analyze, get stats of these freezes and have dashboards to show how these freezes, how bad they are, cumulative time, work time wasted across Google due to these freezes and so forth. And the damage of course is much higher than just time UI freezes because when your tool is not responsive, it really disturbs you and you switch to reading emails and waste 10 times more time. So what we saw in the pattern of these freezes is that although many places in Eclipse contribute, JDT is the number one source. And among sources that can be attributed to JDT, the majority of the freezes are related to reading of jar files. And of course when there are libraries on the class path, they have to be read so ID can understand the code that source code depends upon. But each jar file reading is not particularly fast and what is really bad is that JDT does that reading in response to user actions. For example, I can ask for content assist and then I decide, oh, I need to go read some jars to figure out what to show in the content assist pop-up. And the problem really gets worse when the number of jar files on the class path is large and it's a typical Google environment, it is very large. It's measured in thousands and would be over 10,000 jars on the class path. Another problem that we want to solve is that existing index used in JDT often gets corrupted for various reasons like this. Maybe JDT got shut down unexpectedly in an orderly fashion like by Q9 or something else. But what is problematic really is that when the index gets corrupted, what ID starts behaving in kind of degraded functionality. Without telling the user that functionality is actually degraded. So you can have, for example, look at call hierarchy that would missing some call points. You can do refactoring that will not change every place that it's supposed to change. Without telling you that actually something is going wrong. So current way index corruption happens is that when index is corrupted, it says, oh, I just don't know about it without raising any errors. So we want to solve two problems or we happen to work on something that is capable of solving two problems, the performance problem and the corruption problem. So what is problem really unique to Google? Is it just something that would benefit Google engineers and nobody else? The answer is no. This is from automatic data collection about UI freezes that is enabled by default in Eclipse for committers. And we see that number one, it is by number of reporters, source of UI freezes. This is in content assist, relatively short freeze, but it's in this particular zip file read method. You can recognize that it's actually reading Java. So hopefully when we solve these problems, it will benefit not just Google engineers, but everybody else. So let's now see the problem for ourselves. I'll demonstrate it on an example that does not require thousands of jar files. In fact, this is the simplest of all Java projects possible. This is a Hello World project with a single class, Hello World. And what we'll do on it, we'll look at type hierarchy of object. So we open object class and we'll press F4. So there is some progress, but what actually happens is the UI is frozen. So it showed progress dialogue. The intention I guess was to show that the operation is lengthy, but that progress dialogue only showed the small fraction of the operation and the rest is just UI freezes. You'll have to wait for a few more seconds until that finishes finally. Once it does, we can look here in the arrow log. We see stack traces captured during that UI freeze. So this is not particularly interesting, something UI related. But here you see a zip file open at the top of the stack. This is the same thing of jar file, again, again, and again. So this is, of course, kind of just sampling. It's not even a profiler, but we get an idea that probably at least 80% of the time is spent in jar file reading. In reality, the number is even higher. So how do we solve this problem? The solution that we are developing was inspired by the experience we've had with CDT. Over the years, CDT borrowed a lot of code from JDT. A lot of CDT functionality was developed by taking JDT code, copying and pasting, and then modifying it so that it works with C++, and that is responsible for a bunch of significant fractures of code in CDT. So now it's time to pay our debt back. So what we've noticed in CDT is that although C++ is a more complex language and typically translates into more work that has to be done for anything like content assist, if actually it was not, most operations in CDT, and I guess the most important in terms of response time is content assist, are faster in CDT than in JDT. Similarly, in CDT, we have content assist that is longer than 200 milliseconds. So how does CDT achieve that? It uses a comprehensive index that unlike existing JDT indices, not just contains kind of information for lookups. It holds complete model of the code, not quite AST, but pretty detailed model of the code. And how is CDT capable of doing that? Code is huge, the model is even bigger, cannot fit in memory. The model is stored on disk in a database and parts of it are paged from disk to RAM lazily. And that technology that was originally developed by Doug Schieffer, who was for many years project lead on CDT, that technology served us well for 10 years, it's very mature, and we know it works. So we want to take that technology, adapt it to JDT needs, and solve once and for all this problem with jar file reading in response to user actions. So what are our requirements to this new interface? We want to completely eliminate jar file reading in a synchronous way for common operations. We want to scale well with large number of jars, of course, because that's our primary problem at Google. We want index to be updated incrementally. So when something small changes, we don't want to rebuild the whole index because it will take long time. We want to time taken for update to be proportional to the size of the change. Index has to be usable during updates because it will be updating from time to time when things change. Updates of the index should not prevent whoever needs information from the index from using it, because otherwise we will get UI freezes from different source again. Read latency, let me explain what I mean by read latency. Since index is going to use naturally single writer multiple readers model of concurrency, when you need to read the index, you have to acquire read log. What I mean by read latency is time it takes you to acquire the log. Then you can start actually reading, and of course you also need time to read information that is proportional more or less to the amount information you have to read. I don't count that in read latency. Read latency, what they call it, is just initial wait time that adds to read time. So we want that read latency to be definitely not worse than 200 milliseconds. If it's under 16 milliseconds, which is kind of time between frames with 60 hertz frequency, that would be ideal. For the new index, we want automatic corruption detection so that problems don't go unnoticed. And ideally we also want index to recover from corruption. So how do we design that? We decided to use one big global database per workspace. This is different from CDT. In CDT actually there is a separate database per project. But we decided to go with a single database because we want faster searches. If you have multiple databases, you can speed up searches, make them log in typically inside a single database. But if you have multiple databases, you would have to then try them in order. But if you have a single database, you can have just log in behavior. Another very important requirement is that we don't want to rebuild our database when class pass changes. We may have to update our database. For example, if class pass changes in a way that new classes are added or jar files are added, of course we need to index those. But we don't want to rebuild it when, let's say, one jar file added on top of 1000, we don't want to rebuild the whole thing. So we want some kind of stability. This is intended for indexing jar files and class files, not source files, really. So the database that we are using, like in CDT, is a network database. This is not a relational database. We are not using any SQL to access it. Network databases were popular, I guess, I don't know, maybe 25 years ago or so. Then technology kind of got into shadows, but it's still a useful technology. It's actually a very simple one. And what that database contains, it contains a graph of interconnected objects. And the way we build this graph, we want every reference to be bidirectional. The reason for references to be bidirectional is that in CDT we actually don't have that. And we learn that lesson when you don't have fully bidirectional references, deleting something that has a large number of incoming references becomes very expensive operation. Of course, since we are dealing with the database on disk, to have fast access, it's very important to have cache. So database at the lowest level is a virtual memory system, organized into pages on disk, lives in a single file. And we have page cache, where access it's LRU cache, where pages read from the disk stay for a while, and you can access them in that cache without reading them from disk again. And to the callers, the database exposes a bunch of these accessor objects, and accessor objects are backed by the data in the database. So basically they point to the page or some piece of the page and provide its information from there. Now, what these accessor objects do at least some of them, they are closely related to Java model objects. Probably these type names, iBinary type, binary method, binary field, don't tell you much unless you are a JDT committer. These are the interfaces used by model in JDT, and some of the accessor objects implemented those same interfaces, so that these accessor objects can be used in place of existing model objects. The best of JDT sees that kind of as an index model these objects, and how they do these objects work. They typically contain the only instance field, which is a point database offset. Long pointing to a location in the database, and that's the only field of any of these objects. And they, of course, as interface prescribes contain bunch of getters and setters and maybe some other logic. And getters and setters, getters read from the database and setters write to the database. These objects are lightweight, because they only have a single field, and they are disposable. So if you have a way to get, if you know the database offset, you can always create a new object. You don't need to keep the old one around. You create a new object, since it points to the same location in the database, it will be equivalent to any other object pointing to that location. This is to give you an idea how code describing these objects, active classes for these objects, looks like. So the major part of this code is a bunch of statics, static declarations for name and age. So this is an example, so it has nothing to do to JDT. So we created the object that has a string name and age. So these are classes of objects that in database. This defines basically the layout of these objects, and you can have relationships. So string is stored, for example, in a separate location in the database, so it creates a relationship there. This is how database is constructed. Object is constructed. You pass it to the database and offset, and this is how getters and setters look. They read, they write and read from the database. Why does this getName method return I string instead of string? So setter takes string, but getter returns I string. This is for performance reasons. I string is database string that is backed also by the database, so not all information has to be in memory, or actually no information has to be in memory when it's created originally. But when you access it, let's suppose you have a long string. Then, and you want to compare two strings. You really don't need to read everything from the database to do your comparison. You start comparison from the beginning, and you retrieve as much information from the disk as you need, and only if the strings are equal to the very end or to the very last piece that we retrieve, then we have to retrieve all the pieces from the database. But if not, we can stop earlier even without retrieving all the information. Corruption detection. The primary danger of corruption happens if we have to write pages back to disk because we are modifying them in memory cache, and then we have to flash that cache. The primary source of corruption is incomplete flash. So maybe Eclipse died in the middle of a flash. All pages could be written back to disk, and that creates inconsistent state when next time we read these pages, they will be hanging references and other bad stuff. And we don't want to learn about that kind of late and unspecified manner. We want to know for sure that we were able to write all pages successfully or not when we actually read things. So we do that by having a flag that we flipped on the first page. We flip that flag when we start flashing, and we flip it back when we end flashing. So it's a very simple primitive mechanism. We tried using checksums on the pages, but unfortunately that introduces a slight but noticeable performance overhead that we don't want to infer. So we are not, for example, going to catch corruption due to bad sectors on disk undetected by our system. We are only going to catch incomplete flashes. So we still need a mechanism to catch situations where maybe database got corrupted due to software bugs, for example. So maybe we screwed up and wrote something inconsistent. We don't want these errors to go unnoticed. We want to know about them and recover or minimize damage at least. So the policy that we decided to follow is to throw runtime exception. So when we detect some inconsistency, so we expected something and we didn't get that and got something that we know cannot happen if everything goes right. Then we throw runtime exception. That exception will propagate and will be visible to the user so current operation will fail. But it will also, so we will notify the user that way. And we will also use that exception to actually start process of rebuilding the index. Since we don't know actually what got corrupted and how it's too dangerous to make guesses here, the safest thing to do is to just trigger full index rebuild. So at least after initial kind of unpleasant thing where user tried to do something and it failed, at least after indexing finishes user will be able to continue working. So relationships between objects, edges of the object graph are represented by smart pointers. And what I mean by smart is that they enforce referential integrity. If for example you try to remove an object, it does not leave behind incoming references. Instead it modifies these edges and there are different styles of these pointers or different styles of edges with different behaviors. It can be cascade delete or it can be just removal of an edge and modifying reference count on the other side. What bidirectional references mean, so kind of our main motivation was to facilitate delete. But what they also mean that index contains a lot of knowledge. For example, and you don't need to search anything, it's just there. The fact that every variable knows its class also means that each class knows every single variable of that class. And every Java class has a list of subclasses of course. But it also, yeah, so normal relationship is that class knows what it extends and what interfaces it implements. But opposite relationship is actually you know all your subclass. We were talking that during updates the index should still be usable. In order to achieve that in single writer, multiple readers concurrency model, we have to make sure that periods of time when write lock is held are very, very short. Because these periods determine how long readers have to wait before they can start reading if they didn't hold the lock before. So we need to write to the index in very small increments. To achieve that, when we make an update, when we write new information, let's say some jar changed on disk. And it was in the index before, but it changed on disk. So we update what is known about the jar in the index. We keep all the information about that jar while writing new information. We have markers so that readers won't see new information until we flip the switch. They will still be getting old information. And when we are done with the new one, we flip the switch again. And new information about the new version of the jar file becomes visible to the users. And when we write information to the index for the new jar, we actually do it file by class by class. And writing for the one big jar would take a long time. But for a single class, it's pretty short, pretty quick. So our measurement showed that index is rarely blocked for more than two milliseconds at a time. Our goal was ideal goal was 16 milliseconds and actually we can achieve even better. So this is an illustration of how index update happens and when it's available for reading right, or not available for reading during update. So first thing we do, we flip the switch that we are going to update. We are going to update the jar and the jar is currently being indexed. So there is some preparatory work we need to do in the index. And during that work, we need to block it for reading. Then we write information about classes in the jar one by one. I get to why actually there is so much green in between and only narrow orange strips here. And then we flip the switch to actually make the new version of the jar visible to the readers. And after that, so from readers and point update has finished, but index still has some work to do. It has to delete information related to the previous version of the jar and it does it after flipping the switch. Again, we don't want to do it in a single, under the single right lock. We want to allow readers to get in and start reading in between. So we do it currently class by class, but maybe we can get slightly better performance. We need to benchmark that by actually grouping, introducing some grouping there and let's say do it 10 classes under single lock or not. Yeah, in one thing I forgot to mention that in this one single writer multiple reader concurrency model readers are given preference. Why we are giving readers preference because readers is likely the code that is responding to user actions. So that's why we are giving readers preference over writer and writer is the only one it's whoever the code the indexer the code that updates the index. So this is how update related to a single file looks like. First of all, we need to read by bytecode of class from the jar that of course is an I operation takes time. Then we need to parse that bytecode understand what's in there that takes significant most of the time that we need to write it to the index. This is where we need to acquire right lock during the right operation, but that right operation is pretty quick compared to reading from jar and interpreting. Once we have written to disk we actually when we read a right to index we actually write to page cash. So there is no writing to physical disk happening at that time. And then we release the right lock and then page cash is actually flush to disk to make sure that results are stored and would not be lost. So because index objects implement interfaces of Java model objects, we hope to almost completely replace existing cash in Java model manager. Java model manager place where kind of currently holds model objects in JDT form. But there are interesting problems there. Many colors, many a lot of code that interacts with the Java model expects the data there to be completely up to date with respect to state of file on disks. But index is updated asynchronously. So if we want to replace these model objects with model with objects backed by the index, how do we deal with that kind of synchronous and asynchronous model? How do we kind of translate a synchronous behavior of the index and its objects into synchronous expectations of colors? So let's consider the following scenario. Class file changes on disk and somebody some color immediately asks index for binary type corresponding to the change class. And we know that that color actually expects up to date or at least we suspect that that color expects up to date results. We cannot return out of date information because it would be incorrect. And actually we cannot wait for the index to waiting to finish updating before we return that information. Would you do know why? Why we cannot wait for the index? Because that wait in order to update the index we will need to acquire a right look. But readers we decided previously take precedence of a writer. So the writer can be start. So we may have to, the update may have to wait for other read operations that can be lengthy operations. So we cannot do that because otherwise it would introduce UI freezes again. How do we solve it? We have not solved it yet, but this is our plan for solving it. So when somebody asks index for a project for an object. We keep track of time stamps of information in the index what it corresponded to when it was written there. And we compare it to the actual time stamp of the file in this let's say that class file came from a jar file. We compare time stamps. We actually do IO to do that at that moment but it's a very cheap IO. And if we determine that we don't have up to date information what we would do in this case we would read data from the jar file synchronously. We would then create an object from that information that would be backed by bytes of the class that we read. And the indexer will then use that previously read information to actually update the index. But that will be done asynchronously with respect to returning the object to the caller. But the object once the indexer is done indexing will internally morph into being backed by the index as opposed to being backed by that byte information. Corresponding to the class. So that's our plan. So how is the index agonized and what it consists of? There are three sections in the index. One is singleton data that is always present. We have type name B3 actually there are two of them. One is for fully qualified names and another one for just non-qualified names. There are some things in global state like time stamp of the last update and version and what not. There is B3 containing references to all files that are indexed. It could be class files, jar files and in future actually also Java source files. And then there is hierarchical data. So jar contains classes, classes contain methods, fields and so forth. In order to be class path independent when we connect two classes, let's say one class extends another class, we don't connect these objects directly to each other because it's possible that there are multiple versions of the same class in different jars. Of course only the first one wins at type resolution time, whoever is first on the class path, but on the class path there could be multiple versions. In order to get class path independence, we delay that until the resolution time when we actually apply class path as a filter. So to make sure that index information has that class path independence, we introduce intermediate objects which are here type ID and method ID. So basically from class we point to type ID which is effectively fully qualified name of that class with the reference count there. And that is connected to type name B3. So if you for example look for a class, you start from type name B3, you do search there, then you go to type ID. Type ID contains references to every class that matches that fully qualified name, they can be in different jars. Then, so you get multiple results at that point. Then you filter those results based on the class path and get the one that is first on the class path. This is how resolution works using class path at reading time. So let's take a look at how this type hierarchy that we saw problem with, how it works with the new index. So this is the version with the new index of same dialogue. There was actually still some UI freeze, but as we can see that UI freeze is only two seconds instead of, how much it was last time, 30 something, right? Yes, 33 last time. So from 33 down to 2. And if we look inside, we can actually see that this is all just, I guess only the last sample relates to something index related. All four first samples were UI stuff. So mostly time is spent in updating the tree widget because it's a massive tree widget. And it takes around two seconds to actually create all the nodes in that widget. Index is really, of course we cannot judge based on just one single sample, but index actually here takes, I think, maybe 300 milliseconds. So what we got is for total time that displaying of type hierarchy of object, we are down from 37 seconds to 4. And the remaining four seconds is not index is only responsible for about half of that. And that is before UI freeze when actually progress was properly shown. These are some stats that we have for how long indexing takes. These numbers may change as we add more information to the index. Yeah, the way index is designed, it's very easy to change format. You can always add more fields to these objects. And there is a versioning scheme that would detect that format has changed. And it would discard previously created index and re-index everything again. So that's why we are not putting information there that we don't yet use. So we add more information as we go. As whoever consumes information from the index needs it. For the time being, we are going to run new and old index in parallel because a lot of functionality in JDT has not been ported to use the new index, so it still relies on the old one. We have a mechanism that both can work together. Eventually, all the index should go because, for example, to achieve the goal, even in situations when all the index is not critical in terms of performance, we want to solve the corruption detection problem and in order to achieve that, we need to get rid of the old index. But that is pretty far away. Code for the new index and type hierarchy based on it and we also adopted it in very few places in JDT so far. The code currently lives in GitHub repository. The reason it hasn't been merged into primary JDT repository is that we still have few regression tests that are failing. When new index is enabled, then we are working on it, so we expect that to be done pretty soon in the next 2-3 weeks. Then the real work starts. Then we need to do gigantic, massive work of replacing an engine on a plane in flight. Adapting index in every place pretty much in JDT. These are the places that used the old index and places that didn't use the old index before because the new index contains much more information than the old one and therefore can be used to improve performance in a lot more places. There are interesting problems with that adaptation. Java model manager that currently caches or holds the model objects actually gets in the way of efficiency when using the new index because performance when using the new index in large degree comes from lazily reading data from disk. But Java model manager assumes that reading is very slow and optimized for that slow reading by reading it in bulk and eagerly reading. But if you eagerly read from the new index, you lose almost all of the advantage. So we really need to change how model works in Java model manager so that it also works in the lazy manner. Delayed... Oh, we are on time. Oh, we are good. I think we are. We have plenty of time. Great. Model data events. We want to eliminate situations when something changes on disk and that creates an event and whoever listens to that event actually immediately goes and asks the index, oh, what changed? Give me the new object. Because that would mean synchronous reading that would be just as bad as we had before. So we don't really want our changes on disk to be announced to model delta listeners. We don't want them to be announced right away. We want, in most cases, we want to index first, update the index, and then produce that event because we are not noticing the changes on disk instantly anyway. So adding a delay there should not be a problem at least it's not a correctness problem. But kind of whenever you change event ordering it's tricky and this is no exception. We made one attempt, showed some problems and we decided that we need first to merge into primary git repository so that we can get to incremental model development before actually sorting out these problems that are not that easy. Of course we will need Java 9 support but I expect to be almost no brainer and of course adopting a huge bulk of JDT code to take advantage of the new index. Another thing that now I'm switching to really far future there will be hopefully such a day then we can start thinking about adding new functionality to JDT that was not even possible before for performance reasons. Content assist with spelling corrections. We can easily add more information to the index to make kind of this fuzzy content assist fast and kind of opportunities are numerous and they're just limited by our imagination of what can be done. These are some references that you can use. Development is done in the open. There is a master bug that is referenced here. Kind of individual problems and pieces of the puzzle are all described in separate bugs and this trio of bugs is interconnected. There is a design doc that is referenced from the master bug so the only link that if you are interested is really the master bug number. Everything is referenced from the questions. Dany, you have something? So how that flag that used to indicate that we are changing the index where it's stored? It's just a transient state in memory. There is no need to store it persistently. The only thing that has to be stored persistently is the flag that indicates that flashing of pages to disk is in progress because we want to detect that it hasn't finished actually successfully if the program dies. Other transient states like we are in the process of updating the JAR file don't have to be stored persistently because if application dies then in worst case what we can get we can lose some space in the index so it's not that critical and actually it's not that hard to write code to recover that space. Okay, great.


Hi there, I'm Sandi Olnok, artist and paper crafter here on YouTube and I want you to give me your input on whether this is a big snail or whether it's a normal size snail who has a little palm tree because I'm not sure which it is but these are not really appropriately sized for each other but I think it's cute anyway so I am coloring it mostly because I want to let you know that Purple Onion Designs has their annual sale. They do this big sale so you're going to want to check it out. Links in the doobly-doo if you want to go check out some of the images. There's the cute snail, they had the whole release that I did recently, I'll put a link at the end of this video. I did a video talking about the rule of thirds and that was a very popular one. You guys liked it so I will link that in case you missed it and it has a lot of the new release in it but Stacy Yakula or Yakula, I'm not sure how you pronounce it. These are amazingly cute designs and I always like working with her stamps so thank you to Michelle the owner of Purple Onion for sending them to me so I can play with some and I've got this little snail and a little palm tree and some sand and I'm just going to color the three items together and try to find a way to tie them together. That's one of the things when people are making scenes, tying things together so that they look like they fit even though the palm tree is outsized or undersized should I say maybe the snail is the thing that's outsized. When one thing is a wrong size it doesn't matter as much if they feel like they're nestled together so with this one I've got the sand that's in the foreground so I masked out that whole line of sand before stamping the other thing so that they would feel like they are in the sand not sitting just floating on top of it which is one of the things that lots of folks do but then I'm also tying them together in the center I'm tying the objects together in the middle. My tree is not perfectly centered so it feels like it's got some interest in the layout and it's a little bit low on the horizon it's not right smack dab in the middle it's not all the way down at the bottom the cinnamon is down at the bottom so it lifts everything else up a little bit and the focal point is right there in the center so I'm gonna finish coloring up my tree and I'm gonna do a couple different browns here and use just a little bit of texturizing of the bark in the palm tree and not really worry a whole lot about the shading I just want to give it a little bit of other color and then let a little bit of the bark show through see how I'm letting some of the lighter stuff come through and more in some areas than in others doesn't have to be even because mother nature is not even and now I'm gonna throw the sand across here I'm using my e4s which are a pretty good combination of sand colors there's a there's a 4-4 that's a little on the dark side so if you have wet sand that's a good color for it but I'm gonna start with the 4-3 I'll jump down to the 4-2 and then the 4-1 you could even go down to a 4-0 if you really want to blend it out to white but the 4-1 is usually about enough I'm starting off with my darker colors at the top working toward lighter at the bottom which is in contrast to what you would think when we're doing normal blending because normally the darker colors are at the bottom if I wanted to anchor this with really dark colors then that's how I would do it but in this case I want to fade it out toward that sentiment down the bottom so I want the darker colors to be toward the center and the top of the whole sand area so that it ends up kind of pushing the eye into the scene into where our little snail is sitting and I'm gonna tie that together even further when I get to that grasses because even though beaches don't have much in the way of grasses a lot of them have some really dry beach grasses and I'm going to really make some dark areas in the center of the image and see that dark from that that green grass it's gonna start to tie the dark of the tree to the dark of the snail and I'm going to go in with an even darker color my darker of the the two YGs that I used in the top and I'm going to add even more right in that center point see how that draws your eye into it it makes that that whole scene kind of tie together they're not disparate images they're linked to each other in some way so that is one of the little tricks to making a scene work so that it feels like it's one scene rather than an image here an image there and they're not all part of one thing my last little tidbit is going to be to add some sand to some sand to the sand so I'm gonna add some white dots using a gel pen I am a big fan of the Signo white gel pen you probably know that by now but some people don't find that it works for them I never have figured out in all these years what is it that causes it to work for some people and not work for others but I'm just adding my highlights with mine in order to add just a little bit of sparkle and pop to the image itself the finished card all I did was add it to a layer of black and then pop that with some dimensional adhesive onto a desert storm card base which worked really well in terms of the color of the sand really pulled that out and that's about it for this card nice and simple quick and easy since it's summer breezy there is a sale going on at purple onion designs so go check them out during August and see what they have got for you percentage wise etc details are on their website and I will talk to you guys later have an awesome day be sure to subscribe like favorite share all that good stuff and I'll see you later