This is a pipette on the Cambodian side of the border with Thailand where 25,000 people have come across in the last couple of days. About 30,000 people all together are expected to have crossed over by the end of today. They're being taken out by truck and by buses organised by IOM and the authorities. There's a huge amount of people here now. The weather is turning very bad and while at the moment there are no huge problems except for logistical ones it does seem the situation is getting more and more serious as more people come across the border from Thailand. There's water and food being provided by the Red Cross and other organisations here. IOM is running trucks, minibuses to get people away from the border where there's huge congestion and trying to get people to their home places as quickly as possible.


And in sports, Andy Moore is not supportive of players from Russia and Belarus being banned from the well-being done, but says there is no right answer on the issue. Players from two countries cannot play this year's Grand Slam because of Russia's invasion of Ukraine. The All England Lawn Tennis Club also banned Russia and Belarusian players from other Ukraine grassroot court tournament, meanwhile Rafael Nadell called the ban very unfair. Belarusian players were included in the ban because the country has supported Russia's military action in Ukraine.


Hey guys, it's Nate, AKA the Foot Accountant. Welcome back to the channel. We are now only one day away from foot birthday. The leaks are flowing, the information is coming, and we gotta talk about how this Foot Birthday promo is looking because there are some cards coming that look absolutely nuts. And EA looked like they're doing the business with some of these upgrades, but is there actually a little bit of a lack of hype for some of these other cards in other areas? That's what I wanna talk about today in this video and how that might impact the market over the coming days because the market still is kinda just staying at the same level. Since we had the crazy crash earlier in the week, it's been pretty even on most cards. So we'll talk about that, and of course today is the last day of Foot Ballers with the big Edison available in objectives. We'll look at that and what that means for the end of the Foot Ballers promo, and talk about the potential for a fodder investment on one specific area of the market because there are gonna be a lot of SBCs still sticking around of a higher rated quality throughout this next Foot Birthday promo. So we're gonna take a look at all that more in today's video. If you're excited for it, and this video helps you at all today, hit the thumbs up on it, and subscribe if you're new. Let's start with a bit of a content overview like we usually do yesterday, pretty quiet day. We had the Madawake SBC, of course, tying into the objective, in my opinion, might be the worst one out of the sets of the place to style objectives, but of course, we're getting it done. It was a cheap SBC to do 82 squad and I think an 84 in inform. So really easy to do and it's really easy to get his upgraded card too. Just nothing super special with this, four star, four star, medium low, decent dribbling stats and he's got pace. But nothing super crazy. We did have Ramadan objective and we had the Silver Stars for a Podolski, which was really dope, big fan of that Podolski. And I like that EA is not making us play through the entirety of Silver Stars to get a token. Same thing with the first owner Fiesta, right? Like I haven't even finished this, I might, but you only have to win one game to get that swaps token. So we had our fifth token yesterday dropped in the win three segment of Silver Stars for a pretty nice Podolski, a kind of a legend of foot birthday in his own right. Had that card a couple of years ago during foot birthday that was absolutely cracked. So we had all of that yesterday and a team of the week that, you know, even though EA gifted out weekend league qualification for this weekend league, I mean, there's definitely not a lot of demand for the team of the week to get in a red picks. This is the best card in team of the week, Frankie DeYoung, 119,000 coins. That is underwhelming to say the least, but it is what it is. You can still get nice rewards from week in league with the player picks and stuff like that, just not so much with the reds. There's a couple of nice cards in team of the week, but it's not like a couple of previous weeks we've had where we've had some big names in it. So pretty quiet day yesterday. Today might be kind of quiet too, except for the Edison. We'll talk about that in a bit, but let's talk about foot birthday. Now the official card design has been added into the game. It is in here. I don't have the foot birthday icon design as of yet, but we do have a foot birthday card design and it sounds like there might be multiple versions of this as we look at some of the leaks and talk about what foot birthday looks like. We got a brand new loading screen yesterday with more players on it. EA has, this is like kind of crazy from EA. They dropped the first loading screen on Monday, showing icon and the regular foot birthday card design. And then yesterday and Tuesday, Tuesday and Wednesday, both we had updates to the loading screen showing us new cards, Puskas, Bernardo Silva, and Jarzinio. These icon leaks, guys. Let's start and get into this. These cards for the icons look absolutely insane for foot birthday. And I think that's where a lot of the hype is with this promo right now. We know we're getting cantona, right? We've talked about that leak. We even knew we were getting Jarzinio. That has been leaked. But Jarzinio, think about it, right? Foot share have confirmed this in a tweet just a little bit ago. He said, foot birthday icons are coming as five star skill moves or five star week foot. I would presume this would also be true for the regular foot birthday cards because we've seen every single card on the loading screen either have a five star week foot or a five star skill move little tag at the top. And that's just always what's a part of foot birthday, right? So that's meeting our expectations there. That is what something that we wanted to see, which is very nice. Now, a few more of these icon leaks. This is where it looks cracked, guys. Cantona, Jarzinio, you start moving up the list. Some of the leaks we saw yesterday, Rivaldo is gonna be an SBC. I think a lot of people are excited for Rivaldo because he is gonna be an SBC and probably getting a five star week foot, which would make him four star skills, five star week foot, unless EA wanted to do something crazy and give him five five, we would love that. But a lot of people would love this card. It would be a finally usable Rivaldo Brazilian icon with probably stats pretty close to this usable in game. Just the card that you don't often get to use because kind of like the Javi Alonso during Team of the Year, it's just that weak foot, right? That hurts it so much and not super meta because of it. And of course, Javi Alonso's problem was the pace, not here with Rivaldo. But you know what I'm saying, there's one thing that kind of holds the card back and EA are gonna upgrade that to make it meta. So depending on the price point of this, which it shouldn't be too crazy, this is a pretty big name icon and of course it's a Brazilian icon, but hopefully it's not that expensive and hopefully it comes out this weekend with a five five boost or at least a four five because that will be a really nice SBC to have. So that was our SBC from all the team or from the foot birthday icons, Rui Costa, right? Finally, a pretty meta unusable Rui Costa. I hope they give some boosts for cards like this. Now these are all stats predicted. Let me point this out. So the Rui Costa stats here, even the Jarzinho, even the Rivaldo, remember how they did a team of the year icons where they got some pretty massive boosts on guys like Vintage, especially Beckham, right? With like plus 11 pace. I hope something like that comes into play with a Rui Costa, something completely unexpected, just a really big boost to his card. And again, gonna have five star weak foot or five star skills, but it only gets better from here. Next up we have, we'll talk about those other cards in a second, we have Pushgas. Pushgas is getting a card guys and he's gonna have a five star weak foot. Pushgas is gonna be absolutely nuts. That is incredible from EA Sports. The icons that they are picking are what's really bringing the hype right now. Of course George Best's gonna have five star skill moves, right? We saw that from the loading screen. So I believe George Best is gonna be five four for that card there. And then moving up the list a bit more, we have Mateus as a midfielder like EA Sports. I mean Mateus has already had a World Cup icon but he is getting another upgrade.  I mean this concept shows 83 dribble and 86 physical but that's a really, really big midfield upgrade for Mateus. We also have a Rush icon card. Hopefully they give him, well they will but you know five star skills would be nice for him just to kind of mix it up and make him a pretty usable card. The icons that have been leaked guys look really, really good. I heard somebody else talking about Raul as a potential icon leak as well. So you think about the five five cards that are gonna be released. You've got Cantona, five star, five star. Jarsinho's gonna be five star, five star. And a couple more of these guys that are gonna be regular foot birthday players are gonna be five star, five star as well. Like this Joao Felix. The icons to me look really, really hype. Now I'm not saying that the foot birthday regular players do not but I think the icons right now are carrying a little bit of the extra hype that the promo player leaks maybe lack. Just a little, not a lot, but just a little. And specifically with these icon cards I just mentioned some of those really, really insane ones that we could see. If you have some pretty expensive attackers on this game I think that these brand new cards are gonna hurt some of the market on some of these really top tier attackers.  A Cantona that's five five. A Jarsinho that is five five. Jarsinho five star, five star might be like eight to 10 million coins depending on how rare he is and how much they juice the stats up. These, some of these cards could be incredibly rare and incredibly expensive. Mateus probably gonna be a couple million coins. I would be a little bit not worried but I would be careful with some of the top tier cards on this game. I just feel like with these brand new icons coming out some of your top tier strikers and attackers might take a little bit of a hit. If they're not down too much already I just feel like that market actually could take a bit of a hit on the attacking end because of how good these icons look. Now the players that are actually in the foot birthday promo team I think also look good and they've already started to impact the market but I wanted to mention that for some of you guys with a lot of coins with some big boy, you know, Peleys, maybe Eusebios, maybe tradeable Croix not saying they're gonna crash in price like crazy but just saying maybe be careful with those. They could see some drops as people wanna sell that card to go try a brand new foot birthday icon. Now let's talk about some of the other foot birthday card leaks. First one we had is Joao Felix. I was a little disappointed when we saw this on the screen in the stream yesterday. These are predicted stats again by the way but if the stats are gonna be this good and they're not any better than this I was disappointed because this Joao Felix doesn't look like that much of an upgrade over his Winter Wild cards but yes I know it would be five star, five star but of course this Felix went down yesterday as people saw the leak it's kind of back up a little bit and I think these cards are impacting the market a bit more right now. Joao Felix and Darwin Nunez. This is a big boy leak as well. I mean you look at these stats that are predicted this isn't that big of an upgrade over as ones to watch it's like some plus twos, plus threes very possible to get a cracked out Darwin Nunez. I would guess that they would give him five star weak foot because he is three star, three star on his base card. I hope they would give him a four star skill move boost as well or whichever way they go with it. I hope that he's either five four or four five. I hope they don't leave him as a three star skills or a three star weak foot because the way I'm thinking about this is Nunez and Joao Felix probably not getting team of the season cards right? So hopefully EA is knowing that and wants to make these cards usable beyond this next couple of weeks because we're getting into that team of the season part of the cycle where if they want to make these cards decent and usable and get people really excited about them giving them kind of those like team of the season esk boosts in terms of the weak foot and a skill move boost as well that we see so much at the end of the game it's kind of needed for a couple of these cards but Nunez and Joao Felix have actually started to impact the market a good amount. You specifically look at some of your mid to top tier center attacking mids and strikers on this game in the Premier League. This Firmino card yesterday, he's down a little bit, he's back up a little. He was down to like 580K but he was like a 650K card before yesterday. Some of your Premier League attackers have gone down in value. Erling Holland special cards. I bought a couple Erling Holland ones to watch to try to flip out of the rarity. I bought a couple at 500 and 510K and I, oh yeah, he's back up. Nice, 550, 560K but he is down. He was like 600 and over 600,000 coins yesterday. He is down in price because of the Joao Felix and the Nunez. Those are some pretty big cards. I do believe both of these guys will carry a price tag over a million coins dropping tomorrow on the game. There's gonna be a lot of hype for them with the boosts that they do get. Now moving on, let's look at a couple more cards. Bernardo Silva, when we were seeing these leaks yesterday, another reason why Firmino and some of those other Premier League attackers might be down, it was like, oh my goodness, is this entirely a Premier League promo? Once again, Bernardo Silva 97 dribbling was on the loading screen, confirmed stat there and of course he is gonna have a five star weak foot. So that's gonna be an incredible card, great dribbling stats, four star, five star and probably pretty cracked in game. 93 rated is the concept, probably gonna be pretty expensive as well. One of the headliners of this promo squad. Moving on, Thomas Muller getting a full birthday. A lot of attackers, a lot of center attacking mids for most of these leaks so far. I'm kinda hoping that Muller gets the five star skills. That'd be a very fun and different Thomas Muller card to have. Kinda would remind me of like a Podolski player from FIFA 20 or 21 whenever it was that he had that SBC with the Marco Royce that I remember using in my team. That could be a fun Thomas Muller card with a big pace boost. Maybe a good attacking center midfielder as well depending on how big of a boost he gets. Moving up the list, we have Koke. This is one of the leaks that we're like, ooh, that doesn't look that great. But Koke does not have any true special cards yet. This year, I believe. Besides like his World Cup card, if I remember correctly, but 81 pace is not gonna cut it. Of course, we just had your rentay, but I don't think EA is trying to compete with your rentay with this card here. Hopefully it gets a bigger pace boost and this could be a pretty cheap card. Maybe, you know, a couple hundred thousand coins but also pretty usable for that full birthday Koke. Again, probably a five star weak foot, right? Nice card to use in the midfield. Passing it with either foot. And then here's a pretty big one, Zenchenko with the passion on that dynamic image. Mudrik links, right? The Ukrainian links on the left side and the Premier League. Also the Arsenal links to guys like Saliba to Martinelli as well. 91 pace, 87 defense and 82 physical. He's had the out of positions card this year and that is it. So this could be a very interesting card. I know we just had Furpo, those five star skills in objectives. I'm kind of hoping they would maybe give Zenchenko a five star weak foot so that you could feel good about playing him on either side of the pitch. That would make him a very kind of like Cancelo-esque defender in FIFA. I think that could be really hype if he were to have an upgrade like that. But as of right now, yeah, those are all the league players that we have at the moment. We're missing some leaks. We are, we really are. We've got a lot of icons. I don't imagine we're gonna get too many more but I think we're missing a good amount of leaks for the actual foot birthday players themselves. So keep an eye on Twitter today. Keep an eye out there for more news and info because with the way that it looks, we'll talk about this in a second. With the way that it looks, you take a look at a lot of prices on the market. People are seeing these leaks and they're not really panic selling. A lot of card prices are kind of staying the same. You know, a couple of them have gone down a little bit but a lot of your fantasy cards are still maintaining their prices pretty well. And you know, there's not a whole lot of panic on most special cards on the market after what we saw on kind of like Monday and Tuesday because I really think that the leaks haven't given people enough of a reason to panic even more as of yet. So we're gonna have to start to see some expected stats and we're gonna have to start to see really something crazy from EA to make there be another really big push of panic on this game because right now with the leaks that we have, the cards look good and yes, there's gonna be five star skills and five star weak foot but I don't know if we're gonna see a ton more panic on the market guys, especially if the leaks don't continue to be that amazing and if they just look okay. Now of course, again, like I said, it all comes down to the actual stats, not the predicted stats but if the promo doesn't look that amazing some of these cards that are the most meta cards like a Ginola, you know, this is a card that people wanna have in their team regardless, right? He's still a little bit low from where he was and if you look at a lot of these graphs, yes, these guys have still dropped off in price but they're not as low as what they were on like Tuesday. I just don't know if we're gonna get as low as we were earlier in the week unless something else changes. So if there's a card that you want for your team keep an eye out for the leaks today keep an eye out on the information because it's not like cards are absolutely skying right now on this game in every area but some of them have just kind of started to creep up a little bit in price. It helps some of the fantasy cards have gotten their upgrades right, which we covered yesterday but you know, other cards like Alowayrin, right? 770,000 coins, you look at his graph from Tuesday he went all the way down to 680, he was under 700K bounced back up to about 780, 760 and he's kind of been between 750 and 780. I would expect the market to kind of be in just kind of the same middle of the road unless we get big leaks today and into tomorrow. I'm not expecting anything crazy guys, I'm really not because there's also a lot of gameplay demand at the moment and we talked about that in yesterday's video as well but that's why there's been such great fluctuations on the market is because EA gifted people that we can lead qualification access once again and there's a lot of opportunity to play the game and there's a lot of demand for that. So the market right now is a decently healthy place. I'm not expecting a ton of panic unless the leaks look crazy. Now one very kind of cool and interesting thing that we just learned about foot birthday as well. Talking more about this promo is the twin mini release concept that foot sheriff has just tweeted about a couple of hours ago. Two versions of the same player, both at the same time one with five star skills and the other with five star weak foot. So it's kind of like the Charles de Catillera SBC where you had one with a five star skills and one with a five star weak foot except they would have the same stats in this scenario and they would both be in packs at the same time not like one and one which this sounds very weird. One with skill moves and one with weak foot. Maybe it would be back like in Future Stars and a couple of years ago we had like the two different versions of Giovanni Reina and Diogo.Lo and Reese James. You guys remember that where there was one that was like a right back Reese James and like a CDM Reese James or like I think it was like a striker Reina and a right mid Reina. Maybe they will be in two separate weeks maybe like week one's mini release with the same players as week two with one five star weak foot and five star skills. That's a little bit confusing to me because I don't know how you put two different versions of the same card in packs at the same time. He says there'll be a small difference on the design above their overall you will be able to see a specific symbol. So if you want to know if your foot birthday card has the twin upgrade just check above the overall. Yeah, I guess we're gonna need some more information from EA on this but two versions of the same player with the differing skills and the weak foot. That is cool. And we've seen something like that before but this almost kind of sounds like it's a little bit different as well. Now we have had some packs added to the code as well. We mentioned it early in the week. Eric Cantona is gonna be a free loan foot birthday icon card in the moments section and a lot of this stuff that I see here are the packs that we saw from leaks earlier in the week. Guaranteed foot birthday token pack definitely gonna be in the moments store. 784 plus 585 plus a 383 plus a 384 and 85 plus player pack and a double 84 so some really random fodder packs still not entirely sure where these are gonna be. Those might be in the moments store as well. Who knows? And then a foot birthday refresh pack contains a foot birthday player on loan for 99 games. And then it's just a lot of like player picks and loans and stuff like that. So this one to me I don't know if that's gonna be a store pack an untradable 86 to 88 rated rare gold player pick. And there's a lot of loan player picks in here but that 86 to 88 rated player sounds like it's not a loan. That's a legit player. So maybe this will be like a cheap store pack or it'll be available via objectives but that's kind of the news and info that we have about foot birthday right now. The icons look crazy, right? I think the icons are what people are most excited about but then again, if you think about it the icons are also gonna be super duper expensive. So I'm really excited to see what more leaks we get from players that are gonna be in the promo team. We expect this to be a two week promo. So I hope they make the teams with a lot of players and they make it pretty big and just make this a banger of a promo and make the SBCs and objectives good as well. So I would expect to see more leaks today and that should also set again the precedent for how the market does. If there are a lot of leaks and it looks really sick and there's a lot of big time players and maybe if we start to get some actual stats and not just predicted stats then we could see a bit more movement on the market but if there's cards that you want to buy that are not affected at all by any cards that are leaked I would say that if there's any sort of drop today or if you see a low price like earlier today I picked up a Gretzka 1.39 just cause he was fluctuating and he was pretty low. I picked him up, sold him at 1.51. There's still fluctuation on this marker right now as people are getting ready for foot birthday and stuff like that. So you can trade in that or you can pick up cards for your team at prices that are lower than they were last week just maybe not as low as they were earlier this week. So watch out for that today. That's really gonna set the tone. Leaks always set the tone but today for sure it's gonna be a big day for those. Now also today on Thursday just to round it up here with what's going on with footballers, right? Last day of a new card dropping for footballers, Ederson, this is a big card and I think this is the most meta card out of this entire play two style objective that people are the most interested in. Here's what I would tell you if you have a tradable goalkeeper in your team that is of a decent value, I would think of maybe a guy like Donorum was in form still carries a good amount. Team of the year Courtois, some of the other more expensive goalkeepers in this game not that there are a ton of them but they could actually see a hit in price today. I think this Ederson is gonna be super meta, super valuable for so many people to go ahead and get one of the best objective cards in a while. I hope it's not too many games to go and get but watch out for this card today. We thought the Jack Grievous SBC for his 88 rated card was gonna be expensive and it wasn't, this is our last chance today. I mean, Ederson is a 91 rated so it was 89, right? In an SBC probably gonna be a little expensive but who knows, right? Get your 83s, 84s, 85s ready for one last footballers SBC today for that one. So just kind of keep an eye out on that because I think that's gonna be a really big part of the content today.  I don't know if that's gonna appear in game before tomorrow at 6 p.m. Or if it will not appear until then as the foot birthday team one pack will be a reward that we'll be able to claim tomorrow as completing all of the play two style objectives. So watch out for that. And marquee matchups today I think is gonna bring us a very interesting opportunity to invest because fodder on the top tier is getting really low. Now the 89 plus World Cup icon is going away. So that's gonna be a decrease in some demand for some fodder but the 87 plus is gonna refresh tomorrow on Friday. And just quickly here at the end of the video I wanna take a look through fodder and talk about this with you guys. First thing with marquee matchups today I actually think that marquee matchups is going to drop the value of low rated fodder. I think that people are gonna open some of the marquee matchups packs today because there's probably gonna be a swaps token as a part of the marquee matchups SBC which will mean basically everybody is doing MMS today. So if you're gonna trade with the requirements for MMS I think you'll be able to make a lot of coins today but low tier fodder, I know it's the last day for those other SBCs that we have like the 82 times 20 that people are stacking up on the campaign, the mixed campaign pack the mixed campaign player pick people will be doing this of course and of course people will be doing the Edison SBC today whatever it requires but I think that you might start to see some of these prices drop with supply and on the top tier 88's guys are 26,000 coins this is mad low like these guys are mad low if you kinda take a look overall 25K even 26K is really, really low for 88's and yes we do have an Mbappe player the month right now we have a Cruyff SBC we have an icon SBC that's going away but probably an icon SBC that's gonna come back later on this weekend and of course with the refresh of that SBC the hero player pick one on Friday I would really start to take a look at between today and tomorrow on Friday there's gonna be a lot of packs open on Friday so I'm hesitant to say that today is the only day you can buy fodder but 87's and up I think look really good for a reinvestment if you already have some of these cards or if you sold them before Mbappe came out or right when Mbappe came out 91's are back down to 60K, 90's are at 50 and with all the high rated SBCs even though Mbappe is crazy expensive guys people are gonna be doing it Cruyff is out there people are gonna be doing that there's other icons that are available if we get a Rivaldo icon SBC and of course an icon upgrade pack which remember when we had the heroes in the Foot Fantasy promo they brought out the hero player pick once again what's to say that EA might not finally include team of the year icons in some sort of an icon upgrade pack since we are moving onto a bigger and better set of icons with the foot birthdays so I really hope we get a banger of an icon upgrade pack in the coming days probably on Sunday, Saturday or Sunday I would expect to see that but I think fodder on the high tier end could be a really really good investment between today and on Friday nights maybe Friday during content depending on what rating of cards you're going for so keep a close eye there the low rated fodder I think I would maybe wait on the low rated fodder to hopefully see a low point on Friday with a lot of our SBCs that require the 82 and 83 rated squads today is the last day to do them so if you're trying to stock up and you're trying to get a couple of those to save packs for foot birthday then there's going to be some demand there but still I would expect to see prices still lower later on in the weekend and what's howling right now 553, 560, right I bought a couple of these in the panic selling today it's been a really good time to trade on the market and I think that's going to continue today as long as the leaks aren't like super insane or somehow change like if we get official stats and cards look crazy right that's kind of the big catalyst it always is but I really want to make that point to you guys because I really think it could be a very interesting day today on this game I'm trading with a lot of icons trading with silvers right list up your silvers there's more in demand of course as people are building those silver teams for silver stars to get that token those prices should kind of maintain their fluctuations here over the weekend as there'll be demand for those this week and next week as we'll probably have another token in silver stars next week as well so I'm going to try to get these flips kind of completed and hopefully we see some more big news today on foot birthday via the leaks via Twitter and all that good stuff so if you enjoyed today's video and if you're excited for foot birthday hit the thumbs up in the video comment down below if you have any questions and subscribe if you're new it's been Nate the foot account and I'll catch you guys on the stream today peace out


