And I've navigated to this page where you can actually see all of the open data that is available or made available by the World Bank. Let's increase the size. There you go. All indicators. You can see the indicators on agriculture and rural development. You scroll down, aid effectiveness, climate change, economy and growth and all of these you can click on any of them and it'll open up a page like this. You can download some of the data as a CSV file. You can inspect some of the data and all these indicators have a unique name and you see that in the URL up here. It's a bit difficult to see. So it says se.sec.nenr and all of these indicators will have their own little abbreviation like that. And you can ask for some more detail about that. When you click on details, it will show you where that data comes from. So for most countries in the world and for many decades this data exists and you can just go out there and grab it for yourself. Fortunately, there's a package library in R that makes it very easy for us to use this data. So in this tutorial, I really want to look then at maternal mortality ratios using this World Bank open data. So I'm going to use an R markdown file as you can see here and my title there, author. The output is an HTML document with a table of contents being set to true and the number of sections being set to false. So that's my YAML up there and then I have saved everything that I'm going to use in the same directory as this notebook directory and I'm setting the working directory to get the working directory that this notebook is in. So the library that we're going to use is WDI, this World Bank data API library that you can download. I'm also going to use Plotly just to create a graph or two and then Deeplyer just to extract some of the data out of the data frame that we are going to create. As always, I use a bit of cascading style sheets just to change up the look of my file, my markdown file. And you can see I'm just coloring heading 1, 2 and 3. So if I create headings 1, 2 and 3 using markdown, it's a royal blue and a golden color. I also have this PNG file, which is my logo inside again of the same folder as this notebook. So I can just easily ask for it to be printed in the final HTML file. So as I've mentioned, you can read up on that. I'll put the links to where this page is. You can have a look here. It really is all this data that really is available. Now, if we scroll down, I've created a second heading 2 year looking up an indicator. We can look it up by country or by the name of the variable and the country codes. There are different country codes, the ISO2C, that is where there are just two letters to indicate the country. And we can also search for maternal mortality ratio in the name. So let's just do that.  There we go. Let's move down. And the first command we're looking at is WDI search. I'm using three of the arguments here, the first one being string. And that's just the string we want to pass what we want to search on. And I'm stating maternal mortality ratios. You can look through all those indicators and find it on the page there. Just use the find button on your browser just to find something that you're interested in. But you can also try it this way. The field that I'm interested in is name. And I'll show you all the fields shortly. And short equals false, meaning I don't just want a small bit of information. I want the whole lot of information from running the search. And you can see what we get there. We get two indicators that would have fulfilled a search for us. One is sh.sda.mmrt.ne and the other one does not have the ne in there. And there you see name. And these are the fields I'm referring to. So the field was name, so there's the name. And then there's also a description field. You can see it there, a source data field and a source organization. So you can see all the fields that are available that you can put in here as name there. I could put description or whatever I want to look in or even just indicator if I knew sort of what the indicator was. But I see one and two because there are two and it will refer to one and two describing all of these for me. So let's search some data. And I'm going to just dump it all into a data frame, just a good old fashioned R stats data frame called a DF. And I'm going to use the WDI command or function here. And the arguments that I'm going to use this country, the indicator, the start time, the end time and extras false. There's a lot of variables that can be collected or returned from my search but I only want the important ones. I'm putting extras false. So the country, I'm just passing a vector of strings here. So US for United States, BR for Brazil and ZA for South Africa. So we're going to pass those for the three countries. Now I know those are the ISO2C codes but you can also look up those codes yourself. The indicator is the one that I looked up that was returned here. I'm using this indicator here. So that's maternal mortality ratios modeled estimate per 100,000 live births. And I want the start time to be 2005 and the end time to be 2015. You get data up to 2016, 2017, but not for all countries. So just to keep things safe, I'm only going to go to 2015 for these three countries. And as I said, extra being false, it's not going to return all of the variables that are available only the important ones. So let's run that. And we see we have our data frame up here now. There we go. We can also have a look at it. Remember just by creating a new tab for it. Let's close here. There we go. We can see that it's all there and we can filter using our studio. Let's get back to our markdown file though. We see this double format. So it's nicely formatted for my screen. And what we want to do now, what I would like to do now is to show you if you asked for X-ray equals true, what you would also get. So you would get the ISO 2C, also the ISO 3C, the country. The actual values will be hidden inside of this indicator here. Here we get region, capital, longitude, latitude. So you can imagine if you use a package such as leaflet that you can draw beautiful plots with a map. So that could be done as well. So let's just filter some of the data. I'm going to create three new data frames. Brazil, USA and ZA I'm going to call them. And I'm going to use this pipeline method from deeplier. So DF, filter on the ISO 2C being Brazil. The ISO 2C being USA. The ISO 2C being ZA. So that's going to be this ISO 2C column here. I just wanted to group by... Not group by, I'm not using group by. I'm just filtering so that I only have Brazil, only have USA and only have ZA in these three different computer variables that I've created here. And let's plot them using plotly. Have a quick look. You can copy that. Or this file is on GitHub and it will be on RPUBS. So I'm creating three traces. And the traces will be this actual values for Brazil, USA and ZA. And then the dates, I'm just saying DTS for dates and that'll be Brazil.year. So that's going to give me all the years 2005 to 2015. So plotly, my DF.plot. I'm going to call here because my DF.plot that I created here is a data frame of DTS, trace 0, trace 1 and trace 2. All these traces that I've created up here. So on the x-axis is going to be my dates. On the y-axis will be trace 0. Remember that's Brazil. So I'm putting in a name, Brazil. The type is scatter and the mode is line plus markers. I form a pipeline because I want to add a trace and that'll be trace 1. Remember which was USA. So name is going to be USA. Everything else being the same. Add another trace and another one. And lastly we're just going to look at the layout. The title is going to be mortality, maternal mortality per 100,000 births. On my x-axis I have year. My y-axis I have count. And remember I'm setting my zero line in this list for x-axis and y-axis just so that I don't get the thick black lines in case it is drawn. So let's run that. And there we go. We have a beautiful plot. Interactive plot with plotly so that if I hover over I can actually get the data. And you can see how poorly South Africa has was around 2010 to 2011 and the changes that were instituted to correct this.  So I've got some links down there for you for the WDI package. And also if you want to learn more about what was wrong with the maternal mortality rates in South Africa in case you're interested in that. So that's it. A quick look at how to use plotly and the WDI package for our and go around get your own data. I'm sure you're going to explore and stumble upon some wonderful data and information.


