Lady Ada, what is this? Hey everybody and welcome to show and tell it to me Lady Ada with me is Mr Lady Ada a webcasting live here from the a fruit factory. That's the factory behind us We're here on the factory floor, but it's nice and quiet right now Everyone's gone home so that we can do show and tell Inviting all these people virtually into our cyber house to show off what they're working on We're gonna start off with some ater fruit peeps. We're gonna go on to some folks from the community. Let's kick it off with Jepler Yeah, what's going on? Hi, so we were inspired if you want to bring up my screen by These pictures that you see with a lot of out archived Apple software for Apple to and for Mac The this is a screenshot of Apple sauce for another piece of software for imaging the floppy's and Here it's actually showing a floppy that's been damaged because somebody ran a magnet over it And that's the area that's all black So we thought this could be an interesting tool to kind of understand a disc image In a different way than you know, just seeing a report in your program of bad sectors This is another one from Apple sauce and it is showing the Copy protection scheme of Apple to floppy's called spiral tracks. You can see that the data kind of starts here Or kind of starts here and then at a certain moment it shifts out And then it shifts out again And if the if the software reading it doesn't have the right code to emulate that then it doesn't work or it doesn't copy And so I wrote some software that does a similar thing But with files that are written by flux engine and grease weasel and it's up on GitHub I'll put the link in the discord chat in just a minute. So this is an image of a DOS floppy I think And you can see like the track. I don't know if you can see my mouse pointer Yeah, these these common lines everywhere are like where sector begins and then the tracks go from the outside toward the inside And not a map of like word of the camp at Burning Man No, absolutely not. This is from a Commodore floppy. This is again a simulated image but what's interesting about Commodore floppy's is This is mostly blank. You can see a little bit of data in the center Which is the directory and then at the outside the markings are one distance apart And as you go in those distances shift and that's called a triangular format in which a varying amount of data is stored So you store more in one revolution out here than in one revolution in here So they got like 10k more on their floppies as compared to Apple too This is such a cool visualization of this stuff. It's interesting that it's also art at the same time It looks like an unreleased From vision in fact there is I have to dig this up It was great There's an Apple to program that when you visualize it like this it shows an image Kind of up here and then when you load it in your emulator or heaven forbid on a real Apple It loads up and it shows the same image on the monitor So they they are on your wavelength and they do that. This is so neat. It's a very Apex twin. Yeah. Yeah, and then I'm not sure what this one is. We'll just skip over that. I think that's another DOS desk It looks like a DOS like copy and then I think that's a 720 I thought we had a Macintosh disk in this I will drop the picture of the Macintosh disk also in the discord chat Yeah, and the link to the software so if you like download an SCP file or another file that Is understood by grease weasel you can load that in or if you have a grease weasel hardware You can image your disk and then actually literally create this image and see what's up. So yeah All right. Well great working. Thanks for sharing the code and where can folks find out more about this in addition to the Chat, are we gonna have a guide or are we gonna put a thing? We are gonna have a guide eventually Yeah, this is pre-released, but it's gonna be part of the a different floppy when we have all right. Yep. Okay. Thank you So thank you All right, Liz you're up next. What did you build this week? Hello, um, my battery just died on it, but um, it's It's a wireless remote That has a rotary encoder and I'm just got a keyboard event New York I thought that'd be the easiest way to show it. So I Hopefully Maybe you should come back to me actually. Yeah, I will we also are showing the video You made a really neat video on ask an engineer So no matter what the world's gonna see this, but I'll come back to you in a little bit. Okay. Cool. Thank you All right, Melissa.  So I what I have here. Well, I'll start off with a little background first I have been working on updating the Raspberry Pi display drivers here that what we currently have is the use is called what's FBCP or frame buffer copy and So I've been updating them to use a new mippy display driver So it basically uses the same Driver for all the displays and you just give it like the initialization commands and everything and what I have here is one of the The tft bonnet here, which this one's actually a little bit harder because you had to do it has the display Backlight off by default. So I know for sure the drivers working because it's turning on the display driver the backlight on that and So I have worked and I currently have tested the the regular Pi tft the one with the larger screen on it and I've even done we're lost it. Oh here it is this one little one here and of course the tft bonnet and So I'm kind of working on that now Okay, good progress. I think especially since you mentioned at some future Five kernel 518 or whatever they're gonna discontinue the current tft module and so we'll have to move to this anyway So it might as well get it started working on it now, exactly I did have to update the Raspberry Pi to the kernel 5.15 for this to start working But it was actually pretty easy to do is it's one command Yeah, for the people want to be futuristic they can try it out So this is actually running on Buster, which is the previous release. So even that one works with the new Kernel update. All right, great. Thanks for the update. All right. Next up Pedro What you got going on this week? Hey, folks. Yeah, so oh, I guess I can't share my screen, huh? Yeah, you're gonna have to go Pedro Okay, so we'll do a little preview what we're doing next week. This is a little connection machine Of course coded by Phil B He's got some really nice animations in there a couple more that he sent over there will be loading up for some hero images But this you guys actually went and checked it out at the MoMA. We did or this is an actual size one and your giants So Yeah, so it's a Raspberry Pi case you can see on the inside here everything's wired up So nice little octoprins is what I'm gonna use this as of course it can run on pie or a little pipe go Like I'm sure got Python And on the inside we have a little Charlie Plexus. So we have the black LED acrylic on there These guys just slide in and out all the way modular I'll send you guys once you could check it out and Lot of the detail that Phil B really wanted in there was like all the vents inside here So you got like a little triangular vents. Yeah, and then all the grids on the top and yeah No reason our our computers can't still look like this. We can still design things I know this we can have we have plenty of space. They don't have to be great. We can slabs They could be great blocks with Cubes hypercubes No, it's got what we worked on last week. Yeah So yeah last week we did a mini foot controller. So this is a little three printed foot pedal You got a little Qt Pi in there and just one potentiometer So it has like a little linkage so you can get some nice range and some expression when you're playing Whatever mini controller, so that's a really fun one And then this week we did a little kind of product video for the new ESP 32 v2 It's got a bunch of new features and we got it running whippersnapper right now the beta version And we're just pulling in some data from our little a H a HT 20 temperature humidity sensor. So check that one out really fun one and then we've been prototyping a six panel cube So this is another Phil B collab. So we got the the Raspberry Pi four inside and cubes massive So So it's it's got this globe demo right now. That's rotating the globe You can kind of see the the orientations are all correct in the Would you call it the mapping is all nice working? Artica This is really cool. North pole everyone wanted to make these for a while and so I think with the Connection machine and then this folks will be able to get all the parts from Adafruit And then be able to make you know that that cool cube animation project that was always always really hard to Hard to do Yeah, there's an accelerometer in there, too So the next demo to get is the other pixel dust. Yeah, we'll have some some fun. All right and soon good work All right, we'll be showing some of the videos from your show from this week And then looking forward to this show next week of course cuz I guess that's when you're gonna be debuting the connection Yeah, for sure. All right All right, Philby you had something to do at some of these projects a little bit that that matrix cube Stuff that is like the hardest thing. I think I've ever done as a project Wow, that's he's saying a lot too because that we've we've collectively done some really hard projects And it's so hard that we make it easy for others So we have to go through all the like okay another human might have to use this collaborating with with the Rue is bros Like I did the math and there's something like 120,000 plus different ways you can arrange six LED matrices and if you run, you know, if you put it together wrong and run run the software It's like your globe isn't gonna work And so I was working with them how to make this completely foolproof that you get all six faces all assembled the correct way Like easily and so they they it's gonna be a 3d printed thing and they they're doing it and it looks awesome and It won't be like solving a Rubik's cube with you know, yeah 40 trillion wrong ways to do it It's like here's how it goes together, but I Go working on the connection machine code That they wanted that case forever. So I'm like really happy. We're working on it Let me switch To the overhead. I'm just working. I'm Is this gonna work? There we go. I'm just working on a breadboard. I don't have the fancy case yet But I can still write the software and so like one of them is this was a pattern in Jurassic Park There was a cm5 which is like a later model, but it was running this this shifting bit padding pattern thing So that's one of the demos we had to do Um, just random blinking lights. Yeah, this one. It's like thinking. Yeah, and actually that's based on CPU load So if I run like Pilant over here, you can see I don't know if it comes through Okay, yeah, it's like it's it's grunting there for a moment. So that'll react to what you're doing on the computer and then Also working on a music you gotta have the music visualizer. Yeah, of course you do Yeah, maybe Lamar can sing the the new song No, no, no, no, no, no, no, no, no, no, I can't tell if it's reacting, but it might be the sirens outside. Yeah Yeah Yep, but anyway Got those all working those will be part of the project and what I'm gonna do because you know Resbury pies are hard to come by right now is if you have a raspberry pie Pico I'll do it just one of the demos will run on a Pico so you can at least do some blinking lights for now and You can upgrade to pie later if you want. That's the plan. I think that's very kind of you All right, thank you so much. Well, you bet. All right I also can be good if you have like a single board computer or like a little mini mini mini ITX So you want to have a computer in there, but it doesn't have I squared C then the Pico could you know Do the blinking lights for you? Yeah, or the the FTDI things we have that can do. Yeah protocols Yeah, they only have one I squared C port though. So that's why the Pico is Yeah, cuz you can only have four of these matrices on on one bus So yeah Pico has two buses so we can do all the matrices. Okay. All right. All right Go back to Liz now. Thanks. All right. Thanks. We'll be always blink. It's so much blinking lights going on there All right, we're back. So I chased away the gremlins And now so basically this remote has two modes kind of like a streaming control mode And then another mode where you can control doom. So for a string mode you've got You've got Spacebar F for full screen Down is mute Then you can go forward backward and then control volume with the scroll wheel Honestly, you should have this web page linked from the guide because this is like the most useful thing I actually just found this So I will I will throw this in the guide. Yeah I'd like that it gives you the history too because like most I can't tell you what you'd currently press and you're like It doesn't do multi key now. It's indeed well. Yeah, it's really cool. Uh, so then on the side There's a little switch And when you do that, you got the doom controls. So when you do press here, there'll be a firing control left Movement up down right left and then also straight Left to right So, yeah So folks can like change up the key codes if they didn't want it to be these specific shortcuts And I also made it to this click on like a little wearable pendant and it fits nicely in your hand to fit nice and curved So learn guides up now. All right Thanks so much. Thank you. Liz. Next up. We're gonna go to I'm gonna go to Matt the maker and then I think I'll get some folks on deck after that. It'll be Michael then a foamy guy Or two two three one puppy because I think Matt the maker is doing kind of a mobile one Hey, Matt. Hey, all right. Let's try this out. You gave me a heads up that So you're gonna show a mobile version. So let's let's see how it goes. All right I volunteer at my local food pantry. I Started when I was 18. I started building things for this place in 2018 So this is the number machine where you either text our phone number with the randomly selected fruit of the day and you'll get a number in an order link or if you don't have a phone you just Put your hand over it and it prints out a number for you and then This is my Raspberry Pi that I use for remote access to take care of everything so if you don't have a Phone we'll use the form stack link on our computer and fill it out for you and I use push over to keep track of like giving out numbers and submitting Orders So see I just submitted my order So Now I'm gonna walk out front and Show you the number sign So I have a little trouble with my number sign sometimes the you'll see what I mean See where it like glitches out a little bit. I don't really know what the cause of that is So if anybody does let me know It's kind of like an art project then Yeah I'll look at that next number and then You walk in front here Sometimes the door sticks you got to pull it hard and then you'd Get your we your order would be packed already by the time you get in here And then you'd come through and pick from different things what you Want we got pet food and baby food and This is the remote used to advance the number sign So when you want the next number you push this and this is what the number sign is it's a Raspberry Pi 3 and the LED matrix hat so and you come through here and This this is our client freezer where people pick what they want from here and I have one of my Alarms on it. This is like the basic model where it just has a thermocouple coming inside and I Have then we go to the packing room and that's where I work So we have a fridge alarm a fridge alarm Freezer alarm now these ones have door sensors because all the other ones have Auto-closing doors and if you leave the door open on this one. It doesn't necessarily close all the way The LED's on the fridges are tied to the temperature the LED's on the freezers are tied to the door And it will change color and after five minutes that will send a text Sometimes when we're loading the double-door freezers The alarm would go off so I put motion sensors on them to reset the timer So that if you're here loading it, they won't go off And I'm gonna see if I can show you one of them. Yeah nice So here's the So you can see I push over here too And then I come through and my order is an email and then I open it and then one person Packs to this side one person packs to this side and I offer some extra choices would show up on the bottom row. Yeah, and then this is where we pack from All right, Matt's excellent demo and you know one of the things that I think that will be really helpful is in the future When someone says what can all this IOT stuff do? For you know my home or what can I do for this and this is a really good example of helping others? It sounds like you're able to be really efficient with a small staff and probably not a ton of resources and Operate a food bank. I also like that. They're solving like problems.  So we have a motion sensor Yeah, yeah, this one needs a special sense not just temperature sensor But a door sensor and that's that's how it is like there's never like whenever you're actually running a factory facility It's always like, oh, yeah Manufacturer is not going to make this for you.  Yeah Yeah, that happened a few months ago one of our freezers Started acting up my alarm started going off And I was looking at the graphs and it was not operating for like four to eight hours at a time And then it progressively got worse over a series of weeks until it finally froze over and died But at that point it was completely empty because everybody trusts me here Yeah, yeah, I think they do you're like the terminator you come in and you're just like That freezer is going to die and then it dies like three days later. Thank you so much mad and again Thank you for volunteering for a food bank and using your smarts to make this a really good thing for so many people Yep Bye-bye Bye. All right. That was that was a mobile. That was good mobile. I'm at the maker Okay, we're gonna go to foamy guy and michael and then two two three one puppy So if y'all could just keep it to a couple minutes, we could still get to everyone. We have plenty of time All right tim Hello, uh, so I am working on this week some stuff with display io and I'm basically made a helper that Does the concept that's on this learn guide page the multiple tile grids page where it's taken this three by three tile grid And blowing it up to a larger size by just duplicating the center tiles And so I've made a helper That makes it much easier to do this so we don't have to manually fill in all of those tiles You kind of just give it your either an image or even a A path to an image one of these ones is a path down here And then you give it the target size and if you want to set some transparency as you can do that So I don't know exactly which library this makes the most sense in but This is kind of the helper for this tile grid inflator is what i'm calling it And it's basically taking these really tiny Sprite sheets like this one's 33 by 33 and it's blowing them up to larger sizes by repeating the centers Yeah And then the real like reason why I went down this road Is actually this tab layout thing which i'll show real briefly as well This is like a new type of layout that will let you just add More tabs to it and then it has the current tab is active and you can change the text Color and you can also change the background Because of this tile grid inflator we're able to change the bitmap On that as well. So this is kind of the project that I built that helper for And then I'll also mention real quickly as well this week on the deep dive We're going to be doing like an episode about library development And I'm going to have catney on to chat about that So we're going to if anybody's interested in getting involved in library development This friday is a really good week to catch the the deep dive All right, and it's uh five pieces five p.m. Eastern two p.m. Pacific Yep, that's right. All right. Thank you Tim This tabs are cute. We're going to go to michael michael welcome How are you guys? Hey Yeah, so the past few months I have uh been learning how to like design my own circuit boards, which is pretty exciting So this is a project i'm working on it's like This is a board I designed. Let me switch my camera here Um, I just have some test code on it But the idea is that it is a neopixel pyramid thing So I designed these boards and got it fabricated through uh jlc pcb And then I actually hand soldered all the components onto it. Uh, and it's running off the at tiny 85 And I actually use the aida fruit Isp to program it and it's awesome. How a product like that old can like the guides are Awesome, and they still work Um So yeah, and yeah, so it's gonna be a part of like like an installation. All right. Well 3d is in even with You know this over a webcam and uh on show and tell this looks really neat. So take some photos Uh, you know my email address pt at a fruit dot com if you put them up online or if you um show any of how it's made Would absolutely love to get on the blog and more I plan to have five of these for like an art installation and they're going to be like hanging from the ceiling Um using like a fishing line type of thing. I think it's going to look Pretty interesting. So yeah, I'll I'll send you an email once I have everything documented Yeah, and come back if you do some footage of it and everything and uh LEDs are always a little challenging to take uh good photos and video, but that's part of the fun Yeah, awesome. Thank you. All right. Good work. Thanks. All right. Nice work, Michael. All right 2 2 1 2 2 3 1 puppy and that's a cool radio structure. Yeah Hey, so I've been working on a multiplayer video game that I'm designing And I needed a random number generator for map generation and authentication and all that and I could use the built-in one. I'm writing it in typescript from node But that's insecure because it's not real. It's pseudo rng and that's not secure and it's boring I could use an api to fetch a real rng um Number but that's relying on a third party and also boring boring And so I had some sensors lying around like I think I have a I want exciting a pct 2075 an lps 3x from aida fruit. So um temperature and barometric pressure So, um, I made a thing And here it is. Let's see it using apico some stemmy qt some bad soldering um and Yeah, I thought it was not boring. At least it's not boring something. Yeah, I ran a numbers based on sensor information Which is which would be truly random, right? Yep, and I'm going to share my screen so I can So I had these sensors and I plug them into the pico and I put u2if on the pico So if I share my screen, yeah, so as I see it here, I'll add it All right, uh one sec um ah Allow All right. All right, let's see this randomness. So this is my code And you can see I'm I'm setting some environment variables for u2if I had I had a problem getting it to connect. That's why this is here, but um, I'm importing everything I need And I'm creating the i2c I'm setting up the sensors and here's my function that gets the seed So I'm basically using this to generate a seed it'll use in random number generation So these and if you look down here, you can see Those are pretty random Yeah And what would be really cool is if your game actually used the sensors like if you are In like you want to go into the ice cave You actually have to turn the temperature down In your room and the sensor will be like you're now cold enough to enter the ice or the other way around Maybe you have to like heat yourself up so you can survive the ice cage Well the goal a higher temperature The goal is to have this like on my back end and it's a multiplayer game that other people just play on the web So they can have like the environment, you know because there's always like oh like fog comes in like you play games And there's like rain sometimes it would be cool if that was like actually happening where your server is like Whatever is going on if it's humid that day that could be fog in the game The question is there's a website called random.org that uses that'll deliver you random numbers based on weather information But you have to use their Yeah, you made like a portable A microcontroller one that anyone can make it just pop into their server or pop into their computer and have their own random generator Including your own game that's really cool. Yeah So i'm planning on open sourcing this because why not and Yeah, I basically have two of the same sensor here, but you know variation so All right, well good work. Let us know you know how to get ahold of me If you want us to put it in a newsletter or put it on the blog and get the word out I'm sure some folks are going to use this for all sorts of things that you didn't even think of which is One of the best reasons and fun to do open source is you never know what's going to happen with it All right. All right. Good work. Thank you. We finished on time. We did. All right Thank you so much everybody for making this the best 30 minutes of the week when we get to do show and tell Which we do every single week in some way shape or form 7 30 p.m. Eastern time Wednesday night show and tell thank you for Making it's the longest longest running live show and tell on on planet earth That we know of other planets not so sure don't know yet No, but I have a feeling if there is another show and tell and it's on another planet one day If we can all get together we can have an interplanetary show and tell very cool The type of folks that are here doing the show and tell now the type of folks that are going to make the Interplanetary show and tell possible. All right. So we'll see everybody on asking engineer in just a few minutes and see you next week Thanks everybody. Bye. Bye