Alright, good afternoon everybody. Talk is entitled Code of R2, this is kind of a follow up to a talk I gave at RubyConf in November. If you didn't see that one, it's not essential knowledge, I'm going to kind of fly through some of the basics at the front end. Everything, slides, code, source files, all on GitHub, so feel free to check out if you're interested. So this is what we're going to do, briefly talk about what processing is. We're going to create some sample content. We're then going to automate that content and talk about what next steps are if you want to kind of pursue this as a project. So first, what is processing? It is a library built on top of Java. It's kind of a simplified programming language, particularly built for people interested in creating art. So that's 2D, 3D, music, video, interactive, all these kinds of things. It's built on top of Java. Every processing takes processing and wraps it in a nice Ruby shell. This guy, Jeremy Ashkanus, has kind of put it together pretty much as a one man show. It's an extremely small community. And part of the reason I'm doing this talk, like my RubyConf talk, is to encourage people to come check this out because I think it's really neat. These are some of the things I showed off at RubyConf that you can do with processing. So top left, I've got a little abstract art piece, 2D.  Down here is real time video processing where I call this the witness protection program video. It pixelizes your video. And lastly, a pong game that doesn't even have a scoreboard, so everyone wins. Okay, Ruby processing, the good and the not so good. First off, it really supports creativity. There's an amazing gallery on processing.org of commercial and open source projects that have been built with processing. This is one I found pretty awesome. It's a map of Manhattan where I think there are nine block squares are cross-referenced with AT&T international phone records and then colorized based on what countries they were calling.  So if you're like a Tufti fan, processing is for you. Easy as pie to develop. It is just, it's fun. It's really, honestly, the most fun I've had developing in a long time. It really encourages you to goof around and you can get really cool things done quickly. That side, not performant, okay? It's especially when you're running Ruby processing. Now you're running a wrapper around the JVM, around with the processing library. There are a lot of pieces in the mix. This is not going to be, you're not going to write Quake 16 in Ruby processing, okay? If you, it's great for developing things quickly and prototyping and low load or asynchronous solutions, but if you need hard real-time open GL, prototype with processing and then when you're ready to achieve 90 frames per second, you're going to be writing some C. Extremely large data can also be a struggle, partly due to the way the memory is managed. It's pretty easy to overflow the Java heap. You can increase the heap and so forth, but it works best with smaller data. Those things aren't that bad, okay? A lot of those complaints are levied against both Ruby and Rails themselves, but as we're all here, we know that pretty awesome things can be created with them nonetheless. So I think the same can be done with Ruby processing. This is really the story of, I almost want to say a dream, you know, Greg talked about launching into a project that he thought was going to be complex and made it complex. This is the story of launching into a project I thought was going to be trivial and turned out to be kind of complex. So this is how I got here. I hate this icon. It makes my, like I'm always force quitting Excel, the RAM is nuts. I don't understand why there's two layouts, one called normal and one called like something else and normal's not the default. If it's normal, it should be normal.  I work with a lot of academic data. I've spent 26 of my 29 years either attending school, teaching high school, or as a middle school vice principal, and I work with academic data all the time. This is very common, right? We have very long table headers and narrow table data. If we have horizontal text, then this ends up being, these cells end up being 90% blank space, right? It's unusable, especially in a web context. You can only fit five columns before you scroll across the page. All I wanted to do was implement this for my Rails app. This part blew my mind. I've never wanted to do something that only worked in Internet Explorer. If you use IE, even IE6, there's a simple TBRL CSS property that will rotate text works great. CSS3 transforms. This is awesome because it kind of works, except for that it measures the column before it does the rotation. You end up with this unreadable, rotated text written over your other table cells. If you do it on a span, it doesn't even rotate, div, and sell. I couldn't believe that this was like, I just looked at the Google results, JavaScript, CSS, SVG, Canvas, especially in the latter two, there are ways to do it, but they were too complicated for me. I just looked at them and was like, I don't really get this. Why is this so hard? My conclusion was that I needed to dynamically create images based on the data in my Rails app. That's what I said all to do. That's what we're going to run through about 12 iterations of a program and fit in in 45 minutes. Here we go. Creating images with Ruby processing. As I said, Ruby processing, great for 2D, 3D, we're going to do very simple things with just 2D for right now. This is what a Ruby processing program looks like. It's called a sketch. When you write processing, they're sketches. There are two basic methods. The setup is run one time when it initializes, and draw is by default run infinitely looped as fast as it can. Unless you set a frame rate or something like that to intentionally slow it down, or your computer slow, it will run as fast as it can until it hits an exit. This specific example is written to run this code once, and it would run this over and over except that it has an exit. You can see here I'm just selecting the setup. Size is how we set the window size, and then in the draw I'm setting a white background. I'm picking a fill color that's random. The style of processing is kind of declarative, so you say background, and then you don't say window.background. It's not really an object-oriented syntax, so you say background, then you set the fill color, then you oval draws a shape, save, just saves the file. It's very intelligent, it's a little bit magical, some might say, about the file name. If you name it .png, it outputs a .png. If you name it .gif, it uses gif, tiff, jpeg, whatever. Once it hits exit, it stops its execution. This draw is actually going to only get run one time. I call this proof of concept because I just wanted to make sure that it was possible to output files from Ruby processing. This is the same sketch I just showed you. When you run Ruby processing, when you install the gem, most gems are maybe a 50K, 200K, this is an 18 megabyte gem, because it wraps an entire JRuby instance into that gem, so you're running an encapsulated JRuby, even if you already have JRuby installed, whatever, it uses its own JRuby. You get an RP5 executable, and RP5 has several run methods. You can do RP5 unpack samples, we'll output a group of about 16 samples that are actually included in the gem, great for if you're starting out, want to see some example code. There's RP5 run, which would execute code in the way you would expect, just runs it one time. More importantly, there's RP5 watch, which makes for a great development cycle. It's kind of like auto-test, in that it watches that file, as soon as you make changes, it reloads the code. I'm going to use RP5 watch today, just in case I'm making mistakes. I'm going to RP5 watch that sample.RB, it'll take a few seconds, you'll see it just flash up here, Ruby processing, and it's done. I go to my file system, and this is the graphic generator, so it's output a file. Just to show you that I'm not making this up, I can save the file, give it a different file name, get a second file. If you really wanted to, you could close our save. I'm going to take out the XN save. Now this is going to put it into a loop, ooh, colors. So concept proven, as far as I'm concerned. I can output a file. This is the goal for the project. Provided a string like week six quiz, the name of an assignment. I want to create an image that looks like this. It's vertically oriented, reads bottom to top, tilt your head taco style, and you can read it week six quiz. It's more or less sized by the text length, so I don't want to automatically have a 200 by 200 image. I want it properly sized to the length of the text. I'm going to use the silkscreen font, which if you haven't seen it before, it's from cocky.org. It's a font built for low sizes, so it's readable down to like five pixels or six pixels, which is even much smaller than like six point. So if you need really small stuff, your disclaimers, put them in silkscreen. And I was just going to use black text on white. This is how the algorithm is going to work. Infrastructure, you know, my setup and my draw methods. I'm going to set some options, some default options that could be overridden. I'm then going to create the window in Ruby processing or in processing, I should say, the window like this, the origin zero zero is at the top left. I would need to move the origin down to the bottom of the window and a little bit to the right because text, so if it was outputting this line of text, the origin of this text is the bottom left corner because the baseline of how text works. So if I move this origin straight down here, it will write the text off the edge here. Does that make sense? So the baseline is on this corner. So I have to move it not only down but also one, the height of the letters to the right. So that way my text will end up right here along the edge. Once the origin is down there, I've got to rotate the plane. So now that text gets written in this direction. I've got to actually write the text and output the file. So here's the demo. That's the finished demo. All right. I've got my algorithm and steps up here. I'm going to actually implement it in a slightly different order than the algorithms because it's easier this way for you to see how it's working. So I start out with a setup, a draw, and I added this load parameters method. This is just Ruby, so you can access other objects. You can create your own methods, include modules, whatever you want to do.  I set the size of the window and then do my draw. So so far all draw does is set the background to this specified background color. Again, I'm going to use RP5 watch here. So then as I make changes, you'll see them automatically show up up here. Oh, I didn't save it. Right window. Very impressive. Next. I'm going to add in a few more parameters. My second step, well, really step four here, is going to be to write the text. So I'm doing this part a little out of order. I'm going to load a font. Processing uses this VLW font format. You can take any open type, true type font and create a VLW. It's basically a rasterized set of bitmap images. So you say, here's the open type font and I want it at size eight pixels and processing will output that file for you. Has advantages and disadvantages for that, but anyway, this is how you load up the font. I set that my font color is going to be black and set some default text. Then down in my draw, I actually write the text. So I set my fill color to the font color. This font just actually utilizes this parameter to set the font. And then finally output the text at X position zero, Y position 10. So again, if I did zero, zero, it would start at the corner here and it would write the text up above the frame of the window. So I put it at 10 so we could see it. If I hit save, okay. You see the text there? Great. Next. My next step is to move the origin. So in processing the command to do that is translate, I just added this line to translate the origin down to the line height and minus two fonts have a little built-in padding. And so I found after a little experimentation, I just wanted to take two pixels off the bottom to make the crop a little bit tighter and the height. And then change this from zero, 10 to zero, zero. Hit save. So the default text is getting there, right? It's down here at the bottom left. Step six is going to be to rotate the plane. So processing uses radians, which you probably haven't thought of since like geometry class or something. This looks a little confusing to me because minus 90 radians is like 12 complete circles, but the radians helper converts degrees to radians for you. So I wanted it rotated minus 90 degrees, so that's counterclockwise and convert that to radians so that comes out to like 1.5, blah, blah, blah, blah, blah, blah. Then down here, I just call rotate to rotate the plane. So now any, because of the declarative style, anything I draw or text I write after this rotate will now be vertically oriented. Hit save. The text pops over there, all right? Almost done. Finally, I want to output the file. So I give it an amazing name of default and a file name is PNG. And then down here, save just takes a string. So I'm just concatenating these pieces together with a dot to output the actual file. So now, and I add an exit because I don't want it saving the file over and over and over and over, thrashing my hard drive, just hit exit. So now once I hit save, the window will actually close because it runs that one draw. Right now if I look in my file system, default, so it worked, okay? You can applaud. Don't worry. Save it, save it, save it. Not yet. All right. Parameters from our Rails app. Not very good. So far, obviously infeasible for me to type in all the parameters manually. My first implementation of this was extremely bootleg where I created CSV files and then had my Ruby processing sketch watch a folder for a CSV file to pop up and then bring it. It was ugly. I wanted to figure out a more robust, a more adult way to pass messages from Rails to Ruby processing. And this is where I started. I was excited when I saw this book came out a few months ago. I saw Dave Thomas speak about a year ago and somebody asked him a good question which was what's your favorite thing in Ruby that nobody uses? And his answer was Rinda and then he took about 10 minutes and wrote a distributed application using Rinda. So if you're not familiar with Rinda, it uses like a chalkboard model where you throw up jobs and then workers come along, look at the board, look for jobs that they know how to do, pull off the jobs, do them, post back the results. There are about two tutorials to use Rinda in English and it's like 2005 English. So of course, things have changed and if you're using Rinda, okay, you probably never heard of Rinda. But if now you want to use Rinda, there's not much out there except this book. It's quite good. It goes through Rinda, other background processors including Starling and the author's own library. So I highly recommend it except I started working through it and realized it was a little more complex than I was ready to tackle right now, partly because I was going to be talking between two interpreters that my Rails app was going to be running in MRI and my sketch was running in JRuby and marshaling the objects back and forth made me uncomfortable. So I went to what I knew, which was Beanstalk. If you haven't used Beanstalk for background processing before, this quote is true. It's simple and fast, okay. It's awesome. You can install it, macOS. If you don't use homebrew, check it out. I didn't get the hype until I tried it and I was like, oh, this is awesome. Okay, so try homebrew. Forget mac ports. Fedora, you can yum. Otherwise, Debian, Ubuntu, there's no app package. You can do it from source. If you're this person, you're psycho. It's like network ports and piping and so forth in Windows. Forget about it. This is how you run Beanstalk. You say Beanstalk D and that's it. By default, it listens on the local host, port 11,300. It runs as the current user and stays attached. You can pass in flags to daemonize to run as a low-privilege user. You can run it on different ports. You can run multiple Beanstalks at once. Very flexible. So the catch, as I mentioned, with Ruby processing is that you don't have access to your same gems and objects that you do from your native Ruby interpreter. So that's not what I'm just going to slide. Different slide. Sorry. Beanstalk client is how you interact with Beanstalk from Ruby. So all you need to do is install Beanstalk client and require it in an IRB session. This is how you find the Beanstalk.  Give it the address in the port. It gives you back the Beanstalk. To put a job on the queue, all you do is say put and then a string. A job is just the string. There's nothing complicated about it. It's basically an implementation of the memcache protocol. And so there's no intelligence.  It returns a job number, which is 28 in this instance. When I was beginning to say no, here's how you pull jobs from the queue. On the other side, you again require Beanstalk client. You do the same code to find the Beanstalk and you say bs.reserve. bs.reserve goes to the Beanstalk, finds a job, gives it back to you. The string that was put in with that job is its body. So you can just ask job for its body. When you, it's called reserve a job because the Beanstalk gives you the job, but it has not removed it necessarily from the queue. It's marked it as reserved, and so there's a timeout. If your worker fails, I think the default is 300 seconds. It'll give the job to another worker. So here I just print out the body and then once I've done whatever magic I want to do, I say job.delete and that tells the Beanstalk, I'm done with this job, remove it. If there's no job, bs.reserve blocks. So it's kind of a built-in wait mechanism and it's low utilization. It just sits there and waits for a job to show up. This is how we're going to do the Beanstalk solution. We're going to start with the Rails app. Rails app is going to post a job which is made up of text parameters to the Beanstalk. There's going to be a Ruby processing sketch which is looking for jobs, asking the Beanstalk for jobs. Once a job pops up, those text parameters are going to get sent to Ruby processing. It's going to do its magic, create the image, and put that image directly into the public folder of the Rails app. From the Rails side, all I'm going to do is, so this model after Gradebook where you've got students and assignments and grades, and the assignment model, the assignments are going to be the columns on my table. So all I need to do is when an assignment is saved, find the Beanstalk, create a job, and push on the file name and the text. From the worker's side, wait for a job, load those parameters, create the image, remove the job. That's it, simple. So as I said, Beanstalk works with plain strings. We'll need to do some kind of serialization, unserialization. I chose to use YAML because I like it and it's easy. You could do JSON or whatever other plain text you like. And here's how I implement it. First, in the assignment model, I do an after save, and just say I'm going to generate this header image, and then I define generate header image as find the Beanstalk, push on these parameters. So give it a file name, which is defined here. Give it the text, the name of the assignment itself, convert it to YAML, and then just put that on the Beanstalk. Obviously, it would probably be more efficient to put this Beanstalk finding process somewhere else because I really just need a singleton Beanstalk, but this works. So Ruby processing can't easily use gems. This is probably one of the biggest challenges when you first start with Ruby processing and you start thinking, oh, I'm going to hook this into so many awesome libraries and my Sinatra apps and all these other things. You can get tripped up because you love gems. You're using JRuby, so now you've got two challenges. Number one, JRuby only uses, can't use gems with native code because it's running in the JVM. Challenge number two, it's Ruby processing's own JVM and it's difficult slash impossible to install gems into that JVM. So you can do some complex tricks with your load path and point it to your local MRI or whatever interpreter you have to find its gems, but practically speaking, if you have non-native code gems, just unpack them into your sketch and then you can require them right there. So that's all I did here was create a vendor, create a gems, go in there, unpack Beanstalk client and now we're going to do some work. For this process, it's actually not going to work during each iteration, so I'm just going to show you the steps, there are no, I can't run the sketch each time, so to start out, I'm going to set my load path and requires, this is basically starting with the app where we left it after the last demo. I'm going to modify the load path so it finds the gem that I unpacked and then I'm going to require Beanstalk client and require YAML, YAML's in core Ruby so it's in that JRuby so you don't have to unpack it or anything. Okay, that's all changed so far, everything else is the same as our previous demo. Next, I need to modify the setup. So first, I'm going to set a default window size and it turns out that there's, I'm not expert in the windowing toolkit that JRuby uses, I assume it's swing but it can draw a window and then the canvas within that window that your drawings are put on can be a different size than the window itself. So I'm creating a 200, 200 window but my canvas might end up being 800, 100 and it doesn't really matter. When we're processing saves the file, it'll use the canvas, not the window. Second, find the Beanstalk, same code we used before to find the Beanstalk. Okay. Then third, I want to find the job and load it so I'm going to do that in my load parameters method here. I'm just going to say Beanstalk reserve and so if there is no job pending, this is where my sketch is going to block, it's just going to wait forever until a job shows up. Once it finally finds a job, it's going to take that job, ask it for its body which is the yamalize string, right? I'm going to yamalode it which seems a little backwards to me some tactically like you're unyamaling it really but whatever, this output's an actual hash. Then I'm going to merge those options over my defaults and I'm going to go ahead and remove the job. If you wanted a more robust solution, right? You should probably wait to delete the job until you actually output the image. Okay, next step. I want to calculate the image size. This is a little bit messy but not too bad. I added in a character width parameter. I thought silkscreen was fixed with and it's not. This process would be easier if you use a proper fixed width font so I approximated that characters are about five pixels wide and then I created this, some might say hacky formula to figure out how tall my image should be so that's the length of the text that's getting passed in. It takes that text, finds its length, adds one, multiplies by the character width and then there's a little scaling factor 1.2. This could be better implemented if you looked at the specific letters and said okay there's six M's and M's are six pixels wide and there's four W's and W's are seven pixels wide and so forth but it works well enough for a prototype. And then finally returning those values. In step five, I need to now load the parameters once and size the window each draw. So there are kind of two models you could go with here. You could each job spin up your whole Ruby processing environment in the sketch or keep it up once, let it block and then just use draw once for each job that gets posted. So I think the later is much more reasonable as long as the Ruby processing doesn't like memory leak, then this should run pretty well. So what I have to move then is the loading of those parameters has to come inside the draw since that's the part that's getting repeated. So now I do parameters, call my load parameters here instead of up here where it was in the setup originally the one time run. And then set the size dynamically. This is what I was talking about as far as the canvas having a different size than the window. So this will change the canvas size. We don't care about the window size. Then lastly, I'm gonna set the target directory. So I made a constant as a hack here but you could obviously output your images to S3 or set an alias in your file system or environment variable, whatever you like. This is how to get into my Rails app. It's called tabler. I created a folder name generated where I store my automatically generated images.  And with that, all my steps are checked off. Okay, so I'm ready to go. This is the same file. There are a lot more pieces now though. I've got a sketch, I've got Beanstalk, I've got a Rails server and I gotta actually make some requests. So here's my Rails server. It's already running. Beanstalk, as I said, all I have to do to start it is Beanstalk B. There's no particular output. It's just waiting there silently to do my bidding. Here I'm gonna use Watch again in case I made a typo, but in production you'd probably just use Run. So RP text generator, run that. One consequence when you're writing Ruby processing sketches is the stack trace. Some people complain about the Rails stack trace.  But usually the line error detection is pretty reasonable so then you can figure out what's really going wrong. What do we see here? It's booted up Ruby processing. It's got my 200 by 200 window and nothing, just waiting. It's blocking, waiting for that job to hit the queue. So if I go to my Rails app, this is what it looks like. I could show you briefly. This is called tablers. My sample demo all really does is output that table in the view. I just output an image tag and ask the assignment for its image path, image path being defined on the model. So again, probably something you wanna put in environment configuration, but it works. All right, so these are all, if I refresh this, no images, there are no images. It's looking here in table or public generated, images generated, right, which is blank. So this hook is gonna get called as soon as we edit or create an assignment. So I hit edit, I change the name, week six quiz. Submit, view all, boom, text, image is here, namespace by the ID number, so the unique. Go through, okay, I can do a second one. More images, okay, I can test creating a new assignment. Okay, works, yes. Thank you, thank you, thank you, thank you, thank you. So what have we done? We built a distributed message passing framework. We used Ruby Processing to power the worker and we rolled it all into a Rails app. So now we're coordinating two independent Ruby interpreters, including external Java libraries and making it all work together. Now what, right, you were promised video in the brief for this talk, mentions video. Ruby Processing makes this too easy.  I call it video tagger.  This is what you have to do in Processing to make video work. You load a couple libraries. These are from Java QuickTime. You set the window size, smaller it is, the faster frame rate you'll get, but you can go pretty big. Then you say video capture new. This is the line of code it takes to turn on my eyesight and start Processing video, okay? I was amazed that it was that easy. I follow a similar pattern as I did. Otherwise, I have this load parameter, load parameters method, set my default. I'm gonna write some text that's secret property of Mountain West RubyConf. In my draw, there's this if video available, weights for a frame to come in from the camera, so if draw is running faster than 30 FPS, it just waits, waits. And then image actually takes that frame of video and outputs it to the screen.  Direct mode sets which kind of coordinate I'm gonna give it for the rectangle, so I'm gonna specify the bottom left corner. It's gonna be at X position zero, and then it's gonna be three line heights tall and go the whole width of the window. Then finally, I'm gonna output some text that's in my specified font color with the same font, and here's my text, and then these are just positioning, the X and Y position. I wanted to slam it against the bottom right corner, but I wanted to scale based on how long the whole line was. All that to say, you go here and that one. You'll see that, oh man, you can't see anything. Well, down here it's tagged. Yeah, we'll make it more beautiful. Hello. Okay, so if you wanna be creeped out while you're programming, watch yourself. Goodbye. You can capture frames, you can do things to individual frames.  So video processing, easy. We did that. These are the next steps. So going from here, I considered this really a prototyping project. What happens next? On the server side, this is nice when it's running on my laptop. I wanted to run this on my actual server. You're gonna run into a problem that processing demands a windowing toolkit. It will try and start rendering, and you know, I was on a Ubuntu host and it was trying to access X windows and start spitting out windows, and if it can't find X running, it will crash. Thankfully, like most times in the Unix world, someone has had this issue before, God knows why, and they created a thing called XVFB, X virtual frame buffer. So this basically just lies to your programs, tells them that X is running, takes their windowing instructions and just dumps them, doesn't do anything. And for our purposes, that's great because we don't actually care about the display of the window, we just want that file to get saved. Secondly, I use God for process monitoring to make sure that JRuby instance doesn't get out of control, crash, close it if the heap gets too big, or if it crashes, restart it. Then, to go beyond prototypes. So where would we go from here? The process is good. Even if processing is too slow, the model here is good, as far as taking your Rails app, spitting out beanstalk jobs, and then having a worker look for those jobs. So if this was running too slowly and I've got 1,000 users and it's taking a few seconds, obviously you could spin up extra Ruby processing workers if that's worth the ramp to you. Or if you're really hitting scale and Ruby processing is just not gonna work out for you anymore, you could re-implement your workers like this. You could first spend two weeks installing ImageMagic and then hire someone for the next six weeks to figure out how to use it. If you're doing audio and video, FFMpeg can do everything that you've never imagined and it's all command line arguments that your command, it's like 32 command line arguments, but make it work first in processing, then you know your goal is good then implement FFMpeg. You can do raw OpenGL. Processing does OpenGL, it wraps OpenGL for you, but if you really want the highest performance, you're gonna write some C and some native OpenGL. Panda is also a great video handling library. All right, wrapping it up. These are all the links. I strongly recommend if you're interested in processing, there's a book called Learning Processing. It's written for non-programmers. So as programmers, you can tear through it quickly. It's great. More importantly, Jeremy and a few other contributors have taken all the examples from this book and re-implemented them with Ruby processing. So you can read the book, see how it works, then look at the Ruby processing example, see how it works in Ruby processing. That's awesome. Silk screen if you want that font is here. Lastly, I teach classes. These are my classes. Most interesting to you is this one down here about professional Rails practices, pair programming, using Pivotal Tracker, all these kinds of things. Talk to me about it if you're interested. And that's it. Do I have time for questions? I'm done. Okay. Are there any questions? Yeah, ask it. With process, you can do whatever you want. There are some alternative implementations of processing. I know there's like a processing.js that tries to implement it all in JavaScript and can be used in the browser, but it only does a small subset of processing. There are other implementations, but I think that would be a decently sized project on its own just because processing relies on a lot of the magic of the existing Java libraries. For instance, the Java QuickTime library and so forth.  It's gonna be some work. Anything else? All right, so go create some dynamic images. Thanks.