Hello and welcome to another episode of the Private Property Home Shopper Show. Today we're in Benoni touring an absolutely massive home that sprawls across 2.5 hectares. This presidential home boasts five bedrooms, seven bathrooms, eight garages and so much more. But before we tour the home behind us, let me talk about how you can find your new home on privateproperty.co.za. And now it's time, my name is Chad Rivera, this is the Private Property Home Shopper Show. Welcome home. And here we are finally within the entrance hall of this incredible home right here in Benoni. Walking in there's one word that comes to mind and one word only and that word has to be presidential. There's a timeless design here and an amazing use of space but space there is and lots of it. This home is perfect for people with large families or they just want a home that make them feel like they've finally reached the top of their respective career. This is the entry hall. We've got these two wraparound staircases really dominating the eye but right in front of you is your grand dining hall and that's where we're going to start off. So follow me down this right upstairs. And this is the grand dining hall and grand it most certainly is. Right in front of me we've got the staircase wrapping around in these pillars and both the staircase and the pillars have been hand chiseled by an artist that has come to this house and actually chiseled the pieces off themselves. Up above me we've got a three-story tall ceiling and a chandelier draping down with real crystals being inset into that.  This very own fountain absolutely amazing but there's still a sense of purpose or practicality when it comes to this because you don't have to have the food come down the stairs instead there's a hidden hallway right here leading to the kitchen and that's where we headed off next. And in the home this fantastic this opulent even the walkways aren't without their very own splendor. Right here I'm standing next to two sets of doors on my left two sets of doors that lead out onto your back courtyard with your very own fountain and on my right this set of doors lead onto your central courtyard surrounded by your kitchen living areas and entry hall as well as a grand dining room hall and it also has not only nature but it's very own central fountain. And now however we are in our kitchen area and it has so much to talk about let's get I'd say the utility spaces out of the way first on my right hand side down that hall you've got your pantry slash scullery area and it is broken up into three separate rooms. Your first room is for dry goods with plenty of cupboard space storage and shelves. Your second is a laundry room now that laundry room has places not only for your appliances but a separate washroom and then you've got your scullery area a huge wash tub all of the places for your under counter storage and plenty plenty of cupboard space. You also have two walk-in cold rooms so if you're entertaining a lot of people this home has got you covered. But coming back into the kitchen let's talk appliances on my right hand side you've got inbuilt smear appliances coffee machine microwave as well as oven we've got marble countertops all throughout beautiful veins through those marble countertops and right in front of me you've got a wooden chopping board I like this addition it's not something we see too often. Then we've got all the usuals we've got your farm style sink or prep sink should I say up above stunning chandeliers and then another inbuilt or should I say classic smear appliance gas stove with extractor fan hidden behind all of this wood cladding it's quite a nice addition under counter storage and then to my left a beautiful breakfast no not only surrounded by chandeliers but windows overlooking those green luscious gardens sliding doors over here giving you access to your pantry this is without a doubt a perfect spot you sit down relax and have breakfast with the family when you don't want to utilize one of the dining room areas but now that we've wrapped up the kitchen let's move forward a bit into the first living area and that's your cozy comfortable and perfectly placed since it's right next to the kitchen lounge area but if you're looking for the perfect place to wind down after those lavish parties this is the space for you cozy quaint yet spacious and beautifully equipped not only with a built-in raw wood cabinet but with all those tech features we've come to expect in homes of this caliber up above me we've got a stunningly detailed ceiling inbuilt speakers off to my left is that central courtyard that I'm speaking about except this time we've got two sliding doors opening them up letting you enjoy that and then another two doors that open up outwards onto your patio and that stunning pool I love this area but you're looking for something more formal or if you're looking for possibly a waiting area or sitting room for your guests and through these doors is exactly that and here it is your reception slash waiting area now just to the right of the front door over there it is located so it's in the perfect spot for your guests to sit down and relax and it is cozy for something like that you've got a fireplace in the stunning feature wall it's almost encircled by the pillars as well as this stunning chandelier just above me but my favorite feature with aradar has to be this right here floor to ceiling almost wall-to-wall glass with a stunning piece of geometric design in the center made out of wood and the circle piece of that geometric design looks immediately onto your room flow pool and the end of your garden and you can even just see peeking over your wall the damn area in Benoni I have to admit the design and the thought when they made this home is incredible however when we're done waiting we need to do something fun we need to get the blood pumping we need to get that excitement so if you think you've been blown away so far trust me you've seen nothing yet because up next is the games room the cinema room the bar area which is my favorite area and there's something really cool there with how they've played with the light and the design of the garage so follow me because we're here in the next coming through the double doors immediately off to your left you've got a guest bathroom beautifully equipped and in the perfect space because right next to the bar you've got your single vanity and your toilet and here we are in this incredibly large but amazingly spectart bar area slash games room so on to my right we've got a massive atrium area two chairs sitting there but windows that reach up two stories letting in so much natural light if you're looking for more natural light well we've got two sliding doors leading off to your patio and your balcony but i'm sure what's catching all of your attention has to be the bar area behind me spacious amazingly equipped and really covered in vintage cash registers you can go in there whip up your favorite drinks and bring them out to all of your guests there's a lounge suite area and space for not just a pool table but also an air hockey table one of my favorite features however has to be your glass framed garage why wouldn't you want to check out the amazing collection of vintage cars that you have and then if you want to take it to something a little bit more personal if you want to relax kick back and watch a movie well we've got our very own cinema room let's check it out here we are in this plush carpeted and exceptionally comfortable cinema room 14 seats all around clad in red leather projector screen in front of me surround sound system and some incredible artwork but my favorite feature has to be the twinkling starlight roof just overhead so what i'm going to do right now is i'm going to kick back relax and watch a film and what i think you guys should do is head outside catch some vitamin d maybe pour yourself a cocktail and i'll meet you there entertainment spaces behind you we can talk about this outdoor patio area not only is there plenty of space for you to sit back relax and catch some rays or kick back and enjoy a cocktail but we've got this beautiful roomflow pool overlooking an incredible and expansive garden area you have your very own chapel which is something we have never seen on the show before but we've also got some of those killer features we've got a pizza oven we've got a beautiful prep sink as well as a prep table area a spot for you to sit back kick back and enjoy a bonfire and then all of that entertainment space over there as well as your very own built-in bride this is an area meant to be used meant to be enjoyed and if you've got the kitties you've got a jungle gym as well as trampoline for them to scamper about and play in and that is not all because right now with us wrapping up the downstairs area it's time to head up that incredible twisted spiral staircase to see what the bedroom areas have in store for us and that sound marks the time for us to be reviewing the first sleeping area but on our way there there's a couple of small features we're gonna run through but this wing of the house houses a couple of key features we need to talk about first and foremost is another guest bathroom a single vanity as well as toilet is what you'll find there through two beautiful glass inlaid double doors you have your very own office spacious private and with the view of the garden itself and then right next to the office where you want to just work out those work stresses you've got your very own private gym but our first stop has to be the downstairs bedroom which is the first one we're viewing the best way to describe the space is regal there's enough space for a large bed and several lounges which only add to the opulence this bedroom has several windows and a beautifully large sliding door that leads out onto a gorgeous garden like the rest of the rooms in this grand home it has an ensuite bathroom this bottom would rival most main ensuites with the ornate double vanity and gorgeous freestanding bathroom bedroom out the way that staircase is calling our name really upstairs and i have to admit it is absolutely beautiful it's possibly something you have to see to believe up above me a stunning chandelier set in a dome ceiling with that light being broadcast down all the stairs have lights embedded into them and then we've got incredible views looking downstairs both in front as well as behind me what i think we're gonna do though is let's walk right take a look at those bedrooms there and then we'll come all the way back to this wing of the home follow me and here at this wing of the home you see two bedrooms and right in the center of them is this beautifully placed pajama lounge chandeliers down lighting speakers in the ceiling and your very own private balcony overlooking a incredible patch of greenery is pretty much what this area consists of nice cozy and a perfect entertainment space for these two bedrooms without you having to take the long walk downstairs this home is massive and i think places like this are sorely needed so it's such a nice inclusion what we're gonna do is let's take a look at this bedroom then we'll walk back and take a look at that bedroom before we head off to the master wing of the home the bedroom on this wing is without a dart huge it might as well be a suite while it's not north facing you still have plenty of air and light coming thanks to the many windows and access to a private balcony but what makes this bedroom so incredible is the connected dressing room with several built-in covers and the lush ensuite bathroom the marble bath day lounger and access to yet another balcony only adds to the luxurious experience the second bedroom on this wing is slightly smaller than the first but just as grand it also has plenty of space its own balcony a stunning dressing room and a beautiful ensuite bathroom and with that wing of the home wrapped up it's time to head off to this side and this side is really special because it contains the master suite follow me and here we are in the third bedroom of the house spacious comfortable stunning wood floors tall ceilings your very own private balcony but the features don't stop there the space in this bedroom itself really does afford a lot of different design choices you've got places for you to study places for you to relax and watch tv and even places for you to enjoy some of your hobbies or activities and it's time to wash up or get ready you've got a walk-in closet with ample cupboard space as well as your very own ensuite bathroom with a jacuzzi bathtub single vanity toilet as well as walk-in shower and another balcony out there not a lot of homes have a bathroom with a balcony on it but let's take a look at the views from this balcony before we head all the way back and finally take a look at the master suite this wing of the home the master wing has some incredible features one is this upstairs lounge it won't include the cat as the feature but it is pretty nice to see him popping his head up from under the table but we've got this lounge area with access to the balcony the balcony sliding glass doors open up and then you overlook the pool but you also get an incredible view of the lake all of this you can sit back relax and enjoy but all of these spaces are best enjoyed with a drinking hand and to that effect there is a kitchen net just behind us here behind this wall fully equipped with not only sink but also your appliances so you've got a built-in fridge you've got a microwave you've got everything you might need to not have to make the long journey downstairs to that kitchen then if we walk off to the bedroom on the right hand side on the way there which is where we headed right now there's an office to the left hand side so if you need to do some work you can do it upstairs you can sit back and then really get to work without any interruptions or even without having to go down to your downstairs office but what I do think it's time to do is let's make our way to that bedroom we'll point out where that office is and then let's take a look at what the bedrooms on the side of the house have in store right here is your office and yeah we are finally in the master suite of this incredible Benoni mansion this is more of a palace than a mansion a master suite with two chandeliers uninterrupted views of the lake as well as a balcony spanning the length of the home you can see all the space in this bedroom that really the bed looks absolutely tiny you've got your very own lounge suite your very own fireplace and then a tv to complement it all I think I do want to mention now that we're nearing the end of this video is this home is going to be sold with a majority of the furniture yeah so if you're not really into styling your own homes if you want to buy a mansion and move right in this home is ready ready for you but this bedroom has one killer feature and it is not the central air conditioning it is through these double doors right here follow me yeah we are finally in the master bathroom of the master suite a room fit for a king or a queen there's so many features I'd love to mention one this bathtub made out of a solid piece of volcanic rock which holds heat in the bathtub so you don't even need to worry about making a bath taking a walk down to the kitchen and then coming up and finding out that your bath is cold a travesty I know but that isn't the only feature because right over here you've got a whole sun area a whole bunch of windows fit into the wall looking out onto your garden but also a skylight so it is so bright so airy it has got such a nice feel to it something else I love are these inbuilt tiles on all of the arches throughout the throughout the bathroom it looks incredible I think take a look at the space this bathroom is the size of so many people's actual bedrooms it is insane we've got spaces here for you to get ready but then double vanities plenty of undercounter storage two separate mirrors and then that right over there this here is an inbuilt dual shower double door shower I don't think we've seen a shower before with two doors but this whole contraption here also serves as a steam room so you'll see over there and over there are the vents for the steam room you'll close these get a really nice tight seal and then you can release all those stresses but when it's time to get ready well we're heading off this way because this right over here this year is your walking closet a his and her section with a window behind you it is everything any homeowner could ever want it is absolutely incredible and it also brings us to the end of this amazing episode so join us downstairs so we can tell you how to become the next owner of this incredible house and unfortunately that brings us to the end of this incredible episode but before we tell you how you can purchase this house let's talk about what you're gonna get five bedrooms seven bathrooms an eight car garage and so much more this home is absolutely incredible and entertainers dream perfect for large families and for someone who just wants to relax away from the hustle and bustle of the busy cities but if you'd like to purchase this home what I'd like you to do is contact Gretchen Pipers and UNICEF buyer all of their details on screen right now and make a reservation and a huge shout out goes out to Gretchen as well as UNICEF for allowing us to showcase this home and all of its amazing features to all of our loyal viewers now what I'd like you guys to do is remember to like share subscribe if you'd like to see some more incredible South African homes and hit that notification bell so you never miss another episode of the private property podcast or the private property home shopper show but from myself Chad Rivera's thank you so much and we'll see you next time right here on the private property home shopper show goodbye