Community manager for the DAO, so led the crisis response effort for the DAO hack and first parody multi-stake hack from every angle. He is the co-founder of White Hat Group and led the creation of token engineering commons. Griff Green is advisor for Polygon ID, Polygon Hermes, Bright ID doing good, and Stuart for Gitcoin, ENS, and Optimism. Griff? Yeah, right? Come on. Griff also leads to CryptoFocus Burning Man camps. Let's hear it for Griff Green. Yeah, people forget I lead Burning Man camps, too. It's too much, too much. Yeah, that's my slide, so thank God. So hi, thank you for having me. I'm gonna talk about something that doesn't get talked about too much. No, actually, we talk about this a fair amount in the theorem space, but what we don't, what we miss is that it's a huge opportunity. In fact, I would argue it's the biggest opportunity in the Web3 space and no one's talking about it as an opportunity. It's public goods. Public goods, thank you. Public goods are, it's a huge industry. One of the largest industries in the world and it's like the opportunities are endless. No one is making money in public goods space right now. It's led by governments and nonprofits and yet it's a $25 trillion a year industry as in governments and nonprofits are spending, not investing, spending $25 trillion a year to provide public goods for societies around the world. This is 25 times the total crypto market cap being spent every year. And it's being spent at a loss. It's being spent by governments and nonprofits. So this is, public goods are one of the four types of economic goods. And I'm sure a lot of people have seen this slide or something like it before. But I wanna talk about it in a little bit of a different way. Because in my opinion, these are like places where things end up, but it's not definitive. So on the left side we have private goods and club goods. These are excludable goods. The cool thing with excludable goods is that you can have business models. Business models are like these really cool games that end up allowing people to score points in very predictable ways, right? I see money as kind of a point system. And the way that we coordinate around money could be thought of as like a game. Hence the game version of this slide deck. I kind of went with that theme. So businesses really succeed at providing excludable goods. It's the invisible hand of the market. These point systems, these business models, these games, they allow for the invisible hand to just coordinate everything effortlessly because everyone uses profit as a shelling point. Everyone's on the same game. They're all trying to win, get the high score. But in the non-excludable side, as in half of the different types of economics goods, there is not this game, right? The game is taxes and donations, which I would argue is like sacrifice. People have to sacrifice to provide value in the non-excludable side. So this is common pool resources and public goods. I just call them all public goods. Non-excludable goods, public goods. But what's really interesting about this slide that people don't really talk about enough is that for instance, fish in a bay, it's a common pool resource. But actually in practice, government's actually moved fish in a bay from being non-excludable and they make it into a club good. They make it excludable by requiring people to have a fishing license.  They become excludable and we move them over here because we have such great systems in place. But what if we could create great systems that allow for win-wins on this side of the chart? What if we can actually take things that are normally excludable and make them non-excludable? What if we could create abundance for society and take care of the less fortunate in society by creating systems that actually work? We don't have a choice. We need to do this. We're failing at the game. The collective needs game. The environment, just general global coordination is really shitty, like full stop. And if we don't fix it, we're in huge trouble. But we are fixing it. It's already happening. Actually, so many people in Web 3 are building a new way to coordinate on a global level and in win-win systems. They're optimizing the games that are being played and creating new games that actually allow for innovation. And this is what I'm gonna talk about mostly today. I'm gonna talk about all the cool projects in Web 3. Well, I'm gonna highlight a few of the many awesome projects in Web 3 that are trying to get to the solar-punk future that we all want. And I really want to create this framing so that you guys can understand, to get to this future, we need to build win-win systems that allow the people to coordinate effortlessly. So where do we start? Well, governments have a lot of funding. This is not where we start. When governments fail to provide public goods that are in demand, people start nonprofits. Nonprofits are the seed of the revolution. When people don't like what the services they're getting, they start nonprofits. And nonprofits need our help more than governments, by far. Nonprofits are literally just burning money all the time. Everyone who's participating in the nonprofit system in some way or another is sacrificing. And it's tragic because they're creating so much value. And you know it's creating a lot of value because it's a huge industry. Sure, it's not 25 trillion, but I think $500 billion being donated a year just in the US is big enough of an opportunity for us to make some major headway. So the cool thing is this is already happening. You know, I feel like in 2016, 2017, this stuff was a dream. We're like, we're working towards this, but we're in a place where there's so many awesome projects that are doing it. And I kind of want to create a separation between two types of economic games that are being played of different models, we'll say, of public goods funding. So there's the donation games, which are amazing, right? We're always gonna have donations. Donations make people feel good, right? And these types of donation games that are being played in Web 3, the donation games rely on donations to fund public goods. Now often they create incentives for more donations, whether it's social or straight up financial, that there's usually some kind of system in place to optimize the donation system and make it more fun, especially by giving governance to participants. It's very common. The economic games actually skip the donation side. They rely on supply and demand to fund public goods. This creates really interesting entrepreneurial opportunities for participants in the system and it allows that invisible hand to actually make some headway. And just like donation games, they give governance to participants. I can't overstate this enough. It's so cool in the Web 3 space. In the public goods funding space, normally, it's very top-down capital controlled. Governments say we're doing this. Nonprofits have donors and the donors say we're doing this. This is what the money is earmarked for. But in Web 3, we build systems that allow it to be bottom up. And where the participants, not just capital participants, but through reputation systems and other systems that we have, there's a plethora, like you saw council. There's so many cool ways to provide governance for the players that are playing the game. So let's start with donation games. So one of the landmark donation games that was started in the Web 3 space are these Grant Dows. So Molek, Meta Cartel, Meta Gamma Delta. These things are a fundamental building block in, I think, almost every public goods funding piece. And I should have put Dow House on here. I want to give huge shout out to Dow House.  And there's somebody to watch. One of the things I want you to pay attention to is these are the projects that are going to be leading this new industry that's emerging. And Dow House is important. So the way Grant Dows work, it's basically a social club, you could say, a donation club, where when you put money into the Dow, you get non-transferable tokens that allow you to govern the pot of funds. And if you don't like how the Dow is going, you kind of have a money back guarantee. You can rage quit, get your money back out. So it's a really cool social system that in the end has collected millions of dollars for donations in the Ethereum public goods space, especially. One of the biggest donation games, of course, is quadratic funding. Quadratic funding is a really cool system that emerged out of the radical exchange community, the Radical Markets Book. And Clear Fund and Gitcoin have implemented it. Of course, Gitcoin has raised somewhere around 70 million dollars for public goods using this donation game. Yeah, a round of applause for Gitcoin. Those guys, man. And I should probably say us, because many of us are GTC holders in the crowd. I see you. I see you out there. So the Gitcoin Dow has been managing, is starting to manage the quadratic funding system. And it's a really interesting game because the foundational layer is the public goods funding team. They are able to talk to big wigs in the Ethereum space that have a lot of money that want to fund public goods to get a big matching pool. So this is why it's a donation game for sure. I mean, it's clearly a donation game, but it doesn't work without a really large matching pool. And the larger the matching pool, the more interesting it is to donate to these projects. So the governance over this matching pool actually happens from each donor. So if you donate, each project can get a share of the matching funds. They get more of a share if there's more people and more money donated to the project. And of course, it's a complicated equation, I'm not gonna say. But it's really cool as a participant in the system because you're like, okay, if I donate a dollar, they'll get $27. Wow, that's 27% or sorry, 27x times my donation. That's amazing. But if I donate $100, then $250 will go to the project. So I'm allocating $250 out of the matching pool. How much do I donate? And it's kind of a fun game. This is the best part about all this Web3 stuff. It's fun to play. Donations usually are not this fun. The next donation game is protocol funding. Now, it kind of feels like it's not a donation, but protocol funding is really led by optimism, ENS, Polygon Hermes and Bitdow. And basically, they're taking a percentage of the fees that they're collecting and allocating that to public goods. Now, this is basically like a Web3B corp, a benefit corporation in the States where it's baked into their mission statement that they're going to support public goods. And optimism has one of the coolest systems because they even add this retro public goods funding piece to it where they can find, they can get nonprofits or people who are developing open source code to go find investment, knowing that they could get a grant later if they succeed and it creates an even another system on top of it. It's super cool. My favorite donation game, and I'm a little biased, is give backs. So give backs is a pretty simple one. Whenever you donate to a verified project on Giveth, 100% of the donation goes to the project and the donors get up to 75% back and give tokens streamed over time. So what's really crazy about this is if you donate $100, then you will get $75 in give up to $75 in give back into like for donating. Part of that will be liquid so you can sell it, you can donate it, you can play the next game that we'll talk about. And the other part is streamed to you over time until like 2026. So if the give token goes up because it's a volatile currency, you could even get more money than you donated, which is crazy. This is the kind of stuff that can only happen in web three. Give power is really important for the Giveth roadmap. Just, we're in a phased rollout for the launch and it just launched the first part, the stake in a locking piece two weeks ago. Major shout out to Lauren Luce, who runs that piece of it, runs the economy. Give power is really important to Giveth in the like to evolve nonprofits to the end goal. One of the big mission of Giveth is to take nonprofits, meet them where they are and eventually help them create their own economic game. So that they can be basically an impact down. And Giveth Power will be the first opportunity that many of these projects have to make a win-win offer to their donors.  You know that they just got Giveth tokens, right?   So specifically the project will get higher up on the ranking list where they come up, so it'll come up faster to be seen by more people.  So you're basically with Giveth Power, the Giveth token holders are voting, they don't even know they're voting, they're just supporting, they're just staking behind their favorite projects, but they're voting for how give-backs are distributed. So it's kind of a cool economic game tied with the donation game. And what the coolest thing is this psychological shift that projects have to get to make when they say, hey, you can earn a yield while supporting me, as opposed to you can sacrifice while supporting me. So the really, my favorite part of the Web3 public goods funding stream though is the economic games. In the donation games, donations are always part of it, which means there's a little bit of sacrifice injected into the system. That makes it really hard to have that invisible hand making magic. But in economic games, it's win-win all the way. And this happens through issuance. So Ethereum and Bitcoin and all the blockchains are, in my opinion, public infrastructure, like in a city, the water or electrical infrastructure. Yes, you have to pay a bill, you have to pay a water bill, electrical bill, or you have to pay transaction fees to use the blockchain. But the infrastructure itself, the access to the tooling is a public good. That's why this infrastructure is usually funded by governments. But with blockchains, it's funded by issuance. And that's the key for these economic games. Issuance is sent to people who are providing good work, right? So in Ethereum, it's the miners, and now the stakers. Bitcoin, it's the miners. But there were some really cool innovations that many people have forgotten about and are never heard of in 2013, 2014 that actually use this to direct public goods funding. Zcash actually supports cryptographic research. This is without this protocol. I doubt we'd have rollups today. And it's just the block reward. And then name coin, prime coin, cure coin, these are these bottom threes. They're crazy. Like very few people actually even follow these projects, but they're runaway economic games. Prime coin, to mine a block in prime coin, you have to find a new prime number. People are mining blocks every day. Every minute, there's a new prime number found by prime coin. And I doubt most of this room has never even heard of it, but it's a runaway economic machine. And no one's donating, no one's paying taxes. People are just getting the block reward for finding prime numbers. Name coin was actually the first fork of Bitcoin, and it's kind of like ENS. Does anyone have a dot bit domain? No hands. Okay, cool. You can, it's infrastructure that exists even though no one's using it. It's amazing. And cure coins folding proteins for cancer research one block at a time. It's so cool. They're using issuance, but it's in the digital space. What's exciting is this move towards bringing it to meet space. So like, Pamvala subsidizes communities like Bitcoin subsidized security. They're using issuance to actually support community groups to meet and share ideas. And rainbow rolls and public nouns, this is the NFT style. It's not all fungible tokens playing games. Rainbow rolls sold like 900 NFTs and funded get coin matching rounds, helped support some Giveth projects and also wiped away $7 million of medical debt from random Americans that they were able to buy up their medical debt. Incredible project. No one donated. People bought NFTs they could sell. There's upside. Public nouns. It's just started two weeks ago again by the Dow House crew. It's kind of like a mullet Dow, but instead of the shares being non-transferable, it's an NFT that's worth one vote in governing the treasury, right? And the intention is to spend it on public goods. So it's super cool and it's basically a mullet Dow and instead of rage quitting and getting less, you could actually potentially sell your NFT for more than you paid for it. Token Engineering Commons is another amazing economic game. This is in partnership with the Common Stack. This is the first commons the Common Stack ever launched. It's really cool. It uses a bonding curve, which I don't know. How many people have heard of bonding curves?  So for the ones that didn't raise their hands, a bonding curve, especially a token bonding curve, is a very simple smart contract that when you send it money, it mints a token and it holds that money in the contract. And if you send the token back, it will release the collateral and burn the token. This will win a Nobel Prize in economics. I promise you this. Simon De La Rubie Bank Court, they created something that has never been seen before. This is a one-sided market and it solves the liquidity issue for small market cap tokens. Like, paintball was super cool, right? I said it before. But when they issued their token, it had no value at first. And eventually, Uniswap found its way to Uniswap and it created a value. But it still has very little liquidity. With a token bonding curve economy, it doesn't have that issue. It starts out with infinite liquidity because issuance is dependent on demand. Just super cool. And it uses fees throughout the system. When people are issuing or minting or burning tokens, a percentage of the fees go to the common pool and also at launch, a percentage of the launch goes to the bootstrap, the common pool. Really interesting system that we at Giveth really hope to learn from and apply to our end game, which is Gerbs. So, Gerbs are actually bonding curves backed by Giveth, by Givtokens. And they're kind of the sweet spot at the end of the rainbow, the treasure at the end of the rainbow for every nonprofit who comes on to Giveth.  Now with Givpower, people are locking capital, they're locking Givtokens behind a project. There's capital being locked behind each project that's participating in Givpower. With that locked up capital, we can launch a bonding curve. And the bonding, of course, there's a lot of cultural stuff that goes into this and working with the common stack to launch more commons and to understand the different reputation systems and the other kind of looking at projects like council and how do we govern these systems so it's not just capital, it's not just the bonding curve that creates governance tokens, but there's other governance involved. This is the, we're, sorry I'm ranting, but long story short, we're still in the research phase on how to launch these impact dials with bonding curves. But once we figure that out, once we work with the common stack to actually understand the best ways of doing these things and making it easy for nonprofits, any nonprofit could launch its own impact dial through the Giveth system. The coolest thing about everything that I'm talking about is that none of these things are in silos. Web 3 is so amazing for its configurability, for it's, everything can kind of plug into each other. Everything I mentioned is public goods legos. Like the public nouns dial could actually donate Ethereum on Giveth and support Gitcoin grants, incentivizing lots of grants on Gitcoin to get funding through extra donations. And then once, and then they'll get give backs. They'll get more Giv tokens that they could further donate to other projects or they could stake and give power or one day they could use to invest in an impact dial using a GERV. Public goods legos is where the real benefits here. This is where, this is why Web 3 is going to save the world, you know? Because we can plug in all these ideas into each other and build a new industry that never existed. So I'm sure a lot of you are builders, a lot of you have like an impact project that you want to see become an impact dial. And maybe some of you are just, you know, hey, I'm just a passive supporter of these projects and would like some upside. Well, I've founded a lot of projects in this space. I wanna highlight three of them that maybe could help everyone get involved more in the public goods space. So first is general magic. Probably many of you have never heard of general magic. It's been running around for a well over a year and it's a service dial that actually has helped many organizations, Panvala, Giveth, Token Engineering Commons, Common Stack and countless others. And like ENS, we just built the ENS swag shop which is super cool. So if you are looking to, if you're building in this space and you need some support, you don't have a good designer or you even just wanna offload a full project or you just wanna swag shop or you want to integrate praise, a reputation system. You can reach out to us at general magic. We'll help you, we give insane rates in the crypto space because this is kind of an, has an altruistic swing to it even though it is a for-profit company. So I would say it's about half the market rate. So definitely reach out to us and we can support you in building the next public goods Lego for me to talk about. And I have a huge announcement from the Common Stack. I'm actually launching a new service where we want to help you launch the Commons. So we're supporting, we've launched the Token Engineering Commons or we helped the Token Engineering Commons launch, I should say. And we're working with GraphStreets Economics to support them in their launch. And now we actually have the bandwidth to support a few more Commons.  I want to learn about collaborative economics. I want to design from the bottom up with my community, Mission Vision Values, parameterize the economy. Like you guys, the community would do it themselves instead of us. Reach out and let's work together on that. And of course, Giveth. Giveth has a token and this token is going to be the lifeblood of a new industry. And it's a really easy, passive way to get involved if you want to become part of the Giveth Dow and support this emerging economy. Definitely talk to me and I can help you out. I can help you out with it. Basically, if you're working in the public goods space, I want to talk to you. I want to work together. This is, there is no competition in public goods. How can you compete when you're creating abundance for society? Right? Thank you so much. I'll be right outside and we can chat.