Good yourself. I'm very good. You keep them well. Yeah, right. Tell us a wee bit about this song Behind the song because all kids And they're back on something and they feel Florida Because one of them legends like Like I'm pop smoke everyone. They always take your life away because I said to beat them all Love your lessons Lovely well done and you decided to write the song in a suit. Hey, how did you come? How did you come doing a music video? How did that happen for you? Because I was listening to our one rapper here. He is a One I was rapper and he's from one of us But he's living in London and they don't his own rap songs as well Because I've fallen on a photo and my name is well as he was called killing waters waters Very good. Yeah, so you designed the cover of the single yourself. Did you? Yeah, and that we were looking for their own but somebody put the wrong CD in it, didn't they? Yeah, that doesn't matter to us and tell me on you and fun are with you tonight, right? Did they help you record the song? Yes, they did. Yeah That's good. And what's next? What do you think what's going to be next for you? I'm gonna make a new beat soon. Oh, yeah under the end of this month And can you tell us much about it? No, is it a sort of top secret at the moment? Maybe a top secret at the time? Right in right in come here if there's one message you want to put out to share the word. What would it be? I love you all to care. Yeah, that's wise words. Are you on social media? Yeah, just follow me on Twitter Instagram and tiktok as well and snapchat. Oh, everything I was calling you DJ out there, but you know, you have a couple names. You just see McFadden, don't you? Yeah, to see McFadden, Paul, Junior McFadden, Paul, Mark McFadden, Junior You've got plenty of names to go on. Andy Cotton, Papyrus and Dolody coming Paul too as well. Oh, is that right? Yeah. Does everybody know you down around Goodore? Oh, yes, big time. Yes. And tell me, do you get stopped a lot by people and asked, you know, for photographs and all this carry on? Papyrus mad about me. I love you. And I don't care. I love that. I love that. People are mad about you. You can see way too, can't you? Really? Yeah, I can. It's your modesty. Yes, it is. Well, are we going to get this new song? I'll tell you what I will do. I'll tell you what I will do. Hang on to get this to make a little bit closer to myself. We're going to take an ad break, right? And then we'll come back with you with the brand new single. Is that all right? That's grand, 12 foot. And the single's called what? Tb2x and Paul X. Do you see? Do you see? On the way. Don't go away, Highland Riddle. Monday night, exciting stuff. Tune in. Not sure where to start with your smart meter? Sign up to a home electric plus smart meter price plan from Electric Ireland to see how much energy your appliances are actually using. Track your usage monthly, daily or even hourly, and get tips and advice on how to use less. It's a smart start to controlling your energy usage. To sign up, search Electric Ireland Home Electric Plus, smart meter and online account required. Features available after four months. Teasancies apply. See electricarland.ie coverage. They've got Irish made furniture, suites, beds, mattresses, dining, flooring, slide robes and occasional furniture. Great prices and large selection now available at Breeden's Home Furnishers, Cooley, Mauville. Pandora's 3 for 2 promotion is on. For a limited time only, buy two and get the third free on full price Pandora jewelry. Show someone special that you're thinking of them. Or take the chance to treat yourself. But hurry, this offer won't be around for long. Offer in 4th of June, available on participating stores and online at pandora.net whilst upflast. Terms and exclusions apply. Broadcasting throughout the Northwest and across the world online. This is Highland Radio with Paul McDevitt. After this, Monday night sessions and we're live as always here each and every Monday night between 8pm and 10pm. And we have got the main man in here, rapper Paul XXX999 and Jussie McFadden. Yeah, and that's two of the names he goes on to, he goes on to her a lot. But when is the single, when are you releasing it? Or is it out there already, maybe? Tuesday. Tuesday. Right, we're ready whenever you're ready. It's the song playing now. You'll hear it now in your headphones, okay? I can't even spell something back to everybody else. Yeah. First of all, I got a picture of the two that have club as well, from the gym as well, yeah. Everybody, we'll get a chance after and you can say no to everybody, all right? Hold on, thanks for that Paul. You're welcome. See you soon. You're welcome. Thanks. World army soldier, as I'm guessing older, here all people get colder. Most of us killin' ya by the money making, being serviced. Got us following the wrong direction, wrong information. Always run by the media, negative emitters on the body. Effecting the young nines for hours a time, go over 19. Cats want to act like what you see in the cinema. That's the reason why sometimes they're feeling under. That's the reason why, why sometimes they're feeling down. There's no wonder sometimes they're feeling like this. I got to keep my feet onto a flame of love. Now act yourself, wear this robe, wear this robe, wear this robe. I keep and say I love and respect. Wears some peace, execs, execs, I'm going to give you. Wears some peace to all the girls that lost their end up backing and suiting. The song is straight to you. Love you, execs, execs. Please work with me. Everyone else out there, love you all. I can't smoke any vapes because it's wet for your lung cancer, but I don't smoke anymore. I put it in the past. Sorry, Mum. Yeah, I tell you what, that was just something else there. We have got loads of people. Louise McFadden said, So proud of you, Paul. Hope you have a great time at Highland Radio. Love Mum and Dad. And Keata and me Bride said, Good man, Paul. Brilliant. Hey, Mum. I told you, Mum. I stopped smoking vapes because I don't need any more. I'm listening to my own Mum from now on. Yeah. Right. Well done, Paul. Sounds great from your number one bus driver, Martin. Martin said hello. You know Martin the bus driver? What's up, Martin? Right. We're going to, that was amazing. That was awesome. Did you enjoy that yourself? Yeah. Yeah, I pretty like it, Paul. But you were really cool with it. You're really, really... Yeah. You're just a natural. Only some people have to work hard. You don't, you're just naturally brilliant. I want to walk out, I want to get some more money and just release more songs. You know, that's going to happen for you. That is going to happen. But we're going to move forward. And on your, on your handling. Isn't that right on you? Yeah, it is surely. How are you? I'm good. Come here. Tell us a wee bit about the C.I. Club, is it? The C.I. Hub Club. Yes. So basically, I'm working under Donegal Community Inclusion Training Services. And we have 16 hubs now throughout Donegal. So I'm currently working in Donegal Hub at the minute. So shout out to all the service users and all my amazing team. We're delighted. So we can just focus on person centres. So basically, you know, our aim would be getting all the service users to be at the heart of their own life. Making their decisions that they want. And then as well as that, as tailoring their timetables specifically towards them, so that they're making all their choices themselves. And we're just there to help them access these and get them the supports that they need and what they want. How long have you been working there? I've been working there just over a little two years now. Yeah. So I'm really loving it. We've, we've come a long way. And I'm just so proud of Paul because he's just been working so hard this year. So he's a great worker. Tell me, how proud are you of this young man here? Do you know what? I am honestly so, so proud of him. Like he's just been working so hard this year. He's had so many projects going on this year. He's also working in Supervalley at the minute. So he's been working really hard in there.  He's a busy man. He's busy, yeah. He's busy. That's himself as well. Yeah. So he's just great for him to be out in the community and yourselves like Wreck and his great work that he's been doing. And you know, it's just great for him. Absolutely. Do you have much music going on in The Hub? Oh my God. From the minute we're in, he either has the AirPods or the TV, the speakers all going. It's all wrapped. Now there is some odd Elvis in there as well and Queen, you know, it's like, yeah. But he always brings a lot to The Hub. He's just a joy to be around. And he's just, he's fantastic. He's just. Do you enjoy working there, Paul? I do. That's good. That's good. Yeah. Well, Fun Robinson was here. Fun, you were involved with the music video. How did that come about for you? Well, I suppose I've been in the service now for about 10 years as a music therapist. So before it was all just music in person. But during that time, we would have done bits of songwriting and lots of singing and things like that too. But since lockdown, when we had to put everything online, I started working more with technology with service users. So whenever Paul came with his song, it was very easy for us then. We had made an investment in some new equipment and stuff. So I was able to go over to the low and set up a wee mini studio and just record it there and then over a course of an afternoon. And when you have a single, you have to have a music video. Wow, we'll figure it out. And how long did that take to process? Oh, well, we did the song in an afternoon, didn't we, Paul? Yes, we did. And then the video, we had a bit of back and forth, didn't we, about what was going to be in the video and things about costume or clothing. It's very important for... Well, a rapper has to be up there, doesn't he? Yeah. You know what I mean? Because he's a statement to make. That's it. That's exactly it. Both in your music and in your clothing and what you're wearing and stuff, you know. But yeah, we went down to Done Low then and just we were lucky with the good weather one day and we were out on the pier and a few other locations filmed it one day and then I took it back to the Hub and Letter Kenny to the media room there and did the edit and then all of a sudden it kind of, it leaked onto the internet. Where can you see, where can you watch it? So what's up on YouTube at the minute? If you go to our Facebook page DCITS, Facebook page, it's shared up there but also DCITS YouTube channel as well.  Yeah, so that's the thing we're... Because we've been doing a lot more stuff online and making videos, little short films, music videos, yeah, we needed a platform for that so now we're just launching our YouTube channel. So yeah, like and subscribe. Please do. Please do, if you can. Please do, yeah. All right, well, Alva Done and your favourite teacher it says here, Patricia Tunney, said a big hello. There you go. Hi, Patricia, very nice to you. Debra Smith says, well done, Paul. All tuned in here to fair play to you and we're so proud. And Lizzie Hanlon said hello, Paul and Anya from all the Hanlons in Dunlop. And Eugene Debra said, good man, Paul, you're absolutely amazing and wish you all the best. From all the Hanlons in that area. Well, thanks. All right, okay, a big pardon. Well done, Paul, from your favourite auntie, Mary. Yeah, there you go. I know she's annoying. You see, they're all claimed to know you now because you're getting famous now, you see. Yeah. You know, you're just amazing. And have you many more songs, have you any songs written that you haven't finished yet or? I've got a big few lesser songs. Have you? Oh, yes. I think fun would help me, but I've got my number one girl beside me, it's Anya Hanlon. And don't mess with the Hanlons family. You're absolutely brilliant.  Who's that? Darren, Ferry and Nell McGee saying hello to Paul. Congratulations, Paul. Sounding great from Noel Jackie Gallagher. Well done, Paul, from your drama, Shooter Zara. You're excellent. And Frank MacLennie says hello.  Frank's Frank. Frank is the guy who puts in touch. Oh, Frank, oh, Frank. Frank, he's agent, would you say? Kind of an agent. That's good. So, if we want to look now for you, for Paul McFadden, where do we look on the social media? What are you on Instagram? My Instagram is, oh, first of all, I have a new account because I could have twice. Right, and you're just, do you see? Do you see McFadden? Yes.  Yeah, big shout out to the health club as well, Lynne and Kerry, and Conor Duggan from New York, my brother from New York, my brother from Australia, all over the globe, all over. We love you all, brothers. Yes, indeed. You see, that's the cool man there. Well done from all, uh, C.A. Donegal. There you go. Wishing you all the best. Come here. It's brilliant work that the two of you do. It's amazing, and as long as you continue, and as long as you get the phone, so, and you just got run of them again, many places do you go back, do you run, or are you involved in? So, I'm currently working in Dunlowe at the minute. So, we are programmes for school leavers, so from 18 years up to 26. Yeah. So, they're full of life, so I'm just enjoying that at the minute, and you kind of, you be moved around to different services, so you get to meet new service users, and new staff and that, so it's great, like the management's a great support. So, the new way that we get to do these things is with a great team behind us, so it's great to have it, and he's just delighted with himself for the last week, since he's given us a shout out last week. He's just been on at home. When we heard he was coming up, and we had him booked, and we were just delighted. We couldn't wait. We couldn't wait to hear this man here, and he has just outshone everything, and he's done brilliant, and his family should be so proud of him, and Paul, I just want to say thank you very much for coming up here.  Hi, you're more than welcome now. If you're releasing any more singles, or you're releasing any more, maybe even an album, maybe. Let us know, and we'll come down, we'll do it down there, and get over with there, or else you can come up here to Highland Radio again. Yeah, okay, I need a big shout out to my favourite dog, Sarah Fon. I love you, Sarah Fon. I tell you what I'm going to do now, right, we do a programme at Christmas, right? I know it's a good bit away, right? And throughout the year, we just picked on behalf of a dozen people that we want, and we'd love you to come up to our Christmas show. Would you do that for us? Yes, I did it last year, and this year I will do it. Right, so that's all I'm saying now, I'm saying that one more time. Woo! Well done. That's an all right for us now, because this Christmas show is going to be amazing this year. Oh yes. We'll have to get security on there, and you keep people away from you. On you and Fon, listen, continue to success, what you're doing, it's amazing, and I'm sure you need to tell you that I'm sure the job satisfaction is something else, you know. So thanks very much. Thank you.  Most of us are U2 girls, still like the Spice Girls, and U2s well. Right, do you know what we'll do? We'll take a wee song from U2 for you. Yes, please. Right, we'll play this one for you, this is beautiful. I need a big set of two taken as well. That's my brother's girlfriend. Oh, you can't forget her. Oh, jeez, Paul. That'll be all right. Right, this is beautiful day. Paul, just see McFadden, rapper PaulXXX999. Thank you very much. No, no, no.