Hi guys, this is Jason here from Nathaniel school and in this lesson I I'm gonna talk about how you can make chord sound a little bit more interesting a little bit more mysterious and also a little bit more Useful for composing Film music or soundtracks for movies and that sort of stuff if you want to make things sound more epic So I have two tricks or two Things which I myself do which I wanted to share with you all The first thing is to understand the major scale if you understand any major scale Seven triads come out of it and we use all these seven triads almost all the time when we are making songs Whether it's a pop song rock song or blues or any genre we take the major scale It has seven chords of which three are major three are minor one is diminished So if you take the D major scale, you will have D major being the one major E minor being the two minor F sharp minor being the three minor G major being the four major a major being the five major P minor being the six minor C sharp diminished being the seven diminished Right, so this plan sort of allows you to make a lot of the commonly used Chord progressions out there for example, maybe a one five six four There are a lot of pop songs which are on this All the way from the Beatles like When I find myself in times of trouble mother Mary comes to me and so on Or even maroon five songs you will find it From for a lot of years You'll also have things like the two five one progressions which are used in jazz and some pop music as well Those progressions also tend to come from the major scale And then blues musicians do a lot with one four and five So ultimately a lot of the chord progressions We make come from the major scale because of how popular it is and also because of how awesome it sounds It's it's a brilliant scale. It gives some great harmony But the only issue is that it it can tend to start sounding very Redundant and it may sound like the last song you heard or it may sound like the last song you even made You know, so a good way to maybe break out of that Situation is to consider these these two tricks, which I have the first thing is Whenever you're composing a song using a major scale We use the one chord the four chord and the five chord very very often, right? So if you take knocking on heaven's door for example Knock knock knocking on heaven's door and so on that's nothing but a one five and four and all these are major chords If you take La Bamba That's nothing but a one four and a five or maybe the lion sleeps tonight in the jungle the mighty jungle the lion sleeps tonight That's nothing but a D. That's nothing but a one four one five So a lot of songs have major chords and then they'll squeeze in a minor here and here and there So what you could do is instead of playing the one major and the four major You can do different permutations Or you can do a one major and a four minor perhaps or you can do a one minor and a four major Or you can do a One minor and four minor is already heard because that's a minor sound minor scale sound One major and four major is already heard because that's used in the major scale So you can do major minor or minor major and see how that works That's D major going to G minor So automatically you may not have heard a lot of songs on this chord progression All I did was Remove didn't play G major which would normally come as the four major. I just changed it to G minor Another converse thing you can try is D minor going to G major. That's quite nice as well D minor Now you may argue that you know these chords could have been built from other scales well, they are obviously but sometimes it's a little tricky to mug up those scales and You know write it down and whatnot I just found that this trick is quite useful while jamming and Composing and just breaking just getting out of a shell so to speak So whenever you have a one and the four regularly running and you feel ah, it's just it's nice But it could be a little bit more different or a little bit more epic Maybe the four chord could be converted or the one chord could be converted And you can do the exact same thing with the one and the five chord for example D major Would naturally go to a major right if you're playing even on the guitar or any instrument which plays chords You're gonna be like D major a major or D minor a minor which would become the D minor scale So if you do D minor and a major, I think it'll sound quite nice It's actually quite popular because it's used as the harmonic minor scale the notes I played sort of come together and are part of the harmonic minor scale But it's a nice sound. I've not heard a lot of songs in this age written on the harmonic minor scale Maybe you have You can also do D major going to a minor And I'm just noodling a bit just to show you that a nice melody also can be formed We are not just building chords here You're the chords can inspire you to create some nice tunes as well And in fact that is the goal the chords are there to inspire your melody So you should immediately make a melody once once you hear these chords So let's hear how that sounds again D major going to A minor it's quite a nice sound Or you can do D minor going to a major which is sort of popular Used in classical music used in Latin music and so on but it's still quite different if you compare it with the music Which is released these days Yeah, at least in my country which is India so it will start Sounding very very unique and very different now We could go into the modes and the scales which can be formed through these chords As well But I think we'll do that in another lesson and if you have any questions regarding this or anything further You'd like me to explain you can mention it in the comments and I'll be happy to make another video on that But this video is just about a quick thing to inspire your chord journey, right? So this is the first part of this two-part series in the next part I'm going to talk about how you don't even need the one four and the five you can do it even Chromatically just using intervals Which have never been heard before or at least have never been heard together with chords before So practice this and join me in the next lesson. Cheers