So, the subject of my talk is how to use LLM in observability, and one other thing I'm going to tell you is that everything you've heard so far and everything you've heard, you're going to hear, the rest of the day about observability is all going to change in the next few months. And I'm going to show you how. So, my name is Asaf. I am one of the co-founders and the CTO of Logs.io. We're an observability company doing observability with open source and happy to be here. We're also presenting at KubeCon, booth H24. So, obviously, you've all heard about the kind of like the LLM, chat GPT and all the what's happening right now in the industry. So, for one thing I started figuring out, okay, how do we, let's ask chat GPT what is the best way to integrate LLM inside of observability and it's the response that you get. So, obviously, kind of like use whatever chat GPT thinks it is. And you can read here a bunch of the examples that were thought about, but this was actually surprised of the level of intimate information that chat GPT has with the all observability domain. So, obviously, doing some analysis about log analytics, pattern recognition, anomaly detection, both from metrics, logs and traces, natural language querying and reporting, which is also becoming very difficult and definitely a very good use of chat GPT and other LLMs to do it. Alert management and triage, the ability to communicate directly with people around the learning, around what's going on. This was kind of like other topics that chat GPT came up with how to use LLM inside of observability. Root cause analysis, there's so much data in observability, the ability to understand all this data in a very, very quick way in a very quick format is another thing. Predicting the analytics, knowledge-based enrichment and other different aspects that we can use LLM. And this is all came from actually using chat GPT about how to use LLM within observability. You can run this query yourself and realize. But we think there are other things to do it. And I think one of the one of the limitations of LLM is the lack of creativity. And these answers are great, but they're not as creative as we can find. So this is our take about how to use it and how to use LLM. So there's two main aspects of how we think of using it. One of them is simplifying user experience. We all know open source is great, but trying to use it is a nightmare. Anyone here running Lucine queries, anyone ever tried to build a visualization in Grafana, it's a lot of fun. It takes a lot of time. After you've done it five times, it's enough. Not to mention creating alerts in Grafana or OpenSearch. This is enough to do once. You don't have to do it five times to realize that this is too much work. We actually use it internally, our support team and our customer success team today already use chat GPT. It does amazing job about creating visualization, gets you all the information. Same thing about creating alerts. So this is a very good way of kind of like using it. So one way is let's make these observability solutions which are hard to use, simple and more accessible for human consumption. The second thing is how do we create an error product? How do I get my data out of my Kubernetes cluster? Again, any of you have tried to write, change, modify, helm charts, install the different things inside the cluster. It's another thing which chat GPT does a very, very good job at. You give it what the configuration is. You ask it to add more configuration. It does it in a very good way. Let's remove the mundane error prone tasks from a human. But the real future is not about that. The real future is like, I don't want to look at graphs. I don't want to look at the graph, figure out at the line. I have an anomaly. I don't need to look at the legend of the graph, try to figure out what is the name of the service, what is the name of the pod, what is the name of the node, which cluster, which region. I don't need to read all these lines and numbers. And we all know how many graphs, if you're running a Kubernetes clusters, if you're running a complex environment, how many graphs you need to look at in order to understand the data. What I actually want to do, I want to chat with my data. I want to be able to ask questions. I want something else to visually look at all the graphs and all the information that I have and make the best out of it. Because I need to know if there is an anomaly and I want the LLM to be able to say, hey, you have an anomaly on this pod that happens between this time and that time. It happened post the deployment because we're tracking all the information that exists. So the amount of data is amazing and the ability of human being to be able to look at it is very limited. This is, I think, the six or seven year in a row that we're running an observability survey. Every year the MTTR, the meantime to resolution, increases. So despite the fact that the observability solution are becoming better and better, the increased level of complexity is overrunning the progress of observability. And we do think that this is going to change the ability for me to interact with my data, ask very simple questions like post deployment, tell me if the state of the system is the same or do I have a degradation in the system. Tell me what's anomalous in all of these hundreds of graphs that I see in my system. This is what we think the future is going to be like. And our vision is that in the next few months, not even a year, the way observability solutions are going to look like are going to be completely different. It's going to be a lot of chat-based communication and less graphs to obtain it. So if you do want to see the future, we already have it working. Come check us out at booth 24. So we're LogsIO. We're happy to demo it to you and get some insight. I appreciate the feedback. Thank you very much.