We already know that atoms of the same element having the same atomic number can have different mass numbers and such atoms are called isotopes. We have seen examples of these isotopes. So we can have these examples says carbon 12, 13 and 14. Now in each of these case they have the same atomic number that is 6 but their mass numbers are different. It's 12 for C12, 13 for C13 and 14 for the last one. Now atoms of the same element can have different mass numbers but can atoms of different element, can they have the same mass number? Well it turns out some of the atoms of different elements do have the same mass number and they are called isobars. So let's have a look at some of the examples of isobars. We can have a calcium atom. So I hope you are familiar with this form of representation of an element. If not we can have a quick glance to it. So 40 at the top this is really the mass number. This is the mass number of the element. And 20 at the bottom this is the atomic number of the element. So for calcium the mass number is 40 and the atomic number is 20. Now that means that the number of protons in a calcium atom it's 20. It has 20 protons. And mass number is really the sum of protons and neutrons. Now if protons are 20 the neutrons would be 40 minus 20. So this one has 20 neutrons and now the mass number comes out to be as 14. Let's take one more atom. We can have argon which is 40 the mass number. Proton number or the atomic number is 18 and this is the symbol of the element. Now in this case we can see that the number of protons they are 18 but the number of neutrons are really 40 minus 18. So that is 22 neutrons and again the mass number is still 40. So you can see that these are atoms of two different elements but they have the same mass number that is 40 which means we can extend it to say that they have the same atomic mass because the mass of protons and neutrons are almost they are almost the same. So if the mass number is the same the atomic mass has to be the same. We can also add potassium to this to this list. So this will be potassium has it has 19 protons and 21 neutrons again the mass number is 40. So these three are examples of isobars of different elements atoms of different elements but with the same mass number.