What's up everybody Jason for Jasper's case breaks comm 19-20 pinning crown Royale basketball just sold out This is a two box break two random teams each number four So here you go guys 15 total spots everybody gets two random teams in the NBA chase some Kobe autographs, which are live RIP to the black mama. You guys die on John Moran Kabooms and much more So two random teams in the NBA double up your names. There you go Roll it. It is a snake eyes just two times. Good luck. I love the lower rolls one and two Steve down to Lewis one two burrs down to the bulls All right, so Steve you the spurs Dean with the T will scowl the nuggets Lewis with the Mavericks Michael with the pelicans and the Raptors Brock with the jazz James with the Clippers Jen with the Lakers Dean with the heat Michael with the Knicks Tana with the spur or sorry sons brought with the Blazers Dean with the Grizzlies Patrick with the 76ers Jeremy Muller with the Warriors Patrick with the Magic James Connell with the Kings got with the Thunder Michael the Hawks Tana with the Pistons Jeremy with the Cavs Dean with the Pacers Steve with the Bucks Tana with the Hornets Michael with the Wizards Tana with the Nets Michael the Rock is jam with the Celtics and Lewis with the Bulls Anybody wants to trade I'll give you guys a quick minute to trade All right going once going twice Sorry Brock turbine the clothes. All right, so just a quick two boxer guys two box break Right here.  You got Tatum Colin Sexton So John Marant rookie here Grizzlies without one that's gonna go to Dean We have Buddy Heald We have Russell Westbrook Houston Rockets going to Michael Then we got Kobe White heir to the throne. This would be a randomizer here So Kobe White with the Bulls right here and on the back Steve Nash Mavericks edition 64 to 99 All right 64 to 99 so again Bulls Mavericks. So Bulls is Lewis Mavericks is Lewis actually I don't even need to randomize this. There you go, man Sweet Mavericks Brandon Clark Yeah, Nick, that's exactly what I did. I mean my wife and we got it back in early December or mid-December. We just We were just drinking PLI doing emergency every day you know St. Hydro really in my coffee just like barely has gone away Like in the loft a couple weeks and took a couple months after recovered to go beyond your hunter 24 to 25 Yeah, the first week isn't really the worst. It's usually after like seven days Just when things start to develop Alrighty That's how the hero Miami Heat it's going to Dean and how about another John Morant? It's two John Morant in here Not bad at all and Steven Adams We got Kings Court Victor Ladiba Malcolm Brogdon Demontus of bonus Indiana Pacers It's going to Dean We got a night to the round table relic of Campbell Walker. Oh, Fernando 3775 Another one for the Hawks going to Michael And there you go that's quick two box break in the books I can post another one We have at least two more boxes or two more breaks worth a couple John Morant's No randomize it in here to do as well Appreciate it Jaspies case breaks calm


So you want to tweak the performance of your videos in YouTube, but which ones do you focus your attention on? Well, TubeBuddy has got a great tool to help you with that. If you come up to the TubeBuddy menu up at the top corner here, and then down to the click magnet tool, and then what you wanna do is open up the click through rate CTR opportunities section. And what that's gonna do is it's gonna identify videos that have got good engagement once people get onto them, so they're clearly good content. However, the click rate is low. And so these are where you should be focusing your attention. And if you can improve the click through rate on those videos, then it will likely lead to higher watch time and better viewer engagement. So if you want to try that for yourself, then head over to takeonetech.io slash TubeBuddy and get your free trial of TubeBuddy today.


Hello. Welcome to the session on DevOps. Let us see the learning outcome. At the end of this session, students will be able to describe DevOps lifecycle in software development. DevOps is a culture which promotes collaboration between development and operations team to deploy code to production faster in an automated and repeatable way. The word DevOps is a combination of two words development and operations. DevOps helps to increase an organization's speed to deliver applications and services. It allows organizations to serve their customers better and compete more strongly in the market. What is DevOps? In simple words, DevOps is a combination of two words development and operation. Before DevOps, the development and operation team worked in a complete isolation. Testing and deployment were isolated activities done after the design build. Hence, they consumed more time than the actual build cycles. Without using the DevOps, team members are spending a large amount of their time in testing, deploying and designing instead of building the project. Manual code deployment leads to human errors in production. Coding and operation teams have their separate timelines and are not in synchronous causing further delays. There is a demand to increase the rate of the software delivery by business stakeholders. As per the Forester Consulting study, only 17% of the team can use delivery software fast enough. This proves the pain point. Let us compare traditional software waterfall model with DevOps to understand the changes DevOps brings. We assume the application is scheduled to go live in two weeks and coding is 80% done. We assume the application is a fresh launch and the process of buying servers to ship the code has just begun. We can see the difference old process and DevOps. In old process, after placing an order for new servers, the development team works on testing. The operation team works on extensive paperwork as required in enterprises to deploy the infrastructure. In DevOps, after placing an order for a new servers, development and operation team work together on a paperwork to set up the new servers. This result in a better visibility of infrastructure requirement. In old process, the projection about failure, redundancy, data center allocation and storage requirements are skewed as no inputs are available from developers who have a deep knowledge of the application. In DevOps, projection about failure, redundancy, disasters, recovery, data center locations and storage requirements are pretty accurate due to the inputs from the developers. Operation team has no clue on the progress of the development team. Operations team can develop a monitoring plan as per their understanding. So it happens in the old process. But in DevOps, the operation team is completely aware of the progress the developer are making. Operation teams, they interact with the developers and jointly develop a monitoring plan that caters to the IT and business needs. They also use advanced application performance monitoring tools for the development purpose. And in old process, before they go live, the load testing crashes the application, the release is delayed. But in DevOps, before go live, the load testing makes the application a bit slow. The development team quickly fixes the problem and the application is released on time. So these are the differences between the old waterfall model and DevOps. The DevOps allows agile development team to implement continuous integration and continuous delivery. This helps them to launch the products faster into the market. The other important reasons are predictability. DevOps offers significantly lower failure rate of new releases. Reproducibility that versions predictability. DevOps offers significantly lower failure rate of new releases. Reproducibility version, everything so that earlier version can be restored any time. Maintainability effortless process of recovery in the event of a new release crashing or disabling the current system. Time to market, DevOps they reduces the time to market up to 50% through streamlined software delivery. This is particularly the case for digital and mobile applications. Greater quality, DevOps helps the team to provide improved quality of application development as it incorporates infrastructure issues. The next sixth one is reduced risk. DevOps incorporates security aspects in the software delivery lifecycle. It helps in reduction of defects that occurs in the lifecycle. And it reduces the defects across the DevOps lifecycle. Resiliency, the operational state of the software system is more stable, secure and the changes are editable. Cost efficiency, DevOps offers the cost efficiency in the software development process. So which is always an aspiration of IT company's management. Breaks the larger code base into the small pieces. The DevOps is based on the agile programming method. Therefore it allows breaking large code bases into the smaller and manageable chunks. So let us pause the video for a while and try to think and answer the question. So when to adopt the DevOps? Is for which type of application so we can adopt the DevOps? The answer is DevOps should be used for large distributed applications such as e-commerce sites or applications hosted on a cloud platform. Let us see where not to adopt DevOps. It should not be used in a mission critical applications like bank, power and other sensitive data sites such applications need strict access controls on the production environment, a detailed change management policy, access control policy to the data centers. So DevOps is a deep integration between development and operations. Understanding the DevOps is not possible without knowing the development lifecycle. That is the DevOps lifecycle. Here is a brief information about the continuous DevOps lifecycle. The first stage is a development. In this DevOps stage, the development of the software that takes place constantly. In this phase, the entire development process is separated into the small development life cycles. This benefits the DevOps team to speed up the software development and delivery process. Testing the quality assurance team uses tools like Selenium to identify and fix the bugs in the new piece of code. Integration in this stage, a new functionality is integrated with the prevailing code and testing takes place. Continuous development is only possible due to the continuous integration and testing. Deployment in this phase, the deployment process takes place continuously and it is performed in such a manner that any changes made anytime in the code should not affect the functioning of high traffic websites. In the monitoring phase, operation team will take care of the inappropriate system behavior or bugs which are found in the production. So these are the following references that I referred. Thank you.