Welcome everyone. This is our talk, Metamorphosis, when Kafka meets Canon. Talking here today, we have Jakub Shouz, who is a principal software engineer at the HeadHat messaging team, and myself, Otavi Pisci, who works as a senior software engineer on the HeadHat Fuse team. On the agenda today, we will discuss a little bit about challenges of application integration. We will cover the basics of the project that we want to introduce you. We will finish with some live demos and closing comments. So as application developers, one of the challenges that we always have is to integrate systems. We continue to have to make our systems talk to other systems and talk to the external world. This is a challenge that keeps evolving, and with the introduction of tools such as OpenShift, Kubernetes, Kafka, there are a new set of functionality that we can use to simplify the job of integration. And this is what we are going to cover today. So, what is Apache Camel? Apache Camel defines itself as the Swiss knife of integration. It is one of the largest and most active Apache projects. It's widely used all around the world to support multiple products and projects. Camel is an open source integration framework that is very flexible, supports multiple data formats, protocols, products, and tooling. Developers using Camel can create routes that implement enterprise integration patterns to interconnect systems and define mechanisms that allow them to define rules that can be used to filter, transform, or process exchanges that are going from one system to another or multiple systems. Those enterprise integration patterns such as the content-based router, splitter, aggregator, they can be used to solve problems such as how do we move data from system A to system B or C based on the contents of the data being transported? Or how can I combine multiple pieces of data and send it as one to a REST API? To interconnect to these systems, Camel uses what it calls components. Components are the primary extension points that allow Camel to talk to external systems. Camel has more than 300 components supporting multiple products, protocols. For example, Camel has components to talk to Salesforce, to talk to AWS S3, AWS SQS, and so on. As well as protocols. For example, AMQP, OpenWire, HTTP, FTP, and so on. So now that I gave you an overview of what Camel is, I would like to present a quick demo that shows how Camel can be used to transport data from a GMS broker to a Kafka broker. This is not a live demo. It is something I recorded. So Camel has multiple domain specific languages that can be used to create these routes that do the work of moving data from one point to another. This is a very simple example that I wanted to show, to show you how Camel can be used for that. It is a simple example that contains basically two classes and the work doing here is rather simple. We have, for example, the system basically reading some parameters from the environment to know from where to read data from and where to send data to. After we read those parameters, we use those to instantiate the GMS to Kafka route which is what actually configures the route on Camel to set up this GMS to Kafka exchange. After this is created, then we have this is passed to the Camel main runtime which is then configured via the route. The important part of the route configuration is it is on this configuration method. Basically it is doing three things here. First of all, it is configuring the SGMS components, passing the information for what is the broker that is going to be accessed and what is the address of the component. Just go back a little bit and what is the address of the broker then followed by a formatting of the URL used to configure the route and then the actual configuration of the route on that from to. Now, with this app and running, then we can actually launch an environment running this application with a mock set up to simulate data flowing from this GMS broker to the Kafka broker. On this example here, I have an environment that is set up using Docker compose which is going to bring up GMS broker, this integration tooling and the Kafka environment with Kafka and Zool Keeper plus one tooling that will simply read from the Kafka and display it on the screen. It takes a little while to get started and this shows the route that was configured. If you are using some, if you are having the configuration outside on a particular file, for example, this is what you would have configured there. We have the usage of two chemical components here, the simple GMS two and the Kafka component. They are used for executing this interconnection between those systems. With this app and running, we can go and access the management console of our GMS broker to insert a message and simply simulate some traffic flowing to the GMS broker. We have configured here this queue, called demo queue, which is the source point for this exchange. Here we are adding some data to simulate the message and send it. So, done. Basically, what is happening here is that Camel is reading the message from the GMS broker and executing the route to Kafka, which is done read by that custom client. Now, this is nothing overly complex and probably many people here already know it and the idea was to show what was the steps and what was the process in order to configure an integration solution based on Camel. If you are planning to run this as a support for a product or, you know, to run it on your customers, there are many other qualities that you would need to take into consideration for that. Security, scalability, reliability and so many other things and although Camel has awesome support for that, these are all things that you would need to take into consideration and add it to your application. If you are a Kafka shop and if you are expertise relies more on the Kafka side, you may not have the experience or may not be comfortable with adding those features. And this is what we will leverage further on the Subsequence slide. Right. So, that was a great introduction to Camel. Now, we will do a quick introduction to Kafka itself. How many of you heard about Apache Kafka and I hope all hands will be up? How many of you actually used it or are using it? Right, that's not so many. So, a lot of people know Kafka for its messaging broker or streaming platform and so on. And they don't realize that Kafka is more than just the broker. It's more an ecosystem than the broker itself. The broker is, of course, at the center of it, but there are the different consumer, producer and streaming APIs. There's the Mirror Maker and today Mirror Maker 2 as well. There's a lot of third party integrations if you use Spark or different frameworks. A lot of them have Kafka support built directly into them. And one of the components which are part of this ecosystem is Kafka Connect. How many of you know or used Kafka Connect? Right, that's significantly less hands than what we had for Kafka itself. So, Kafka Connect is really an integration framework which is part of the Apache Kafka project. And the idea really is that you have some external system. You use the Kafka Connect to get the data from the external system into your Kafka broker. And then you can do something with them, of course. And then you use again Kafka Connect to dump the data to some external system again. And the Kafka Connect framework is using something called connectors which are basically plugins which do the actual integration. So, it's really just a framework where you plug your own connectors or connectors which you downloaded, which someone else created, and then you use them. And so you can really go and write your own connector. It's really quite easy. You basically just implement two interfaces in some Java classes. And a lot of people are asking, does it really make sense to write your own connector when you can write your own kind of consumer producer and so on? And the advantage of Kafka Connect is that it does some things for you. So, A, it's distributed and scalable by default. And I will talk later a bit more about how it scales and distributes. It has automatic offset management, so you don't need to care as much about things like reliability and commits and so on as you would if you write applications really using the consumer or producer API. It has built-in support for some simple transformations when you need to transform the messages. And it kind of works very well to transition between the things like streaming and batch processing and so on. And so here are some key Kafka concepts which would be useful later when we are showing the demos. So we already talked about the connectors. The connectors are always either sync connectors or source connectors. So basically on this picture, the source connectors are used as a source of data for Kafka. Sync connectors are used to dump the data somewhere else. And these are always separate connectors. So if you just want to ingest the data from something into Kafka, you don't need to write both sync and source. You can write just one of them. And then the connector itself, it's kind of a bit of a virtual entity. And it has something called tasks, which are again basically always in the sync or source tasks. And these tasks are what's actually doing the integration itself. And then two more things to mention is the key value converters and the transformers. So the transformer is what does the transformation when you use it. And the key value converters is what tries to convert the data which you are ingesting into Kafka or sending out of Kafka somewhere to kind of convert them between the different systems and make sure that in Kafka, they are usable as a regular Kafka messages. In the external system, they are usable with whatever is native there. And then the Kafka connection is really running two different modes. One of them is the standalone mode. There is always kind of a single worker. And there's some configuration file locally which the work reads, creates the connector, and stores the offset of the Kafka messages which it processed locally and so on. And it's useful, for example, if you have some application running on some VM, you want the application to read some data from the file, but you don't have the data in the file, you have them instead in some topic in Kafka. So what this standalone connect can, for example, do, you can kind of run it on the same VM. You can read the messages from Kafka and kind of simply dump them into a file. And then the application can read them from a file. So that's kind of one of the examples where the standalone connect can be quite useful. In the OpenSheet or Kubernetes Vault, you can, for example, imagine this as a sidecar pattern with multiple containers in the same pot. Then kind of the bit more interesting mode is the distributed mode where we really have multiple workers running as part of the Kafka Connect cluster. One of them is always the leader. And they synchronize through the Kafka broker itself so you don't need to have any additional software to the leader election synchronization and so on. And they store everything inside the Kafka broker itself, so the offset, the configuration and so on. The workers themselves, they are basically stateless. And the way it works is, you have here, for example, the cluster is free to workers. And when you deploy the connector, the connector has one or more tasks. And the tasks are always scheduled into the different workers. So you can see here the connector one has just one task running here. The connector two has two tasks, three tasks, actually. The connector three has two tasks and so on. And then one of these would die. It can reschedule somewhere else and continue working somewhere else. So this was especially interesting in the time before everyone was using Kubernetes and OpenShift. To some extent today it's a bit competing with that because a lot of this functionality can be easily built even without Kafka Connect. You can just have pots which scale, they restart and so on. But it's still quite useful. And in the last demo at the end I will show how you can use it on Kubernetes and OpenShift as well. Okay. So what happens when you mix these two super flexible, super powerful projects? So let's meet the Camel Kafka connector. The Camel Kafka connector is a Kafka connector that was built on top of Apache Camel. At the head hat we started it as a proof of concept to evaluate the feasibility of whether this would work. And after all successful proof of concept we donated the code to the Apache Software Foundation and it became a sub-project of the Apache Camel. The idea is that it makes it possible to reuse the Camel components in a very simple way. In general, basically what you need to do is configure a properties file, fit it into the Kafka connector in time, and that's it. As I said, Camel has support for more than 300 components. Initially, for the Kafka connector, we are focusing on a selected list of 11 components. However, it's very likely that many of the components from Camel already work out of the box. However, it is necessary for us to ensure that some tests are executed and there is some quality assurance and that's why we are selecting these 11 components initially. As a project, as I said, it was recently donated to the Apache Software Foundation. It was well received by the community. The project is already receiving some contributions and we are initially working towards a stable release. We have been working through our issues and to do to make sure that the project has all the flexibility and quality assurance that would be expected for something that is available to the Apache community. I would like to show you a demonstration of Camel Kafka connector running in standalone mode. It's basically the same thing as I showed on the first video, but this time running through the Camel Kafka connector. As I said, the idea is that you basically configure the integration in one configuration file and you feed that to the Kafka runtime. The configuration file, if you look at it, it basically has two big segments. The first one is used to configure the connector-specific things. What is its name, how many tests, connector class and the converters for what we explained a little bit earlier. The second segment on the configuration is basically what is used to configure the integration itself. It points to what are the endpoints that you are going to use, what are the components that will be used for the integration and, of course, some component-specific configuration when that is needed, which is the case for the simple GMS2 component that we needed to configure the connection factory and the remote URI for the broker. One additional configuration that is needed is also with regards to the bootstrap servers. This points to the Kafka instance that you are reaching to. Again, with the environment in a similar fashion as the one before, we can run it through the GMS broker and send some message to simulate the traffic. Very much the same thing as before is going to happen. Once we add the message to the Artemis console simulating the traffic, this will be consumed however this time by the KML Kafka connector instance and the message will be displayed on the screen. Basically adding the contents and hitting the send for... We should have the message here. Now, as you could see, it is significantly simpler, I would say, to get started with integrations in this format, especially if your expertise is on Kafka and you already expertise it with Kafka, so this makes it quite easy to get started. However, as a simple solution, this would probably not even be enough and that's where comes the demo from Jakub. So, just give us a minute to switch to laptops. Right, so what I will show now is how you can run this whole thing on OpenShift or to borrow some Kubernetes, but I'm using OpenShift 4 in AWS. I will try to do it live, so maybe we will have some fun if you run into some issues. I will use for it a project called Strimsy, which is something that I'm working on. It's a project which is part of Cloud Native Computing Foundation and it's a set of operators for running Kafka on Kubernetes. So, I actually have already... My Kafka cluster deploy, you can see the zookeeper ports, the Kafka ports and so on. So, that's already ready because it takes a few minutes always, so I saved some time, but I didn't deploy yet the Kafka Connect. So, to deploy Kafka Connect with the operator, we need to here do several things. So, I will create some Kafka topics, which I will be using later by the connectors. So, this is some topic called Telegram topic, some topic called S3 topic. Might give you an idea what I will be showing later. I also create a user, so this demo is using authentication and authorization and so on, so I need to create a user which will be used by the Kafka Connect to connect to the Kafka cluster.  Also, to be honest, the cluster is not that big, so I'm actually running just one worker node, and I will anyway not run that many tasks to actually need more, but it's the distributed deployment. And because I will be using things like AWS and I don't really want someone to start mining bitcoins on my AWS account in five minutes, then I will use secrets to kind of push credentials for AWS and the API keys for Telegram into the Kafka Connect connectors. So, what I need to specify here is to mount two secrets with the credentials, and I will later use them to configure the connectors. So, to deploy all of this, all I need to do is kubectl apply, and the connector always needs some time to start and to pull the image, so in the meantime you can have a look at how we will deploy the connector itself. So, we again use the operator pattern to deploy them. If you would run it outside of Strimsy or somewhere on VMs and so on, there's a REST API that you can use. Jason, which he would put into the REST API interface looks very similar to this. It will be basically the spec section of the custom resource mostly copies the REST interface. And what I'm doing here is I say, okay, I want to use the Kamba source connector. So, that's the source connector which is based on Apache Camo. I want to run only one task of this. That's here. And then I need to specify the key and value converters so to make it a bit easier for us to see what we are sending, I will just use the Strim converters to get it as strings. Then I need to specify the topic where the messages will be sent. So, in this case, we will connect to Telegram if you know that that's this messaging or instant messaging application. So, we will read messages from it from some bot and then we will push them into some Kafka topic. And then this is very important part, the Kamba source URL, which is basically how we tell the Kamba source connector that we're going to use the Telegram component. And then this part is really just taking the API key for Telegram from the secret and using it in the configuration of the connector. So, let's check if the connect pod is already running and we can see that it's there and it's ready. So, I can just do OC Apply on the connector file. That will create the connector inside the Kafka Connect. And I can just check the status of the connector. So, when I scroll down, I should be able to see here that the task is running. The connector says unassigned. It always takes a few seconds to change. But the task is already running, which is important. And let's go to another window and open a consumer inside the OpenShift cluster which would connect to Kafka and read the messages. And now I can simply switch into the Telegram web console where everyone there can create these bots. So, I have created one of these and we can send here some message. And when I switch back to the terminal, we should be able to see. So, here we can see the incoming message and you can see here the hello world text. If you have Telegram in your application, you can try it and send some messages.  So, that works. We can try another message just to make sure it really works. So, let's try it in check. And we should again see delivered. Yes, here it is. So, we have the messages from Telegram in Kafka now. Now we should do some super sophisticated processing, right? We should have some AI which would do some customer support or something like that. I'm not really going to do that. I will pretend that someone did that and I will now just take the messages. Oh, and I can see now someone is sending something. So, I can just take the messages and let's say I'm using some AI service from Amazon AWS. So, I want to dump them into Amazon AWS SQSQ. So, I can just take another connector. And if you look at the configuration, it looks very similar. The only difference is that this time it is kind of sync connector. So, we will take the data from Kafka and push them somewhere else. And the source of the messages will be the same topic where we push the messages from the Telegram. And here in the URL, we specify that we want to push them into Amazon SQSQ which is called MyQ. And here again from the secret, I load all the things like credentials for AWS and so on. So, let's do OC apply. And we can again just double check the status. We can see that it got quickly to running. And here I have the AWS console. You can see that I have the queue already existing here. And I have already a bunch of messages there. So, yeah, let's start pulling for the messages. So, we have six of them. Let's delete them without reading because they were anyway all just test messages. And let's try to send something new. So, let's send HelloSQS. And we can see it already here. HelloSQS, so we received it in the SQSQ. So, you can really easily use the power of Apache Camel to power these connectors and use just the connector operator and Kafka Connect to integrate things very easily. To show you a bit more about some of the challenges, I want to show one more connector and this time it's for Amazon AWS S3 storage. So, let's look at the configuration. It looks really similar to the SQS one. And I want you to notice one thing. So, here we are using again these string converters. So, we want to load the files from AWS S3 and we want to send them into the Kafka topic as strings. So, let's create it. And let's go back to the browser or let's first show you... This is the kind of sample file which I will try to upload into S3. And let's see how we receive it. Let's kill this telegram connector and let's start another client which will read the messages from a separate topic which will be used for the S3 files. So, that is ready now and I can go to the browser and I can upload a file. So, upload sample one, upload and we can see that the file is there and when I refresh then the file disappears because right now the connector is created to delete the files from the S3 storage after they are pushed into the Kafka topic. But then you look into the console we can see that what we got is this, right? So, probably got some S3 object input stream object. So, it's nice that we know the class name. It's nice that we know some ID or hash or whatever that is. But it's not entirely useful, I guess. At least not for me. So, what can we do about it is we can try to fix the connector by specifying the right converter. So, here we say the value converter should not be anymore this string converter which is shipped with Kafka connected by default but we want to use this Orca patch handle Kafka connector converters S3 object converter. So, let's apply this change. Let's make sure that the update was propagated. We can see that it is running and we can see that it's generation two. So, let's try to upload another file which is, again, a very sophisticated text file. So, upload sample two. Let's upload it and it should disappear again. Okay, disappeared. And let's go here and we can see now we got the right text, the second sample file for S3 upload. So, that kind of shows that while it's super easy to kind of take whatever URL or component you have and use it in the Kafka connect you kind of need to be very careful and make sure you have the right converters and you are able to convert the messages. Otherwise, you might get this instead of this and the connector would be kind of useless. So, and that's also one of the things which is kind of still work in progress from the beginning we decided to focus on few selected connectors to make sure that we kind of figure out what's the best way how to do these converters and how to make sure that these things are working. Okay, so back to the slides. So, I hope that you liked what you saw because we are quite happy and excited about this project. It combines the features of two very great Apache Software Foundation projects and as a kind of guy who is more on the Kafka side it's amazing for me because it opens the doors for many new connectors for Kafka and many new integrations and it also brings kind of this stability and maturity and experience of the KAML project into this connector world. So, if you work with Kafka Connect you know that there's a lot of great professional connectors supported by companies but there's also a lot of connectors who someone wrote two years ago put them on GitHub, they work at that time nobody maintains them, they don't work anymore or it's tricky to get them working and so on. And in Apache KAML we have 300 or something like that components, connectors which are there, they are ready to use and the community has a huge experience with maintaining them and keeping them working. And on the other hand what kind of, I think Kafka Connect brings into the game is a bit more of this simplicity and distributed nature which the Kafka Connect can offer and for a lot of people especially already using Kafka Connect the way how they can run these connectors in Kafka Connect is kind of easier and better than to for example write their own Java code for the KAML integrations on their own. So it's kind of as a Kafka user you can get a lot of new options and as a KAML user you can also get kind of this jump star into the Kafka world because you get the first class Kafka Connect integration. So that's it for this talk. We wanted to mention monomorphing we are hiring and we are not really saying here just as a redhead in general but we have some open positions in the teams working on these things so if anyone would be interested you should definitely get in touch with us after the talk. So that's it and if you have any questions now's the right time to ask. Is the demo code available somewhere? I can make the demo code on OpenShift available I can add the link to the slides and to the talk on the DevCon page. Can you listen for yours? Yeah the code for the videos are also available I can make it available in the same place. So actually yeah this is where you should be able to find the slides and if you give us still the evening or till tomorrow we will add the links for the code and so on and you should be able to find the slides on the DevCon page as well. Any other questions? Then I guess thanks for coming and staying here for so long I think this is the end of today so thanks. Thank you.