What's up everybody? It's me, Denchie. And in today's video, I wanna show you a fantastic little piece of task management software called Task.  And the reason for this is because task acts a lot like a search engine by default. So running it will just list all your tasks and then you can run task like, I don't know, everything that's tagged with Linux and it will show you everything that's tagged with Linux. You can get into tags and due dates and names just in a second over here. But I just wanna let this be clear to you. When you're running task, all that's really doing is it's looking through your list of tasks and it's acting like a search engine. So let's take a look at actually creating a task. You can run task, add, and then the name of what you wanna do, like install gen2. And then you can add a due date by typing due and then colon. And then right after the colon, you can type say EOW for end of week or EOY for end of year or EOM for end of month. EOD for end of day, I think, I don't know if that works. You can do like 10D for 10 days, 5D for five days. And you can also add tags by typing plus and then say, I don't know, Linux because gen2 is Linux related. So running enter over here, it will tell you it created task one and you can run task and it will show you that list of tasks and right there, there's install gen2. The first thing you'll probably notice over here is why is install gen2 red? Why is all of this in dire row in our task list red? That's because the urgency over here, which is 7.31, I think once it's above five, everything turns red. And that's because the due date is in four days, which is quite soon. And so task rightfully so, we'll put that right at the top of your list and it'll make it red and really obnoxious so you remember that you gotta do it. And so that's one of the features in task, it's urgency.  I'm gonna put a link in the description that shows you how task warrior actually calculates urgency, but let's get into more interesting and useful things for us right here. So for example, let's say we're done installing gen2, we can type task install gen2 done. Now I'm gonna break this command down for you because this may not seem obvious to most people watching this video, what I'm actually doing here. When I say task install gen2 done, what I'm really doing is I'm searching my task database. I'm going through my entire task database and I'm searching for install gen2. So I'm searching for any task that has the word install gen2 in it, which in this case, there's one over there. And I'm gonna say that it's done. And so remember, task is a search engine. By default, if you run task install gen2, it'll just show you that install gen2 task. But running task install gen2 done will mark all of what it matches as done. So running task again, as you can see it's blank, it has no matches, you're once again at no matches because you're done with the task. Now, one more feature I wanna look at in task just before we're done over here is something called projects. So projects are very useful if you need to keep track of lots of tasks at once. And let's say, for example, I'm making a big video. So I'm gonna say task add, I don't know, write the scripts and write the script for the big video to help keep tabs on the actual progress in the video. I can type project and then colon and right after the colon, the name of the project. I'm just gonna say video, for example. And running enter over here, it will tell me that it created task one, but it will also say that the project video has changed. More specifically, it's created the project video and it's now 0% complete, one task remaining. And once again, if we run task, we can see that task, we can see what project it's part of. And by default, tasks in a project with no due date have an urgency of one. So let's say we want to create another task that's part of that video project. We can say task add, I don't know, record the audio, you know, the voiceover I do for my edited videos. And then I can say task add, and then I'm gonna say project, and then once again, colon, right after the colon, video. So that will create that new task and assign it to the video project. And over here, I'll get a different prompt. It'll say project videos 0% complete, two of two tasks remaining. And just to illustrate this better, I'm gonna add another one. So task add, I don't know, edit the footage or something like that, you know? And that's gonna be part of the video project, once again, it's a project video. So now we have a project called video and there's three tasks assigned to it. That's all well and good, we understand that. Now let's see what we can do to get it done. And let's see what task does when we say complete one of those tasks. So let's say we're done writing the script. You can type task one done. So one is the ID of the writing the script task. So just running task one done, L market is done. But you'll also get a separate prompt here. Not only will a market is done, it will also say project video is 33% complete. So it will give you the progress and how many tasks are remaining, in this case too, on the project. And this is very useful if you have say an essay do, whatever, what have you.  You have this many tasks remaining and that's very useful. And once again, you can also do task project video done. And that will basically mark every single one of those tasks as done. It will ask you for confirmation. You can just type all or yes individually. And over there it says, yeah, project video is 100% complete. So yeah, that's pretty much it for task. I hope you enjoyed this video. I've been Denchie as usual. I think this is a fantastic, useful piece of software.  And yeah, goodbye.


Good afternoon, everyone. Hello there. Hello. Do I see a Fabrice in the call? That's the first time. Hi, Gary. How are you? I'm good. How are you? I was connected last week. I wasn't there last week. All right. Let's get started. Sorry. I wasn't very well prepared. Came out of another meeting. Not to rush to this one. So, let me see. Welcome everyone to the Earth Summit, Jessica Brooklyn group call June 22nd. I need to remember you to abide by the hyper-legit code of conduct and anti-trust policy. If you would like to add yourself to those tending lists, so people know you were here. Feel free to do so. I'm going to start with that cover. Is there anyone here that's new today and would like to introduce themselves or share what they're working on? I think I recognize most of you here today. And quickly some status updates. Did we have a bifold call this week? Anyone that knows or attended? Yes, I was there. I don't know. I don't know. I don't know. I don't know. I didn't, I didn't catch all of it. It looks like they're on the home stretch of integrating AFJ. 4.0. Or 040. There's just a few little remaining things. I think a code review and some merge. Collisions to clean up. But they're getting very close to that. So I'm going to go back to one of the other activities around looking at moving to the latest.  So that was. I think a fair amount. Of the discussion. Was around that. There's also been. It's in an alpha at the moment, but they're using that one to learn. And before moving on to publishing other parts of the. Project in NPM. Cool. Yeah, I think the PR for AFJ 040 has been over for a long time. But I think they're now finally, it's now finally ready to get merged. So it's a good thing. This week, that's good to hear. I saw that Jason fixed some of the last merge conflicts. Nice. Airways call. I can give a quick update. There was a discussion on the refuted discussions. One. I'm going to talk a little bit about. Mediators and how do you do a scalable mediation. And this show. Announced a. So I think it's called, which is like a way that you can put in front of your mediator that can keep web sockets open and like it's agnostic of the agents. Running behind it so you can have like that separated. The agents mediator itself a lot more scalable. I don't know if there's anyone from the initial team on the call today. Hi. And the thing I missed or you would like to add. No, I mean, it's just a way to manage web sockets and make it a connectionless. Process between the sockets and the service in the back end. So that way you don't have to maintain an open web socket. And you have a good way to send messages through the web sockets. From the mediator. This allows the. Cluster environment not have to pass messages back and forth between the different. Services on the back end. So for example, I know a lot of people are trying to figure out, well, how do I do that? So the message makes it to the right node that's holding a open web socket connection. So that's the main problem that socket. Docket stock was trying to solve. Okay. Nice. Yeah. And so you have tested with. We actually tested this with our. Our cloud skill mediator. Which is a separate mediation based on. Right now, Amazon Lambda, but it's open to other, other platforms. Okay. We know the Akapai community has been talking about needing to solve the same problem. So we brought this out and open sourced it for everyone. Cool. Okay. Well, in addition, there was a. I think that took over most of the meeting. I'm probably forgetting something. That was discussed. Was a very short discussion about the open wallet relations stuff again. Maybe we can get into it later a bit. And it was something else that I'm forgetting here. I think, no, I think most of it went into the mediator stuff. Yeah. Okay. Cool. Then for the agenda today. We have to did conflict two days ago. Artemis here today who can give an update on like. What's the current status of the conflict to branch. What's like. Limitations of the current implementation. I think also like what were the limitations when. The work stopped in November and like, are there any things like what's still blocking to get it merged. And when can we use it. And I think then we can start out. We can have a short discussion maybe on the open wallet foundation discussion. And maybe we can continue on the. On the wall of API discussion. I don't see Ariel here today, but he created the discussion. And I think we. Yeah. Ended the meeting last week with him having given a presentation. But not really. Yeah. Next steps. If time permits, we can also get into it. Documentation and getting started being continued. Yeah. And otherwise we'll put that to the top of next week's agenda. Anything's people are missing or would like to get addressed or discuss this week or in a future meeting. Well, one thing, Ariel just joined. So that's good. I don't know if we can do that this week or if it's part of the open wallet foundation, but you and I had a discussion about. Recently about some ideas on. Not. I guess it's not modularizing the framework because we've already done that, but like splitting it up into. Sort of standalone libraries. Maybe we can touch on that. I asked parents to give a presentation on that in the next few weeks. So I think it would be good to have that like have a dedicated presentation called to do it. Cool. Good. Good point. Cool. Okay. Then let's get started. Art and do you want to share your screen? Or how do you want to. To do this. Yes. I would like. I prepared several slides. To better understand. Hello. Hello everyone. My name is. Somebody doesn't know I work for this. And. Today I'd like to cover the current status of get convit to branch. Support in. The initial work was done in last year. November by SIGPA. But it was put on hold. And didn't finish. At that time. Now with this are volunteered to. Complete it. Finalize. Get it. Finally supported there. We did it. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you very much. Thank you. Thank you. We did some work, which are going to cover. During this presentation here is. A gender. First of all. Brief. Really short overview of what's the key difference of it coming to compare in the first version. Next. Tell. What was done. after that cover concerns and issues about the current implementation and what's wrong and after what next steps. Okay, the specification of GitCon with can be found here. I'm going to share this presentation attached to the meeting afterwards. The key requirements and characteristics of the protocol preserved are the same as for GitCon V1. It's designed to be secure, private, decentralized, and transport agnostic. And the key difference is that it's designed to be rotable. What it means, it means that each message of the protocol should include everything needed to interact with another party. So you don't need any kind of explicit handshake protocol like it was before when parties establish a connection and exchange messages using the exchange in advance. Now agnostic is same like for emails, if party knows the agnostic of another one, it can easily prepare the message for him and pack it and send it, resolve all the required information based on the DID document and send it directly and interact. What's done? First change, this is crypto. Just on the envelope used for GitCon V2 differs from the first version. There are another set of cryptographic methods, which are used under the hood. The general format is the same, but different crypto operations. And the initial implementation was done using SIGPA, GitCon library, but in fact, it didn't good suit for AFJ architecture, it requires implementations of the interface and making some methods of the wallet public. And it was decided to change JVA pack-on-pack methods to use Ascar directly as it's currently it's a plugin, optional wallet storage, which can be used and it provides all necessary crypto. So we implemented pack-on-pack functions and now they support both versions, GitCon V1 and V2 for RS Ascar wallet, Indie wallet, do not provide crypto methods required and for now it's not supported, it cannot be used with GitCon V2. I believe it can be done in future, but for now we postponed it and skipped. So RS Ascar is the only option for the moment. Next messages, we define it common agent message interface, we define set of common methods, how base agent message should look like, and this interface used across of the core package to reuse common logic, there are implementations for GitCon V1 and V2, which defines the general structure of the messages and if you are going to implement some specific protocol, you should extend messages from the protocol and reuse either first version or second version of GitCon message implementation, it's currently inside of core. Message receiver, there are almost no changes there, functions handle both versions, everything is hidden inside of the Ascar wallet, unpack method, it returns the version of unpacked message, so doing the next step, we can determine which version of the message is used for sender, currently there are two versions for methods for send messaging, the reason for it is, as I mentioned before for GitCon V2, there is no concept of the connection and this is key reason why we had to create two versions for sending message function, I will touch this topic once again later, the key thing to understand right now that there is send V2, which version of the function which doesn't depend on the connection object, it takes, it resolves all necessary information from using from and to fields of the message, it resolves the documents of sender and recipient, it finds keys, which can be used with common key type and it also resolves the service which is supported by both parties and send it directly, for V2 version, the functionality is smaller, it's limited comparing the first version, there is no support for sessions, for message queue, for priority, it can be done as the next steps, for now we just wanted to demonstrate that messages can be sent and received and we can exchange messages, protocols, for the moment there are options for two protocols out of band, really basic version, just creating an invitation message, which can be transferred to another party and another party can accept out of band invitation and create connection state object and another protocol is trust pink, it also a basic one, as there are just two messages, ping and ping response, party which accepted out of band invitation can send ping message to the inviter, inviter upon on receive all trust pink, process it and if response is requested, send the response back using sender G1, the implementation approach is the same as for supporting multiple versions for git com v1 protocol, for example for issuance of representation we have two versions, there are folders with protocols for each version defined as a set of messages connected to protocols, handlers, services and so on, so here we used the same approach and for trust pink there are two folders v1 and v2 and each of them reflects git com messaging flag, it may be a problem, I'll touch this topic again later, moving next, how to identify which version to use or git com v1 or v2, when we create invitations there is a parameter to define in the version explicitly, when invity accepts invitation he creates connection state object and inside of connection state object there is the protocol field which was before and we said the fakey idea of protocol did exchange with in fact there is no such protocol, we just used it as a constant to identify that this connection object refers to git com v2 and next when we send trust pink message using this connection we know that we need to prepare git com v2 trust pink message and use corresponding encryption and functions and about DIDs we used peer DIDs for both parties peer did this method too when service is embedded directly into the DID, there is ability to use another options but this one is the simplest I believe, this is why we chose this one we also created a demo in the branch you can find it in the independent folder in this demo you can create out of event invitation Alice can accept it next Alice can send pink message and Faber can process it and reply if it's requested the important thing here is that there is only one direction of communication right now only Alice can send the message to Faber on the Faber side currently we don't create connection state object I would like to discuss it next how we should act here currently right now concerns about the implementation as I mentioned the first one is connection git com v2 doesn't depend on connection and parties interact just using DIDs so should we current afg implementation strong depends on the connection state objects and all protocols requires connection to be established in advance and if there is no connection you cannot send messages but for git com v2 there is no such requirement you can start any protocol just restoring a DID of another party so like meaning it looks like we do not need such object anymore but if you want to use as much of we can as we can common functionality and avoid duplication we need to somehow create fake authentic connection objects and this is the first question to answer about how we can how to properly to do it the second point is strong strongly connected to the connection in fact as I mentioned there are two versions of sending the message function functions and for git com v2 functionality is limited comparing to v1 we need try to unify this version somehow provide a single method handling both cases uh and once we get a common function uh once we get this single function the set of features for both protocols will be the same it will be easily to maintain and extend the protocols adoption specification specification for now provides some examples of protocols how they can be done in git com v2 but v1 specs defines much more protocols for example git com v2 doesn't explain how issuance and presentation protocols should change how they should look like and as I mentioned for now we only adopted out of brand interest pink regarding the implementation and as a concern how to properly organize the code in fact we have two versions of git com v1 protocol like for issuance we cannot just create one more folder with v2 it will be confusing and we have v2 for git com 1 and v2 for git com 2 uh we need to deal here some other way find a better approach probably we should we can consider conversions of the messages back and forth and just use some identifier of which version is actually we need to use in the end crypto as i mentioned uh only a scar wallet supports git com v2 for now according to the specification uh git com v2 requires resolving of the id documents and because uh we need to get keys uh just on the envelope also contains key references and we need to resolve the id documents from the key references and current interface of the wallet do not accept git resolver we cannot inject inject it there and due to this we had to uh resolve all necessary documents one layer atop uh we currently do it inside of the core package so we in fact we already passed uh jwe and analyzed some fields uh to prepare git documents as parameters and we pass them into pack and pack functions this is not uh a good solution uh but it allows us to support uh uh different git methods uh if we only limit to use uh git peer for instance or git key uh we can resolve all necessary information right from the id identifier but uh if we want to use some other methods like git software git web uh the id url doesn't contain uh real key and we need to resolve the id document first so in order to provide to support all possible git methods uh the implementation of git com v2 uh is a little bit spreaded between uh wallet and core package we need to think how to better organize it or implement or rework the wallet and the last concern here is about the id's creation uh uh in all out of band service there is one more function to create a peer or the id method it can be a duplication of existing logic i didn't check uh it just uh left from the november we need to try to reuse the existing methods from git register as far as i remember it's quite a new model i just one more thing to take into account uh what's next a part of the concerns which we need to resolve answer these questions and provide the best solution for them we also need to support mediate mediator as the initial work was already done in november this branch this merge request is currently closed and uh outdated the right ones of conflicts we need to actualize it as well in scope of this pull request we added mediator coordination protocol and the message pickup protocol versions so right now git com can be used only with uh when in point past as parameter so it can be used by mobile applications only by services and one once we get implemented mediator support mobiles mobile apps also will be able to use this feature there is also a concept about the negotiation between parties on what protocols are supported by each of them and how to detect which version of messaging need to be used to send message another party can understand it and reply we need to adopt more protocols issues in presentation as the most commonly used was powerful and the conv2 also provides not only just one web envelope but just one web signature and plain text messages uh for instance just just some website message can be used when we transfer the very first message out of band invitation for example to to prove that i'm an owner of the dig which is reflected in the invitation so we can extend our wallet implementation to provide joe s methods as well and the plain message also can be sent back and forth in some cases i don't know now examples cannot provide them but there is such option i think that's it that i prepared i'd like to go a little bit back to concerns and we can discuss each item step by step cool thanks a lot for this presentation this is really helpful and uh yeah brings us all on the same page where we are um does anyone have questions i have some but i would just like to hear from others maybe if they have questions or notes on on this presentation hey kaleen kaleen is here kaleen from verin i don't know if you can hear me well because i'm on on the workshop at the moment and the connection is all very good hopefully you can hear me well yeah i can hear you yeah it's dropping quite quite often um artem you have mentioned that the next thing that it needs to happen is to have a mediator right so that way uh once the mediator is there the mobile applications can can also use that that protocol right but i was thinking i think in the aries um uh framework golang they have an option to play as a mediator do you think that can be used also i mean to play the roles in mediator so the mobile phones can connect to that mediator even it's on golang what i meant it's not only to have a mediator deployed somewhere we need to inside of afg implement protocols required for to communicate with the mediator uh to be able to talk and how far you think it's it's that do you think it's a lot of work or something that it can come you know in the next month or uh i think it can come quite soon uh before working on this you'd like to to resolve concerns which i mentioned before uh as i mentioned most of the work regarding the mediator support is already was already done in november oh lovely okay and we need to transfer it it just there are a lot of conflicts and we need to refresh it and apart apart from the aries framework go as you mentioned uh there should be sygpas uh bitcoin v2 mediator available as well yeah i think uh team will send it on the chat already okay yeah this one uh this is a very basic implementation it uh not fits for production needs but for testing and for demos uh it's good enough it supports only bitcoin v2 not first version and it's in nest jess and it uses sygpas library i see okay good thank you yeah i think one thing um i'm interested in is is uh uh there's few but i think uh it's like how do we deal with connections in bitcoin v2 i think you also added to the here um and like um yeah but what is the um do people still like do you still create a connection but don't we use like a data exchange protocol so we just like a connection is nothing more than having a record where i store my dates and the other parties did and that is enough to have a connection um or do we also want to support basically just sending a message to a date and not having a connection and i think this can have quite some impact on the architecture for example if i now want to send a credential offer um i can do that to a connection id only or id connectionless um well connectionless um um in bitcoin v1 is a bit different i would say then the like the connectionless in bitcoin v2 um so i think yeah maybe yeah what do we think about like should we require uh you always to create a connection so if you want to exchange information with a date you can just create a connection record and the only two fields basically it has to uh contain our our date and their date and then when we want to send messages then we have all information um um or do we want to allow for yeah connectionless um exchanges as well where we only use the date to send messages um yeah to know if people have opinions on this or are some what do you think i think we should create the record because it in any case it's useful for instance on the mobile we'd like to get the list of contacts uh which i know and i can send messages so we can create an instant record just with two gags and use it and it will be simpler to reuse logic for bitcoin v1 and v2 and it's quite still quite useful from the user experience point of view and therefore it's for bitcoin v1 uh if we look at out of bands protocol there is also option uh when party when there is no handshake and party just uh create create instant record and it's quite similar what we have now i think there will be the benefit to to just send a message to it without having an associated record to it um just mainly for ease of use if you don't want a a context necessarily with the other party um and if the API is just like if the record is just there that an hour did and i think it will be fairly nice to instead of supplying a connection i think you could also just supply it and that takes care of it um don't know the direct use cases you might have but it seems useful to me and especially if the underlying logic is exactly the same except for retrieving the connection record then why not yeah okay um yeah i think it makes sense it's just not probably the easiest to answer in this case because it requires like a very big change to how we handle sending and receiving messages in afj but maybe we could more like instead of having a connection id everywhere um we have something like a recipient and then when you call the api the recipient can either um like take a connection id or it can take a recipient did um you can optionally then provide a sender did if you want to uh say like i want to use this this did for sending the message um we do have to look good then um for example now we have a credential exchange record which you have a connection id in um and um if you don't um use a connection id you can do connectionless and then you have the out of band um record that is associated with it um but if we now also support like direct sending of this then we would need to have like another type of way to store who we're interacting with and then we would need to store about what's our did and what's their did uh they're using um so i'm thinking how we could have a good abstraction in afj that makes all this kinds of flow possible uh warren yeah if i'm not sure uh how this would work but i wonder if um we're conflating a contact with a connection and uh and perhaps they should be different things like perhaps a connection doesn't have to be revealed as a contact and so maybe you can have the same underlying abstraction and then an indication of whether it should be saved as a contact or not uh and then that that might make the whole abstraction easier to deal with in terms maybe not if you were starting from scratch but in terms of you know trying to bend the existing architecture to support this yeah i think uh that makes sense maybe yeah oh erl yeah yeah warren you you mean that probably if we even if we are sending a message to that did directly we can still create a connection record for that exchange because actually i think it makes sense because every connection will have a our our did and their did right so uh yeah i think it's a it's a good solution maybe we can use the the concept or at least internally the concept of connection for for both for both cases yeah i think it maybe would allow us to reuse the connection abstraction we already have and then we could keep the api very similar but that you then have different type of connections and a connection doesn't always mean you have to show it as a contact but it's more like an uh cryptographic relation that you have between two two uh bits i think uh uh yeah i think yeah isn't the connection just a bit there yeah in in this case i think for like the older um in the beginning like a connection was uh it was also yeah basically a bit fair because it doesn't provide any trust basically um so yeah it's basically a bit fair so then we could say connection is still the foundation of most of the exchanges but um you can have like a thermal connections in that case and connection is not the same like really having a contact or a long-term relationship it's just a cryptographic connection um parent do you think that that would work also um yeah yeah i think so i think uh introducing just yeah if you have a connection record then you introduce ephemeral true false and that would basically be a contact or a connection something along those lines um would be good i think just like from the api if you could just supply it and then under it would create a connection record um that would be like a short-lived connection record or something uh that would be quite quite nice um and a bit less yeah but you have to retrieve the connection ID first if you already have a bit um just a nicer api i think yeah okay um yeah i think that makes sense um um i think that would also make probably it for now the easiest approach because then we wouldn't have to change that much like we can have the same way to handle sessions um cues everything let me see there was a comment from alex uh you can still receive a message from a dit you have never seen though right yes that's correct so what do we do in that case um we could create a connection with only um the other parties did um but yeah i'm not sure how we should happen let's say you receive a credential offer from um a dit um you don't have a connection with um how how will we handle that do we create a connection record on the fly um or but yeah i mean that that requires if we don't create a connection record on the fly it requires custom logic in the protocol implementation i think so yeah that's a good question i i think that if we design something that would be a configuration option um because mainly i think if you have someone's dit and you can send them a big amount of messages to i don't know to to feed those them or whatever you would probably drop them if you don't have a connection if you are a big party or maybe it's a small party um but yeah if you receive something from if and if you don't want to receive any random message from other people i can imagine that you would also just want to ignore them um yeah that kind of that kind of sounds like an application layer decision yeah that's why i'm in configuration so you can configure as an app in afj to what would happen with the messages right i guess what i'm i'm wondering is uh are you thinking about a configuration that would be global or a configuration that would could be more granular because you you may want to allow traffic from like uh basically ask the user whether they want to accept something in some cases but they also may want to create a block for instance on certain did so they don't get bothered about it um and i don't know that that afj would be able to make that kind of decision on its own it would need to be or like run at runtime yeah i i think that that could also work um not so i don't know whether like a connection like under the hood i suppose a a dynamic connection could be created or you know the whatever notification gets sent to the application layer could provide a context that needs to be passed back and if that context is provided and passed back then you can establish the connection at that time or discard it if you know there's no action taken or like so you don't end up with junk in your connection list for things that the user doesn't want to deal with at all yeah yeah i'm not a hundred percent sure on the exact implementation um i i think what you just proposed sounds sounds good to me it's just as long as uh it is something that should be done by the user and i think if afj that basically was just set as afj we can't really make that decision um so i don't think we should deal with it in in a way like that i i think there's probably also a happy medium now that i think about it which is perhaps you know you um depending on the application the application might say okay this is the default behavior i want afj just take care of it um and the default behavior might be you know send me everything or you know send me nothing if it's unsolicited um uh and then they have the ability to do the filtering themselves so maybe maybe there's a happy medium where there's some kind of configuration that would allow for some default behavior that would be valuable for some use cases but the flexibility to let the application make it behave the way they want yeah i think um yeah i think having a simple default would a way to customize whether it's a uh an interface you have to implement or call back where where you can basically implement your spam filter as as alec said i think that that makes sense um um yeah i think what i would really like to have in a solution is that it is something we can handle generically and not something that has to be per se handled by the protocol implementation so that the issue credential protocol doesn't have to account for maybe maybe there's a connection maybe not maybe it's from a dit maybe it's a dit conflict like that it's because then the the the ways becomes like exponentially complex for each protocol to implement but for example having a um dynamic connection which is first marked as like uh like in verified or like unhandled or we have a callback interface where you can dynamically verify incoming messages and say like all right i want to accept this message and that will create like a uh a dynamic connection um i think that's yeah interesting approaches to explore um what do you mean alex with other non-afj agents need to support connections to interact with it i'm sure if you can solve but uh i think he's probably agreeing with you that you don't want this in the protocol layer for the individual protocols if i read this correctly okay okay uh i i may be misinterpreting but that's my so and i think that i think that's a good thought that the protocols probably shouldn't have to be aware of this okay yeah it's an it's an internal implementation detail as to whether you know uh an unsolicited request becomes a connection or not um and whether that connection ultimately is revealed as a contact or not those are kind of application level decisions and not not protocol or network based decisions i would think yeah okay i think uh that makes sense um yeah cool uh i think in a lot of cases like when you use peer-to-peer it's then uh like there there's like you wouldn't just randomly receive messages um so maybe we should look at then what what would be a good first iteration that we can have without making it too complex like i think there's been a lot of work in the did conflict to branch and there's some stuff missing but i do think it would be good to have it get it ready to merge then we can iterate on it um um so um art and do you think like something like this where we create dynamic um connections um whether we have the the way to like uh have a dynamic maybe we can for now keep it with a simple default behavior like you allow or just allow do you think that that would be something we could implement quite easily into the did conflict to branch i believe yes cool um are there any other things then that we would be um that would need to be addressed um like i think mediation is a nice thing um to have but also something we can add um in a follow-up iteration i think if we have like a first thing merged with just out of band and trust being then it becomes easy to add other uh ones do do people see any other parts um about yeah that need to be addressed or or things to note here i guess i just have a question i'm not sure where the specification work is at at the moment on the protocols layered on top of didcon v2 i'm getting the impression from some of this discussion that that work has either not been done yet or is incomplete um can you fill me in on what the state of of that is and or whether like part of this work has to be actually defining the new or redefining if necessary the new protocols to fit into didcon v2 i think there has been work done uh so for example if you want the mediation there is a mediated coordination v2 which is basically the didcon v2 adaptation after the v1 so not really a lot of change in functionality but optimized for using it with didcon v2 and there's some other protocols so for example um whereas it's the issue credential v3 um has been defined which um works with um didcon v2 um so there is some work being done but not too much yet i would say uh so we're probably gonna run into some issues and as you can see it's like there's not a lot of activity on here um i think there has been work also on a eris intro profile v3 which is based on didcon v2 um and then supports issue credential and percent pro v3 which are didcon v2 um so and i think the the requirements for didcon v2 uh intro profile would be a lot less because a lot of it is already incorporated into didcon v2 um itself so there is a foundation we can build on um but it's yeah i would say newer territory um yeah let's answer your question yes it does thank you cool um then um artem do you have time in the coming weeks or so to to to work on these final tasks i know that farine um was interested also in the the didcon v2 uh work i don't know if i think he left the call um yeah oh well so i will ask him next week but um yeah do you have work time to work on this or i try to find a little bit time unfortunately i'm quite quite busy for the moment and if i will be able to change to apply this change quickly uh or if i have some problems and i understand that it take longer time i'll notify you and inform okay yeah no that's uh that's uh that's a good answer um okay thank you and i think uh yeah we at least i think it was a good discussion and we have some consensus on like how do we want the api and integrate it with the connections um so then we at least know what's still left and needs to be done um cool thank you for this presentation could you uh attach it to the uh the meeting notes uh i attached but for some reason it shows unknown attachment i'll try to do it once again well i think yeah it it it's uh added here i think if i do it like this i can all right yeah so i i can download this in attachment that's that's perfect okay okay thank you um so we're out of time basically um um i wanted to still discuss the open wallet foundation maybe i can also put it in the discord and we can pick it up next week um but i was curious to hear like um what uh we have already discussed it here a bit but whether um the fj community would be interested in like a potential move of the project um to the open wallet foundation um arise like from the areas discussions there came out of like um we're not ready to move uh currently to oh wf also because it's very early states uh but that we are looking at more collaboration and maybe moving projects over gradually um so um nothing is final yet but i was thinking like yeah i'm quite interested in it so i was thinking we as the earthstone JavaScript community could be like one of those first projects that move over try to see how it goes whether everything goes well and then other projects could be moved on moved over as well later on um so yeah something to this consider i'll bring it up in more detail next week so we can have a discussion but uh yeah think of that uh uh yeah for next week um okay so then um we yeah didn't have time for the other discussions we'll uh touch on those all next week um thanks all and see you soon thanks goodbye thank you