Hi everyone, Joe for jaskiescasebrakes.com coming at you with the 2021 Panini Donneress Baseball four box Random team break number eight one spot gets you three teams in this four box break. So Let's triple you up. Thanks everybody for getting into the action two three And the teams let's That's not the dice roll that I did right That's at the 28 minute mark Yeah, let's go back new dice Right here. There you go. That's the correct time 24 four and a four hard eight one keyboard come on Let's go keyboard Got a lot of work to do here two three four five six seven and eighth and final time That Eric down to Rick Eight the hard way for the teams. Good luck one two three four five six Seven and eighth and final time. We got the Red Sox down to the Rockies After eight. All right, here we go Eric you have the Red Sox Jonathan with the Padres Omar with the brew crew Dylan with the Braves Adam You got my Dodgers Eric with the Rangers Rick with the Blue Jays Jonathan with the Twins Eric with the White Sox Dylan with the Reds Omar with the Phillies Dylan with the Angels Adam with the Yankees Omar with the Pirates Max with the Diamondbacks and Royals Eric with the Giants Roy with the Cubbies Adam with the Marlins Eric with the Rays Omar with the Tigers Jonathan with the Metropolitan's Omar with the Stroh's Roy with the M's Max with the A's Roy with the O's Rick with the Nats Omar with the tribe Eric with the cards and Rick T with the Rocks Now let's get all this on one screen trades are allowed if you want Trade at your own risk While you're thinking about trades. Let's pop this baby open here fresh case Actually adjust the colors a little bit on the top camera there a little too too blue Warm up the color of it brighten it up a little bit there, too All right, so a fresh case so let's make another stack of four here Let's make another stack of four Here like that All right, so on the dice roll. Let's select a die. Let's select that Die we'll go one two three four if I roll a five or six I'll roll again But no, I won't because we're gonna do that first stack right here these we will save for Next time whenever that may be a Put on Instagram nice Yeah, check out mojo sports everybody. They were in this store Hang it out. I think you just search mojo sports on YouTube they were And he was hanging out here just Taking a look at our shop previewing our shop a little bit. It's pretty nice Hopefully you'll have everything edited up Looking nice. That's what he said So look for look for that's in store feature Pretty in-depth look to especially if you're far away from the store and unable to to visit anytime soon You can watch the video Mojo sports is gonna do for us and you check out the inside of our store Little interviews with Nick Jaspy and myself He talked to the shipping team too, which was cool All right, so I don't think there's yeah, no one's trading. So let's just let's just keep going here All right, TWC trade window closed In the chat, there's the final printout right there for break number eight Thanks, and good luck. Yes, Jay Cohen the store in LA in Hermosa Beach Our 3,000 square foot store is open to the public We're open Monday through Saturday Jay closed on Sundays Monday through Saturday 11 a.m. To 6 p.m. Local time We got the sounds of Tampa Bay in New York raise up to nothing I feel like Yankees have been struggling a little bit Absolutely you should yeah, if you have the opportunity Jay Definitely stop by poke your head and say hello See what else we have Tonight Diamondbacks are in Washington DC. They're at zeros in the bottom of the fifth The Cardinals are in Philadelphia car Phillies up six nothing on the Cardinals top of the six We got the Indians in Cincinnati and Cincinnati just dropped seven in the bottom of the third I think they're still batting to So they're up seven one early top of the fifth The Giants are in Miami Giants up one nothing Just started in in Texas Orioles Rangers scoreless Top of the second Pirates up one nothing on the Brewers. That's also early top of the second And I think most of you will be able to see this game on MLB Network But a big game for Southern California here Dodgers at Padres to teased junior back off the IL They're in a risk running running around that shoulder. That's your baseball or the for the evening And I guess Mets Rockies postponed because of snow Blue jays Royals postponed because of other white socks red socks also snow Miguel Tejada to 466 and I think it's only veteran commons That don't ship. Yeah, no vet commons ship But a lot of these are like rated rookie cards or inserts and stuff like that.   So that's gonna ship, right? But these are the common cards. These aren't gonna ship But that will ship. That's like an insert There's Eugenia as far as obviously will ship. That's a numbered car that of course will ship Yes, I'm pretty sure Alec Baum is one of the the rookies to chase in this set For the Phillies, that's that's you Omar. You've got Alec Baum as Aaron judged to to 2021 6-0 Sanchez That's not is that the design of the card or does that miss cut? No, it looks like the design of the car the rookies To 349 that'll be for Miami Adam JT Real Muto And we got we got a Jake Cronin worth Nice, he's pretty solid. We'll see him in action tonight Yeah, like I said, I think most of you will be able to see that on the MLB network. I think they were saying Were they saying as a Sunday game? Either way, we'll have the local broadcast that you'll hear in the background a little bit later tonight Jake Cronin worth for the Friars Jonathan with the Padres Here's the Hawk Andre Dawson. So Omar will get this We'll get this JT Real Muto as well, it's Anthony Rizzo to 2021 Christian Javier Now J saying red scored each of those seven runs with no outs Now they got now they got three outs, but that's crazy. All right next little stack here Casey Meis who had a really nice start last time out. It's Matt Olson to 2021 Matt Olson for Oakland, that'll be for Max and Casey Meis for Omar and the Tigers. There you go It's Olms in the chat. We got this live stream thing right here, Ronald Acuna Jr to 999 for the Braves Dylan and it's Tristan McKenzie for Cleveland. My Mountcastle's posted pretty good. That's another numbered card there So that will ship angels that's for Dylan Tony two bags and the Mountcastle Roy with the Mountcastle. Nice. He's supposed to be pretty good That Acuna was numbered You see the fire emojis in the background. I like that that goes to Dylan and the Braves Zach Gallant to 2021 Jacob DeGrom Right here to 999 having starts pushed back because of weather last two or three days Roger Clemens to 2021 And Corey Seager autograph.  They'll plant. They're playing the Padres tonight could this be a start of a big rivalry For years to come it might be He's back. Yeah, the Padres definitely have a rivalry with the Dodgers I don't think the Dodgers have a rival with the Padres not yet. Anyway There's Boba Chet to 2021 Corey Seager, I feel like has an outside chance of Rookie of the year. There's Cody Ballinger. Hopefully he'll be back soon working on a Foot thing a cast thing. I think he got spiked by a player unintentionally Forget what game that was like a week or so ago. I Think got spiked by a player So he's been trying to recover from that it's Charlie Blackman for the Rockies Jose Ramirez, I think these Statue of Liberty cards are won per box It's a little bit shorter printed Cody Ballinger keeping it 100 and I do like these unleashed cards right here Now these ferocious animals in the background John Carl Stan unleashed. He did you he did get spiked. I'm pretty yeah, that's what it was That's what it was So thankfully it wasn't like a I don't know That was like a non-contact injury. It would have been would have been worse. So hopefully he'll recover from that All right box two How am I how are my picks doing today? I'm on Arizona They're scoreless. I'm on st. Louis They're down six runs. I'm on Miami. They're tied at one On Cincinnati, they're they just scored seven runs. I'm on KC. I think that game has been postponed on Houston that game is happening later and There was some value in taking the Padres against my Dodgers at plus 139 I don't mind a betting against my team just so If they lose at least I'm making money Right Yeah I'll bet on especially since the Dodgers are never gonna be underdogs They're always gonna be like minus 180 or something crazy like that. You'll never find value there at least in baseball So why not go against them? And if they win you don't mind losing the money If they lose you're mad, but at least you're making money Win-win situation who's who's pitching in that Dodgers game tonight? Oh, I think it's Walker Bueller and Ryan Weathers I think some of you may have accumulated some Ryan Weathers cards in some in some Bowman product not too long ago I might want to double-check your collection. See what we got next box. Here we go Got Nick Madrigal here and Alice Kirloff autograph It's supposed to be pretty good. That goes to the twins. That's gonna be for Jonathan. Oh, and then Bueller Bauer tomorrow Jay Cohen saying and who's who's on for a Sunday? Salvaro Perez 75 There's Alec Baum right there rated rookie card for Omar and the Phillies Rookie of the Year finalist last year Kershaw 2021 Kershaw. Oh Bueller Kershaw and Bauer this weekend. Sorry. I missed the Kershaw part Bueller Kershaw and Bauer this weekend It's a pretty good Pretty good rotation right there. There's Lourdes Grillo Joe Adele for Los Angeles The Angels that is Dylan of the California Anaheim Angels of Orange County Ceci's Lizardo Joey Bart Corbin Burns Joey Bart again Joey Bart could be future Buster Posey So what they're hoping for All those are gonna go to the Giants. That'll be for Eric Houston and my rivals What's going on with the Yankees? A lot of batting averages at 200 John Carl Sands batting only 171 Sammy Sosa And we got Nolan Aronato Unleashed. This is still Rocky's addition to 999 Hyunjin Roo to 2021 and Luis Gonzalez is your next autograph That's for the White Sox. It's gonna go to Eric C And Jaysang for the Yankees other other than Garrett Cole. The pitching has been iffy, too What's going on? Bobby Dalbeck, Verdugo has been hitting well lately 6-0 Sanchez for the Marlins And a set like this folks It's these parallel the rated rookie cards the parallels the possible gradeable cards that are that are the really Sometimes can be more valuable than some of the autographs that we pull Vlad Guerrero Jr. And it's another 6-0 Sanchez Different parallel from the one we saw earlier. It's 999 Bo Jackson to 2021 And this is the next hit. Yeah, there's Geo or Shelley got a bit of the Yankee pinstripe right there Adam Tipton with the Yankees Vander Bogarts to 2021 Dylan Carlson for the Cardinals Eric Houston Austin Meadows to 19 Tampa Eric Eric C with that Luke Voight and a Joe Adele for the Angels nice 1365 out of 2021 Dylan With the halos All right, next couple boxes here Is it too early to overreact? It's never too early to overreact, right? The Red Sox are 9 and 1 in their last 10 games Overreact World Series for them that the pitching that starting pitching is Monday. He's gonna catch up with them Remind them everybody to set their rosters was Monday they play 8 a.m. Monday, they play super early if you have Red Sox fantasy players on Monday. Oh Is that where they're wearing the those new uniforms? They have those like cool blue and almost like UCLA Bruin colors Those dealing blue and yellow uniforms But yeah, they only just lost yesterday, but they had nine and one in their last 10 And they had one seven straight at one point, right? Also Alex for do goes looking pretty good They're that starting pitching is gonna catch up with them at some point. They've been hitting really well Hey, believe it or not You know who's first in the AL Central the Kansas City Royals Well, it's got it. They've got a young team They could surprise some people. I guess you would you would think that the The twins would be running away with this division, but they're just under 500 Yeah, yeah, JD Martinez looks like you can still hit to Seattle, I like that Seattle's 8 and 5. They're looking good They've got a young team that could and youngsters in the pipeline to that come up Angels 7 and 5 Otani MVP, maybe although there's still that trout guy Oh Otani and trout combined for 17 of the like 24 teams extra base hit so they're doing the work. That's why I just saw in the MLB ticker we've got Domingo, Ayala, this is kind of a cool insert here. I don't think I don't think I've seen that. Oh, you know what? I think this this might be yeah, that gets randomized to someone in the break It's Cabrion Hayes There's Chef G Right there for the Yankees No one calls him Chef G do that. Do they do they call him Chef G? Is it Kyle Lewis? Is Kyle Lewis killing it? The rookie of the year last year Cabrion Hayes for the Pirates Omar. This kid's supposed to be really good too Yeah, Bud Selig, San Diego chicken and Domingo Ayala cards are randomized at the end of the break will randomize them as one lot I'll set that right there. Byron Buxton to 50 Luke Voight to 999 Who could Brian yeah, he got hurt he hit like a home run opening day and then like a day or two later I think he got He got hit with a pitch in the wrist or something like that nice Dylan Carlson signature series Autograph for st. Louis that'll be for Eric H Breaking news Cody Belanger has a hairline fracture in his left leg. There's no timetable announced for his return Ohms, I think Ohms has him in his fantasy team. I have him in my reality team No, that's okay. We have Zach McKinstree More Zach McKinstree. That's how deep the Dodgers are Rod Caru to 2021 Jazz Chisholm Joey Vado to 2021 I Don't know what what happens with hairline fractures. I mean did that's not like a cast situation, right? I mean he was walking around Is that something that you just sit around and he I'm no doctor any doctors Without cure love and Mike trout to 390 it looks like All right, we just rest that and it and it just has to heal on its own rice harbour There's and Trevor Rogers is your autograph for Adam and the Marlins 47 out of 99 on that one nice spare ball Carlos Correa to 2021 Kevin Gosman to 2021 It's for the Giants. That'll be for Eric H Julio Rodius to 999 and Alec Baum blue parallel for the Phillies And Will Myers is your relic Got a bit of that powder blue there for Jonathan and the projres the friars There's the babe Babe Ruth To 500 career 506 doubles That's a pretty good one for the Yankees Or shella come on Keep your eyes on the ball or shella.  There you go. Bring this guy back. Bring Babe Ruth back as a pitcher Oh, that's kind of that's kind of oh come on or shella enough of that. Oh lay BS Thomas this is just poor form His feet were steady and his his he was backhanding the ball.   I mean, I don't I don't know if you're gonna hit and We're gonna hit in the majors Thomas, but But I could I you can catch a ball last box. All right. Good luck everybody final box and then I don't know what's next, but the schedule says so check the schedule so you can find your break If your break sold out and not on the schedule, that means I just have to go through more orders or it probably needs a filler And scroll down on the break schedule filler information. Also Here's some other resources on that break schedule link. Now, all the others are the schedule The list of fillers click the shipping tab. I don't tell you when your stuff is going to ship So if you were in a break a few days ago, you're like, hey, what's going on? What's the status? You can see what the status of your shipping of your order is From sorting through sorted Through shipping to shipped Those are like the four main steps In the life of a group break So that break schedule that's always pinned in the chat and frequently dropped in the chat by nightbot Is a very important resource you can even bookmark those links to your phone browser to your computer browser And keep that handy at all times There's some not important things there too Like my picks for entertainment purposes only we'll double check on those picks after I finish this break Any other standing surprises? No, Mets aren't playing very many games because of the weather Fillies are the NLE just seems a little unimpressive right now five and three for the Mets six and six for the fillies Six and eight for the breath of the brave would be a lot better out of the gate Miami's five and seven Washington's three and seven in the NL central red seven and five Milwaukee seven to five Kind of rough for the cubs Rough going for the cubs lately Dodgers 11 11 game winners. They've only lost two games Look at this, San Francisco has been surprised and they won eight games Just hit that support button Ryan the support button for all Support related questions on jasper's case breaks.com. I think the team is gone for the day But they'll probably get to that at some point tomorrow There's david or teased 400 and here's A solid youngster right here nick madrigal The white socks have a good good young core Right there. There's eric c and the chicago white socks Yeah, right Now let's see I can see someone Missing that button on the bottom left hand corner kind of hidden away Casey meyes paul molleter to 2021 there's bigfoot right here brian reynolds paul molleter Casey meyes number one overall pick had a really nice start last week or last start Sam huff dale murphy to 2021 There's cody bellinger just heard the bad news about him Get well soon cody And for the marlins adam look at this jazz chism. Oh, I thought I was gonna be an autograph Why would they why would they do that? Just i'm just a face, right? That's it 534 slucking percentage for slime and samu sosa Pretty nice cubs. That'll be for roi So there's trending louise robert to 249 and Trevor bell. Why are these cards flipped around? Trying to definitely pennies trolling me here making me think there's autographs in this spot Wow, it's cure love And la pantera right here for the white socks. Do they really calm that la pantera? huh La pantera Juan soto To 999 christian javier. Is this an auto? No, it's not not an autograph flipped around not an auto The louis patino josh bell Poor this this sese kid. They're just laying.  Thomas He's got the bases loaded Now someone's warming up There's nelson cruise to 75 nick madrigal randy arzirania who's up to bat right now and three and two of the count Bases loaded top of the fifth Big randy arzirania looking to blow this game wide open If not brandon allow it's only one out. So if not brandon allow Man arzirania swing for the fences Fouls it off. There's max mired 99 one of their top picks for the marlins. That's going to go to adam And graffiti junior See you john Oh, this might be two Oh, they throw it away. What's what's this terrible defense thomas? That was an easy double play ball. Whoever the second baseman was number 42. They're all 42 today Number 42 Just throwing it wide of the first baseman sessas pissed Sessas just like I could have been out of this gd inning Just throwing it around. Oh, yeah, just throws it wide Did you hear that dunk right right off the infield wall That's that dunk That was that was the ball ricocheting off the infield wall when it skipped past ejily mayhew odour Made the error Yeah, old rugnid This hose of berreu relic The mvp going to eric c there's he gante 2021. That's what they call al-tube. All right. There's the autograph signature series rafael martian Catcher for the philadelphia fillies. Omar with the fills the fighting fills Hey, man Miss javier bayez to 479 Jonathan pappelbaum right here to 2021 and there is mo mario on over right there as well and there you have it ladies and gentlemen That was four box random team break number eight of 2021 panini donneress baseball. We got that card To randomize to one person in the break. There's any other non It's gonna be here. Let's flip back to the screen.  There's some new dice There's a new list. Good luck name on top gets a little consolation prize there a little extra prize after four and six 10 times one two three Four and good luck 10th and final time. It's gonna be for jonathan. There you go jonathan after 10 times that card And uh san diego chicken if if any and the budsy like if any will also go to you as well I'm joe for jaskies case breaks.com. Thanks for watching. Thanks for breaking with us. I'll see you next time for the next break. Bye. Bye


Okay, hi. So I'm a tech internet SFLC, so SFLC fights for the digital rights of people. So there's a, I have put it on a website, but I couldn't share it on here because there's no internet, so I have written down the links on the registration desk, so you can guys just check out the event registration link. So tomorrow SFLC is launching a report on intermediary liabilities in India. So intermediary liabilities suggest that if any person who posted any illegal or illegal content on the website, so government suggests a government, government takes legal action against those intermediaries such as Facebook or Twitter who have no roles in that content posting. So there's some, SFLC released a report in 2014, 2019 and there's another follow-up report which we will launch tomorrow at International IACC. So Islamic Center is near this venue. So you can just check out the links written down outside on the registration desk. That's all. Thank you.


Today's topic is revenue from contract with customer. So that is a very, very important one because the top line of income statement is the revenue. So now the question is how this revenue is going to be recognized. First of all, the learning outcomes after going through IFRS 15, students will be capable of understanding the five steps model in revenue recognition. There are five steps involved in revenue recognition. Students will be able to determine timing and amount of revenue. Students will be able to calculate various types of businesses revenue and how to present in the financial statements. Objective and scope. The entity shall apply to report useful information to users of financial statements about the nature, amount, timing and uncertainty of revenue and cash flows arising from contract with a customer. Very important thing that the contract is the important thing in this question. What is basically the contract? Contract is basically agreement between buyer and seller. That's important. And three things are important that the seller will offer something and the buyer will accept the offer and then they discuss a consideration. That what amount they are going to be paid for the goods and services they are going to buy. Recognition and measuring of disclosing revenue arising from a contract with a customer that are not dealt with specifically any other IFRS. IFRS 15 applies to various revenues. Various means different types of revenues like a bank such as fees, commissions, other income and their may results from service loan, assets management, custody services, pension, administration, insurance brokerage, but are not limited to those. In one single business, you can see the number of ways they are generating revenue. So we are going to discuss each and every business, not basically in total, but still we have to discuss how the sale of goods rendering of services will be going to record it. The effective date of this standard is 1st of January 2018. Now, there are two important things here, definition, gross inflows of economic benefits during the period arising in course of those ordinary activities which inflows reserves in increasing the equity. Now, equity straight away, any transaction in a business affects the equity. So you are buying something, so at the end of the day you are receiving money, you are generating profits, so it goes to the equity straight away. But specifically other than increase relating to contribution from owners or equity participants. But if a businessman adding money into the business, that's not revenue. Otherwise, anything which added to the equity is revenue. Revenue refers to the gross amount of revenue and excludes amount collected on behalf of third parties such as taxes, another transaction where the entity is acting as an agent. That is again an important thing. You know, we are selling goods and we are recovering sale tax. So we are getting the money, but that is not our revenue because we are collecting on behalf of the government. So anything which we are collecting on behalf of somebody else, but it is there in the money, you are getting the money, but that is not the revenue. Revenues exclusively for the goods and services you render and which belongs to this seller. Thank you very much.


Well, I am Alicia López Medina, I work in University UNED, which is a national distance education university in Spain, and I am the head of a unit which is called Technology Innovation, and in my unit I am responsible for the institutional repository. This is a good news because that means that in my university repositories are related to innovation, which means that things are changing in the way things are happening in the university, research, education, and there is a need of a new system to support processes, information processes in the university. So I am a librarian, a repository manager, and I am the executive director of COAR, the Confederation of Open Access Repositories, and today I am here representing COAR, and I am going to talk about these challenges for open access repositories from an international perspective, from the effort we are doing in COAR to create support, these new needs of management of information. So I am going to start, how do I move this here? So I would like to start by, do you hear me? Why? Okay, it's better. Now look, I'll leave this down. So we are talking about data, but I would like to frame this need of data in what has changed in research. In research. I think it doesn't work. So do you hear me? Yes. Okay, so data are important, but the thing is internet, and this is obvious, and we say this all the time, has made a revolutionary opportunity for many things, especially in our case for research. So research is intensive use of data, of course, but it's also, as you said, global, and it's collaborative, computationally intensive. That means that research is doing by machines, analyzing and processing all the information. And it's also virtual. This collaboration is virtual. It's done online through global collaboration. So this is an important stress for us responsible for supporting this research in terms of information management. So this means that there is another way we have to create the objects that are a result of this kind of research. We have to find another way of providing access of information, providing support for reusing, etc. So the opportunity is this open science we are talking about today, which means that this collaborative and computational intensive and global and virtual collaborative are open. So means they can share. They mind share tools, results, and everything publication, data, software. You mentioned also the question of software. So one thing there that you can see here, and as you mentioned already, for research, it's not only data. I will talk about that later. So the idea I wanted to get in this open science concept is that the objective of open research to be open is to make it more efficient, more transparent, more trustworthy. So the opportunity for scientists now is that they can do things that before they were not able to do it or it would have taken 100 years to do it. So it has to be using the opportunity of new technologies and internet. So I would like to propose you a broader understanding of open access and what is driving open access. It's also, yes, the journals are very expensive and we have to look for a business model and stuff, but for a broader perspective, open access is more because e-research and the requirement of e-research need open access, so the full exploitation of internet. And I will talk also about this open access intelligent. I like that very much, the intelligence of opens. So repositories, I would like to frame repositories, open access repositories in this broader picture, not only in gold or green or publication only, but in the whole picture of research, the whole matter of needs or the whole cycle of research. And I believe that repositories, those systems that manage digital information, we can make a change because so far I feel like we are talking very much in a transition period, but we are very much stuck in the print area. We haven't gone, well, most many researchers did, but to the native digital world where things are happening in a different way and concepts are also changing. So I think we can change the way research is done, not change maybe, but support the change in research by exposing rich knowledge-oriented information assets. Because remember that repositories are systems to manage to do things with digital objects. So this is a very naive, but I think graphic of research cycle. I took it from Leo Beicher. I don't know if you know him. Many years ago he came to Madrid and he showed it. And I think it's a very nice expression of what is happening here.  Data for me is only from the repository manager's perspective. I would like to broader also the concept of data, not only data as understood by your presentation, but data as models, publications, say even simulations, versions, you know, and they have to use those global data integrated as a one object because they have to be linked otherwise they don't have meaning and they have to use them in operating tools, in private or shared environments and the collaborative work spaces between that before publication there is a world. So not only happens when something is published, the story begins before that and a lot of things are happening before the final publication is actually published and repository we have to follow the whole workflow of research and here we can have open access to intermediate presentation, I mean publication, this is final and draft enhanced publication which means in this new research what is a publication? It's not anymore an article, it's a complex object made out of all these pieces that the data what they wrote, the graphics, the simulation, the software they used all of these is as you said and I agree completely dynamic, they are okay, they comment, they change, they process, they reuse. So this is an opportunity for repositories, data repositories, publication repositories to support these complex objects and new models of use those objects. So a Berlin declaration in 2003 they told us already how to do that. So we have internet and the technology to make the global and interactive representation of human knowledge and to do that we need content and software they must be freely accessible and introprable. So for me and for the point of view repositories which are the responsible to take care of these objects for the researchers to use them, this is what we have to do not only open repositories, we would never sell repositories, web resources all of these repositories that are responsible for managing objects but what we have to do is to make them open access intelligence to the machine. So what means intelligence means that they are linked that means they are related in a way that structure in a way that the internal structure is machine readable so we can make this link between the data, the publication even we can go further as we use the key setting in the data data is also the name of the researcher and we are working in an author ID, persistent identifiers and there is also the possibility for us to go the object with the rights of using that object or the provenance or the versions or the comments or the different metadata to use in different systems so this is the representation of what the internet Berlin declaration they said is the global virtual representation of knowledge the key point is that every piece of the knowledge has to be linked has to be linked so this is where we have really a job to do open access repositories first we have to have the content open for humans of course with this quality that we were listening to this morning but then we have to open this to the machine because the power of the new research is because agents and software and intelligent robots are going to use these intelligent objects we are preparing and structuring in our repositories to do marvelous things things that can challenge this climate, weather I put this example because it always looks like e-research is only for science but e-research is also for humanity and social science so this is an example on how different sources of data can be structured in a way that the machines are going to ask this we are going to be able to ask this question that he said, I don't remember the question but it was a very intelligent question and the machine can understand that and answer so because underneath we are there the repository is managing this object in a very intelligent way semantic web actually I'm talking about so to realize this potential to create this global knowledge object to use and reuse a key issue is interoperability this is an interoperability workshop and we need also and it has been mentioned here a community we need to collaborate closely together repositories to feel that we are a community and as we are only one part of the wider infrastructure we also need to engage with the other parts of this e-research infrastructure so this is why we have created the Confederation of Open Access Repositories which is an international nonprofit association you see we are already 100 institutions and we are represented in many on the continents of the world and we have created it because we need a community we have to create a repository community in order to lead and to advance in creating this network so we have here I mentioned it because we have many representatives here from Turkey that are becoming members of COAR it means Gultekin it's around here there Gultekin now we have future members from Turkey that's the way so what we want to do as a community we want to create this infrastructure of repository open access infrastructure to facilitate that a better visibility of research results but also a greater application that means to facilitate researchers to do better things and more things with this object and we base it on interoperability and international cooperation so now how many times do I have left? so the first focus we have as organization of course as open access organization nothing is possible if we don't have objects in the repository has been said today repository without content all these marvelous plans of the semantic global representation we cannot do it because we don't have the object so one of our focus in COAR is to give ideas to the international community about how to increase the deposit of objects in our in the repository so we have a report that is coming up soon the chair of this report is Catherine Sheer she is from the Canadian Association of Research Libraries and this is some of them that have been already mentioned strategies to improve the deposit in the repository and this is an international so what we have is we have gathered all the experiences in different parts of the world Japanese are very good in that they have a wonderful program I don't have time to show you but it's very effective and then there is COAR is promoting and supporting this is called Open Access Agreement and License Task Force so this is multi-organization initiative I will show you later the members and the idea is like we as a library well some people here are librarians so we make agreements in consortia or national or just institutional when we buy or we subscribe the journals and databases and we sign agreements and process in those agreements so this Open Access License Task Force wants to look for new models and innovative ways of including in those agreements Open Access process like for instance the condition that's the license that we subscribe the journals that our authors in our institution they are allowed to put the articles in the repository without paying any extra so I will show you who is participating in this as you see there are COAR members but there are people not from COAR so this is an independent task force which is supported by COAR you see for instance the McStan Digital Library Neal from GISC which is over there GISC is a member of this task force and the World Bank publication so we support also the community because as being international there are different levels of development in repositories we have these initiatives Irina Kuchma is the chair of this working group which is dedicated to training and to health and support we have taking ideas from open air like with the Health Desk a little bit and the National Portal we have online workshop lately the last one Eloi was doing an interoperability webinar and also we provide training materials from all over the world so it's international international outreach very quickly I wanted to show you that we are in as many place as we can in the world so we have been doing workshop oh how do I go it's because I don't have my glasses yeah thank you very much so we've been like in very intense in a workshop it was Irina it was Eloi who was from here well they were in very intense we were also in the conference another workshop about interoperability we were in Cuba Luba is doing great things now developing in the Caribbean regional network we have been twice two years in Cuba giving them advice, support, training and now they are starting really with repository network we were also in Bangalore in India and in Colombia and China you see we are really developing a very international action we create community also with our animal meeting next year will be now it's going to be in Istanbul and at the beginning this animal meeting was only a general assembly but now it's becoming also a conference we have got papers and we are going to organize tutorials Jochen which is over there is going to talk about new metrics for data usage in repositories okay we are we are organizing these tutorials then later I want to go the support for region this is a very important initiative in the region of Latin America and we have really being an important support for them and then this is private because it has been released today we are offering a repository observatory because we want to keep this is a very evolving situation repositories are changing everything is changing so quickly that to make the decisions you need to have a little strategic vision so we would like to provide repository community with this strategic vision a little bit of scanning the horizon and see what is coming up and what could be the best option for them and the direction so for this one we have interviewed Michelle Kimpton I suppose you all know Michelle Kimpton she is from Dura Space and she is talking about what is going to happen for you in this space and Fedora for the next years what are the strategic direction and I think this is important for us because we are this space and Fedora users and there is also well, GoFind is briefing about new projects, new initiatives that are interesting to offer new perspectives of what repositories could offer so I invite you to take a look at the new repository observatory so interoperability which is the subject today actually so this is one of the main actions of COAR because everything actually if you want to create infrastructure you need to base it in interoperability so it's in our strategic direction it has been always a important focus the main results to now is this current state of open access repository interoperability I don't know if you had the chance to read it and it has been needed by Eloy and it presents an overview actually of this is the the first part so the idea is to have this area of possible services and what kind of initiatives and protocols you can use if you are a repository manager and you have to take decisions so I'm going to go from the very simple OAMP image which could look to you very obvious but there are countries in the world that they don't know exactly what is that and they are now doing these portals and they're harvesting and they need to know also this and we go down to this OAMP which is the frontier towards the semantic web which will come this new more sophisticated complex objects in the next part of the report Eloy and this is nice picture isn't it we signed a Memorandum of Understanding last I don't know Pablo November November, yeah very important because as I said we are only part of the infrastructure for research and the increase there is this investigation databases that we have in Iowa university and research institutions they give the contextual also information about our repository documents so I think this is going to be a very good partnership we will talk tomorrow about how we organize the collaboration but I think it's a very good news that the two communities get together and we have a we can offer the first of all a seamless workflow for our researchers they are very bored when they have to push buttons and upload things and we make it easier and we say don't worry you only have to go here and push the bottom and the rest don't worry we will do it for you so that will be that will be very good and then we also want to engage with the data community so we plan to go to Gothenburg and for the research data alliance and first plenary and we might participate in a working group we have to discuss that but we want data publication linking I think I believe everything is about linking in this world so we are going yes today I'm talking about the semantic so we will be there and we will discuss time so I'm finishing because I wanted to show you all the partnership we are open in core with different parts of the infrastructure it's also important as I told you I'm in the library and I am a repository manager so I'm a librarian and a repository manager at the same time and this is really giving us the librarians a new role in the university and I think it's it's also important for having an international dimension and I go there and I go there and this is from I go I finish so I invite you to become an active in the global community and thank you very much any question for


That title of my sermon today is The Father of Choice. So coming back to this, Matthew 1, 18 through 25. It says this. Now the birth of Jesus Christ happened this way. While his mother Mary was engaged to Joseph, but before they came together, she was found to be pregnant through the Holy Spirit. Because Joseph, her husband-to-be was a righteous man, and because he did not want to disgrace her, he intended to divorce her privately. And when he had contemplated this, an angel of the Lord appeared to him in a dream and said, Joseph, son of David, do not be afraid to take Mary as your wife because the child conceived in her is of the Holy Spirit.  This all happened so that what was spoken by the Lord through the prophet would be fulfilled. Look, the virgin will conceive and give birth to a son and they will name him Emmanuel, which means God with us. Verse 24, when Joseph awoke from sleep, he did what the angel of the Lord told him. He took his wife, but did not have marital relations with her until she gave birth to a son who he named Jesus. So we see here, Joseph, he's getting ready to get married to Mary. And he finds out in the process, uh-oh, she's pregnant. Now, I just want you to realize, Joseph here, he has a dilemma. Joseph has a dilemma because the woman that he is engaged to is having a son that is not his. He's got something that's happening in his life, a circumstance that is very difficult. Many of us here would see this as a crisis. I know I would if I was put into position and the woman that I thought I was gonna marry all of a sudden has a child or is having a child while I'm in the process of marrying her. And I know that child's not mine. That gets kind of difficult, would you agree? So he has a dilemma. And you know what's so interesting about Joseph is that in his dilemma, in his crisis, his responses are out of the ordinary. At least what we would see in today's society, his response is out of the ordinary. Because when it comes to betrothal, which is actually what this process is called, in Jewish custom, I know here in America we talk about engagement, but a betrothal is a much more serious contract than an engagement ring when it comes to getting married. A betrothal is like a 12 month contract that a couple goes into and the couple's parents are involved and it's a 12 month process to ensure that the woman is pure before getting into the relationship. 12 months, because at that point you're gonna know whether or not she has a baby. And so here in the process, he finds out, uh-oh, I have a crisis. And how many of you guys know that it's crisis that oftentimes really shows what our true character is? It's crisis that pulls out the real us. It's like when you put a tea bag into hot water, that's when the tea comes out. The real substance comes out. It's like when you squeeze a tube of toothpaste, the pressure causes the substance to come out. And we even know the Bible says it's not what goes into a man that defiles him, but it's what comes out of him. So here we're seeing a very unordinary response from Joseph. Pressure's on, crisis is at hand.  And this is what he does. It's so unexpected. In this development of his relationship, he has an unexpected thing. There's a child developing in his soon to be wife's stomach. And in this situation, this is what it says here in the scripture, because he was a righteous man, he did not want to disgrace her. He intended to divorce her privately. One of the things that we see when Joseph is in crisis, the way he responds is way better than I probably would have responded. I don't know about you. We see a man who's in control and control of himself. Now, if any of us would be in a situation, we find out we've been cheated on or we think we've been cheated on. Response is gonna be not nice. It's not gonna be good, but you see a man here who even in the midst of crisis, he has the capacity to contemplate. The scripture says this, that he contemplated how he was gonna do it. And he chose to do it privately. Now, you've got to understand in Jewish custom, if a woman is found to be unpure and she breaks the contract, you have the right in cultural custom, you have the right to stone her publicly, to make a disgrace of her. But in this moment, instead of doing that, even before he knew, because some of you are like, well, yeah, he knew it was the son of God. No, before he even had the dream, he already decided in his heart, I'm gonna do this privately. This is really difficult, it hurts, but I'm gonna do this so I don't disgrace her. For men, here today, there's a powerful lesson that we can learn. And I wanna encourage us because I believe there are men here today that have character. There are men here today that have substance. There are men here today who can be calm and collected and controlled when crisis hits. Another thing is this. We see that there was an uncharacteristic way of handling this because of the disgrace that could have came on Mary. He knows that if he would have done this publicly, that pretty much at that point, game over for Mary for the rest of her life. If he had chose not to take this child as his, pretty much for the rest of her life, she would not be able to get married. Nobody would wanna marry her. Nobody would wanna dare touch that situation because of Jewish culture. It's not like today where it's a lot more widely accepted. In Jewish culture, if you have a child and it's presumed to be out of wedlock, you're pretty much damaged goods. People are not gonna, people are not going to pay attention to you. She would be in poverty. She'd be in lack and she'd have no covering. So the decision that he makes, honestly, it takes a man who is secure. It takes a man who is so secure and who he is to be able to make a decision that is selfless even when this situation is against him. It feels against him. It is a direct pain to his heart. And we see another thing, an uncommon decision. Joseph, like I said, he had this right, but he was a righteous man. He chose compassion. He chose mercy over punishment.  We're all faced with dilemmas. Maybe it's not the same as the one that Joseph has, but we're all faced with dilemmas that are challenging and that they pull out our true substance. Every man has a good reason today, good reason to not do the right thing. But I know that today we have righteous men in this house this morning. There's a war on men in this generation. Society tells you to be weak. They tell you that good fathers don't exist anymore. Society tells us to be passive men and that Satan wants you to be tolerant of sin, to step away from the God-given role as a man.  And we have feminazi ideology that tells you to be a spineless, weak man. But what makes a man great, what makes a father great is his ability to take the higher ground in the face of adversity. Do you hear me this morning, church? I believe that God is looking for men. God is looking for fathers who will take the higher ground even when there's an easy way out. Even when the situations don't look right, I believe God made men tough. He made us tough in the capacity to make tough decisions. And this is why he's called us to be the priests of the home. It's not so we can lord our power over people, but the scripture says in Ephesians 5, 25 that we are to submit to one another in Christ, in reverence to Christ. So the man, he gives you the responsibility to be the priests of the home because you have the toughest decision to make, which is to be the first one to lead in submission. To be the first one to make a hard decision, even when dilemmas are at your door, when crisis is causing you to have to make decisions that are not favorable. Fathers, listen to me. Listen to my words. Christ entrusts you with some of the most difficult decisions that do not favor you. And it will be your honor to do it for his namesake. It will be your honor to do it for his namesake. We have been given tough decisions. Men have tough decisions to make, but we won't care what culture says.  We won't care because we will do what is right for our families, even if culture ostracizes us. Amen. We have a dilemma, but God is looking for the father of choice. God has chosen you today. You may feel like an ordinary man.   Maybe today you feel ordinary. Maybe today you don't feel qualified, but let me tell you something. You are not a father by accident. God has deemed you worthy. God has deemed you trustworthy. Oh, come on. That is good news. God, fathers, God has deemed you worthy to be able to make tough decisions. Society will tell you, oh yeah, that's tough. There's a lot of things that, you know what? You know what is all of this whole thing is just too difficult. Right now, life is difficult. Situations are difficult. You know, economy and things like this. It's just really hard to be a dad in today's society. Nobody really cares about dads anymore. And so it's really easy to just kinda brush it off, but no, even if the world looks down upon fathers, we live in a fatherless generation. And so the view of fathers is very low. The view of fathers is very skewed.  My question this morning is what is your dilemma?  Not when everything's going smooth, because when everything's going smooth, it's really good to do all the right things. But when things are not going well, what kind of character is being pushed out of you? What's being revealed? And I wanna encourage you, make tough decisions. Make tough decisions for your family. Do the right thing. Be strong. Be compassionate. Choose mercy over punishment. Choose compassion. Choose to take on burdens that maybe nobody would get on your case if you didn't. But be the kind of man that has integrity that will take on burdens, that will take on challenges that are tough. Amen. Not only did Joseph have a dilemma, but we see in the verses after that, he has a dream. And this dream of his, I'm gonna read to you again, verses 20 through 23. When he had contemplated this, an angel of the Lord appeared to him in a dream.   All this has happened so that what was spoken of the Lord through the prophet would be fulfilled. And look, the virgin will conceive and give birth to a son and they will name him Emmanuel, which means God with us. You know, this dream that Joseph had it answered two questions. The first one being whose child is this? And the second, who is this child? Whose child is this? And the second question, who is this child? You know, when it comes to being a father, I think there's some big lessons that we can even learn. And I just wanna encourage you with this thought.  God wants to give you a dream. Now, oftentimes when we think about dreams, we're talking about the dream that I have. See, a man can have a dream for his life, but it takes a father to have a dream for his children. Did you hear me this morning? It's not enough just for a man to have a dream for his own aspirations, but what makes a father is a man who can have a dream for somebody else. And I wanna read to you this. I wanna come back to this scripture here. He begins to realize, this is a child of God. Fathers, I wanna remind you that your children, while they might be your children, maybe physically they're your children, maybe adopted they are children, but ultimately they are children of God. And your job as a father is to steward that relationship. You know, it makes a whole big difference. It's a whole different perspective when you father not as this is my son, but when you father as this is God's son. There's a whole different level of responsibility that you're willing to take. There's a whole different motivation by what you do because this is not my child. It might be mine physically, but this is God's son. This is God's daughter. It's my job to take care of them. It's my job to steward them well, to train them in the ways of the Lord. It's my job. God will hold me accountable for how I raised my children. I wanna encourage you fathers that you are stewards. You are stewards of God's children. You have a responsibility. God has deemed you worthy of the responsibility. And second is who is this child? God revealed to him in a dream through an angel of the Lord that this is the son of God. This is Emmanuel. This is Jesus. Jehovah our salvation, Jesus. The name Jesus means Jehovah is our salvation. This is the Messiah that has been prophesied about. And it becomes clear to Joseph that this is no ordinary child. This is not just anybody. This is a child with a purpose. This is a child with a vision. This is a child who has a destiny. And God didn't tell Mary to name the child.  Which means Jehovah is salvation. I think there's an important truth there that we can pull from. That as a father, we have the responsibility to see and dream for our children. To have a dream for our children. To begin to see for them the destiny and call forth greatness out of them. God has given us children and these children have purpose. They have destiny designed by God. And it's our responsibility to call it forth as a father. Even psychiatrists have recognized that a father plays the primary role and whether or not a child feels loved. The deep questions of the soul. A father answers this question for a child. Am I loved? Am I worthy? Am I desirable? Do I have purpose? Is my life meaningful? Psychiatrists have figured it out that a father plays the primary role. And this is why we see in today's society such a huge issue with identity. I don't know if I'm a man or a woman because we have children who were not told who they are. They have children who grew up without having a reality that I'm loved. That I have purpose, that I have meaning, that this is who you are. And so we have people who are looking for love in all the wrong places. We have people who are confused about who they are. And what their purpose is. God is calling us forward as dads. We have a great responsibility. I hope this is encouraging to you because I know there are righteous men in this room who make tough decisions and who are good fathers. And we are gonna stand up and we're gonna pull out greatness in our children.   I've made a habit of this because I understand this principle that it's my job as the father to call forth greatness. Every night before bread, every single night.  I'm starting at young. I tell my daughter Mila, every night before she goes to bed you're a prophetess to your generation. I tell her every night before you go to bed you're going to bring healing and hope to many people.     You will hold justice and mercy in your hands. I speak this over my children because I understand the principle that I have as a father to speak identity, to speak truth over my children. It's my responsibility. It's your responsibility fathers to be that voice in a world that is screaming all sorts of confusion and chaos to be the voice of truth, the voice of identity. Fathers, you have a hard, you have a hard job because people don't recognize you. Same way with Joseph, you know, people rarely even recognize Joseph in this story. It's always about Mary and about Jesus. Everybody forgets about Joseph, you know? And how true is that about the good fathers? We only hear about the bad dads. We only hear about the fathers that were abusive. We only hear about the fathers that are jerks. But us good dads, nobody pays attention. It's like we get overlooked, we get forgotten.  Yeah, thanks, thanks, you know? And what we do is not even appreciated to the fullest in all the dads said, amen. But that's okay because we know our task. We know our responsibility. We know that God has entrusted us with a great task. So are you calling forth greatness? And thirdly, Joseph had decisions that he made. I want us to look, not only did he have a dream, but at the end of this dream, Joseph made decisions that were honorable. Things that he set for by example, even before Jesus could see it, he was already setting an example. First thing was obedience to the Lord. We see that Joseph was obedient. He heard the vision, he heard the message from the angel of the Lord and he was obedient to it. It says that he did take her as a wife, even though taking her as a wife was going to be at his own detriment. For the rest of his life, he was gonna be kind of recognized as maybe someone who got his wife pregnant before marriage. Because people are, because he chose to protect Mary, it meant that now the shame is gonna be pointed at him because people aren't gonna understand. People aren't gonna know. He chose to protect her knowing that it would come on him. And he was obedient. He was obedient to do so. John 14, 15 says if you love me, obey my commandments. And God is not looking for just a sacrifice. He's looking for obedience for Samuel 15, 22. When we are obedient, we're sending an example. Fathers, are we being obedient to the Lord? To be a true father, to be a father of choice. Again, like I said, Joseph is a great example. He was a father of choice for Jesus. Are we obedient to the Lord? Are we showing obedience to our kids? See obedience in us. Not just to the law, but also to the Lord. And we also see in Joseph, another great characteristic, another great decision, delayed gratification. You may have not really realized this, but it says this, that he waited until Jesus was born to have marital relations with his wife. Now imagine this, you get married, and you wait a whole year to make things happen. That's okay, you can laugh. You wait a whole year to make things happen. That takes a lot of discipline, especially when it was his right. But he delayed gratification because think about the ramifications. You might be brushing past this, but think about the ramifications. If he would have had marital relations with his spouse too early, it would have destroyed the testimony that this is a miraculous birth. He had a vision and he had a mission. And in that vision and mission, there was delayed gratification on his part. Not only did the plan not favor him, but there was delayed gratification. Men, how often are we delaying our gratification? Are we putting our golf clubs up so that way we can be with the family, spend time with our kids, sow the right seeds, speak the right words? Are we taking the time to be with our kids? Are we delaying certain gratifications so that way we can be the foes that we need to be? Another thing is we see he exercised faith and courage. The one of the things that the angel of the Lord used to convince Joseph was he used prophecy. He said, this is what the prophet said.  If Joseph didn't know prophecy, if he didn't know the scripture, then it would have been really hard to do what God had asked him to do. It would have been really hard to have the faith that this is truly the son of God. Do you follow me this morning? As men, we can't just be men who are obedient, we can't just be men who do tough things, but we have to be men who do tough things by faith. Because doing things tough alone will just burn you out. It's the reason why you don't like doing tough things because it burns you out.  It gives you the faith and the courage to do the things that nobody else wants to do. And so he had faith and he had courage. And the faith and the word are connected. Hearing comes by the word of God, right? Faith comes by hearing and hearing by the word of God. If Joseph, I believe that if Joseph didn't know prophecy, it would have been potentially a different story. And lastly, he was a man of worship. Luke 2-41 through 42 says every year, Jesus' parents went to Jerusalem for the Passover festival. And when Jesus was 12 years old, they attended the festival as usual. Catch that, as usual. Every year they went as usual. It's obvious in Joseph's life that he was a regular attender. He was a regular attender of church or of he was a regular worshiper of God. It was part of his life. It was as usual. It wasn't just like some one big, you know, time of year, oh, it's Christmas and Easter service so I gotta go to church. No, as usual, he was there. And imagine what that did for Jesus. Imagine just the example that Jesus got to see, a man worshipping God. Now we know Jesus is God and you know there's a little bit of a different story there but it's still the same principle. We still see a man who is raising his children, worshiping God, leading by example. I wanna read to you this little story. Did you hear about the little boy who was playing on a Sunday morning while his dad was in the lounge chair reading the paper? Son, get yourself ready for church. Are you coming to church today with me, dad? No, I'm not coming but I want you to hurry up and get ready. The little boy said, did you used to go to church when you were a boy, dad? And he replied, I most certainly did, so get ready. As the boy walked away, he mumbled, yeah, and I bet it won't do me any good either. It's true that our kids are watching us. It's true that our kids are paying attention to our actions, our examples. What happens when hard times hit, how do we respond? What comes out of us?   He has called you to stand up, to rise up in the face of adversity, even if it's at your detriment because you know why you're doing it.  You are doing it because you understand what the prophecy said. You understand what the scripture says. You understand what God has for you and you have faith believing in the work that you're doing as a father. A father is a selfless task. A father takes work. A father protects his family. A father works hard. And he does so because he understands this is not my son, this is God's son.  I'm gonna be the father of choice. Do we have any fathers here today that say I'm gonna be the father of choice? Thanks for watching this sermon. If this was a blessing to you, would you let me know in the comments below what stood out to you from this message? What are you taking home with you from this message? Also, if you enjoy these messages, would you help us and hit thumbs up to this video and subscribe to our channel so you can get new videos every single week delivered to you on your YouTube app. If you go to hungrygen.com forward slash sermons, you'll actually be able to download the transcript, the notes and the quotes of this sermon and the rest of all of our sermons free of charge. Until next time.


My name is Daniel Brulund. I come from Sweden. I'm really happy to be here in India. We're pleased with the food and meeting all of you funny and lovely people. I'm really enjoying my stay here, so Thank you very much for that. So that was the kind of nice start of this talk. Now we're gonna get to a bit more nasty part. And I would like you all to pair up with someone close to you. I'm gonna tell you a little bit later on about our horror story that led us to this discovery.  So pair up and take a few minutes to just tell the other guy about your worst experience, okay? Right? Please go ahead. Did you, did you get a feel for pain? Do you feel anything? Pain? No pain anymore. No pain anymore? Okay. Yeah, that's good. Ignorance is a... No, sorry. So I hope you all got in the mood. Now we're gonna try, now I'm gonna try to talk about change horror story. So we were about to, me and my colleague Ula, we were about to change codebase once. So we wanted to make a change to our system. So we did that change. We just implemented it naively. Okay? But what happened was that we got a few, you know, compilers, code rash, so on. So we thought that let's just fix those errors and we'll probably be done tomorrow or so. So we started patching those errors. But we got more errors, huh? See that before? Yeah. So I'm fine. Patching, just met the more errors. And when we tried to patch those errors, we got even more errors. And eventually we thought that, okay, but if we just do these things we'll be done and we can check things in and everything is fine. But when we had like, when we had like 200 errors that we were just getting to and we were finished with those errors and we just pressed save and then, you know, we got a whole bunch more because the compiler could move one step ahead in compilation from the first one. And then we thought that this is not working. It was like trying to stop an atomic blast shockwave with our hands in the code. It was like, we just couldn't do it. So one morning we had said to the team that this is, just give us a few days and we'll fix this. And after two weeks of trying to stop people from checking in certain parts of the code that we were editing and just generally had mergers who hadn't been able to run the tests we had in two weeks and just a mess that we had to admit to the rest of the guys in the team. Sorry, guys. This is not leading anywhere. So we just had to revert everything, all of it. So that was kind of a defining moment, I think, in our careers. We realized that we could throw things away, actually. But, you know, we really needed to do that change. So we're thinking a little bit and we did the same change. And, of course, we got the same errors, right? So one definition of madness is trying the same thing twice, you know, and existing different results. So this might seem a bit stupid, but we figured that if we just note a prerequisite for this change that we had, so that if we did this change, but we had done this one before, then these errors wouldn't occur, right? So if we just would have that done before, we wouldn't have those problems. So we went on and we did write down a prerequisite for each of these groups of errors because there's usually groups of errors referencing the same kind of problem, right? Can you give an example of three prerequisites used in this context? Let's say that a class is in the wrong package because you're changing, you want to maybe break out the part of the code that is used in several places. But when you do that, you have, like, different kind of dependencies. So you need to break out maybe a circular dependency that's within a package or within the same project is not a problem, but when you break it apart, it doesn't comply. So that's one kind of prerequisite for this. So, and after this, okay, we reverted again. So we threw away the things that we did, the code that we had written to get the errors, but we kept the notes of what we had done, okay? And then we tried for each of these prerequisites to implement them. So we formulated, I mean, something that we would do in the code. So now this was our goal, this one. So we tried to implement that part naively once again. And we got some new errors, right, because this was a messy system, okay? But we did the same thing there. We just noted the prerequisites for those errors, okay? And then we reverted. So we went on like this, picking the next leaf and so on, because these are, if you see this as a graph, these are leaves and graphs, right? So we went on picking leaves to do here. And eventually we could do one of these prerequisites without getting any errors, okay? So we did that, and if this change made sense to us, we could check it into the version system, commit it, okay? And we went on with the leaves. And when we had done the leaves for one prerequisite, we could do that one, right? No problem, because we had fixed everything that we needed to do before we could do that, okay? So we just went on with all the leaves, working our way back into the original change. And after a while, we had done all the prerequisites for our original change. And at that time, it was actually pretty simple to do the thing that we wanted to do. But we had to set up the system for that change to be possible. And at this time, we were done with that part. But then there was a lot of mess, but let's not talk about that right now, okay? We went on with this kind of approach, fixing more things in the system. But this part was done. And we did it by just trying to find the prerequisites of the thing that we wanted to do, so that the thing we wanted to do was really easy and we would get all that in place. Right. So if we tried to find some things, some rules about this, that would be right down the goal. We did right down the goal, because doing so, it got much clearer what we wanted to do. And it was much easier to stay focused on the thing that we wanted to achieve. I mean, in a legacy code base, there's so many things that you want to fix, right? Some parts of the code that you really, really, really hate, and you want to do something about it. But to avoid getting lost, you write down the goal all the time. Both for the original goal and for the prerequisites. The definition of legacy code will be good here. In my opinion, legacy code is a coval veteran code. My friend there, I don't think it's in the last six months, it is a legacy code. Yeah. Okay. I think my definition of legacy code is things that you check into the versioning system. So I think that's... Michael Cutler says any code that doesn't have good unit tests? Yeah, that's not a definition. So you could use any code that doesn't have unit tests could be legacy code. That's not a good definition, I think. So code you're afraid to touch could be another definition. So, yeah. But anyway, so you write down the goal. You try things in the system, naively. Be naive. Don't try to, like, figure out what every change is going to lead to. Just do the thing that you need to do, okay? And an extremely important thing that Venkat talked about yesterday. Revert both broken code, okay? That's extremely important.  Most of working with code is about learning.  So you learn things, and it's not the code you wrote. It's not everything that you did, okay? And the fourth one is fix the prerequisites recursively. Try to find the leaves in the graph. Work your way. First out, to build up the graph, and then you work your way in back to the original. Others, you just have patience and let them work in getting the prerequisites right. Most of the times, the leadership wants, I want this fix out to the pessimist in a month's time. Yeah. So you go on to that question, and we can talk about that a little bit later on, because that's a huge issue, I think. So we'll try to get to that if we have time. Otherwise, I'll be available after the session or grab me during the day, or so I'll be happy to talk about it. It's a big issue, I think. And I don't think it takes months to do just enough to get what you need. No, that's another thing. I've done this for big things, and working structurally, you can do things within days that you thought would take maybe weeks or months. So it's really helping you stay focused and just do the things that you need to do. Definitely. Thank you. Some of the benefits that we have seen by doing this, since you're doing the small changes, the leaves things, which is another thing that Venkat mentioned yesterday. Just do small things. These are usually simple things. You just move one method or you move one class. It doesn't have any, give you any problems. You just move it to another project or whatever. Since you're doing such small changes, you can always check your code in. It's always in a working state. And you can stay on the main branch, which I really recommend if you're going to do refactoring work. Don't branch out. You stay on one branch and everybody work in that branch. So you're always deliverable by doing so. You have a goal focus. You're really clear goal focus. You only do the things that you need to get your task done. You get a visual... I always have a problem with this word. You have a visualization of what you do. It's like a memo for yourself for the next day, for after lunch, after the weekend, after your vacation, or so on. And you can also cooperate on doing these things with somebody else on the team or the whole team together. So it's easier to pick someone's brain on this if they actually did this kind of graph. So it's really good for this. Called the Mikado method. Maybe I didn't mention that, but we call this the Mikado method. And the reason... Have you seen this game before? It's sometimes called pickup sticks. So you have some sticks like this and you put them on a table. How many have seen this kind of game before? How good? So you have the sticks and you put them on a table and then you just drop them. And usually they fall in a kind of heap of some kind. And if you pick one of the sticks, you're supposed to pick up the sticks and the more sticks you pick, the more points you score. But you're not allowed to... If another stick moves when you pick up the stick, the turn goes to the next guy. So it's easier to pick up the sticks that are on top of the pile than the ones that are below a lot of other sticks. Because if you do that, all the other sticks will fly and you have to pass the turn to the next guy. It's a little bit the same when you change code. Like we did, we just did the original change, trying to pull that out of... And we got a lot of errors, just like the sticks flying around. But if you pick the sticks from the top of the heap all the time, the other sticks don't move and eventually you will get to the bottom stick, which is often a higher scoring stick since you form the sticks in a particular way when you drop them. So it's kind of the same with this method. The difference is that the pile of sticks in software is huge. You have to just go for one of the sticks and say, this is our goal. We're going to get this stick and when we get that one, we're down with this one. And then you pick the sticks above it and then there's probably a heap below it as well. So that's the background of the name to remember how to go about with the change in code. Alright, so anybody want to see some code? So this was just a lot of background and kind of theory or process about how we do this. So let's try to do an example. Are you passing around the USB sticks? There are some USB sticks with code and the presentation and our book on this. So I recommend you get the code folder, the Eclipse version if you need it, and the PDFs that are on there in the root. So those are three things. Yes, let's do an example. Welcome to Pasta Incorporated, a software company that has a product called Master Crypt that's a really, really, really secret algorithm for doing kind of encryption stuff. Right? So remember this and I'll switch to the development environment. Just hold on a second. Thank you. Here we have the application. We have an acceptance test for it just to see that it's still working for the example. Often when you work with legacy code you don't have maybe that much test depending on which definition of legacy code you're using. When we first did this we actually had not an extensive acceptance test suite but we had some tests that could support us but we relied a lot on the compiler. We relied a lot on automated refactorings. So let's look a bit at the code. This is exactly the same code that's in the Java version of the example that you're going to do later. So we have the test here and as you can see we have some kind of UI here and the UI has a method called LeetMessage. So what it does, this is the secret algorithm that they have. So they replace all the lowercase ease with threes, right? So that's the algorithm. It's a really, really secure one as you all understand I guess. Okay, so let's look at the coder. Let's see LeetMessage. Let's go into that, see what that does. All right, so I can draw this here if you like. So we have the acceptance test and the acceptance test is using the UI, right? So we have a UI class here as well. Can you see this one? Enough of you can see this one. Oops, let's not tear down the interiors here. So we have the UI here and the LeetMessage that we use. So what it does is it takes the unencrypted, unleeded string and it calls application and tells application to Leet this message for us. Okay, so it sends in the string and it also sends an instance of itself, okay? And then it returns Leet and the Leet. But what happens here in the Leet method? Let's see here, we're passing ourselves to this one. So the UI uses application, okay? So we have application here, application. So the UI uses the application. But here we have the application. It's using the UI, right? Does it look like it? So the application is using the UI. I can spot some problems here. I will probably get to that later. Okay, so the application sets, it calls UI back, the thing that we passed into the class, the callback, so to speak. And it calls setLeet and it also calls Leet this string, all right? So we have a leader here and the application uses that one. Right, we can go into the leader as well to just look at it. And it just does the replace on the string, okay? So this is the code. It's like five lines of code, right? How big a mess can that be? Well, we'll soon find out, shall we? So now, back to the path they incorporated. One day sales come into the development hall and they say, you guys, we just sold this application to a new client. Isn't that great? And all the developers go, you did what? We sold it to a new client. That's great. And the developers go, but you told us we would never have another client than the one we have. So the client they have is called Gargantua Inc., okay? And the new client is called Stranger Eons.  So what we're going to try to do here is see if we can... So the goal here is to make a new deliverable for Stranger Eons, okay? Of the system, a new deliverable. So it's going to be a new application, basically, for them. But they cannot share any of the code between those two clients because that would really be a bad thing, okay? So how should we go about this? I suggest that we write down our goal, okay? So we want to have a new deliverable. If you can't read in the back, it's in the PDF. This is chapter two in the Mikado method book that you got in the PDF, among the PDFs. I hope you can remember what I'm saying while I'm writing this here. Otherwise, when you do the example, you can come here and have a look. But we want to have a new deliverable for Stranger Eons. Stranger Eons, like that. We usually draw two lines around the original goal because sometimes these graphs can grow and it's easier to find the original goal if you just put two lines around the original goal, okay? So what does that mean in this world? Well, it means we need to have a new project for Stranger Eons. So we do a little bit of analysis here just to get started. But this one requires us a new project for Stranger Eons, like this. And then we draw an arrow from this one to this one because this one depends on that one, all right? So we need a new project. And since we in this case already have an acceptance test, we want to write a new acceptance test for the new application as well, okay? So we do a little bit of TDD here. So we need to write acceptance test for, I guess write SE for Stranger Eons here, okay? And we can write that test before we have the new project for Stranger Eons, right? So I draw an arrow here as well. Okay, so now we got some stuff we would like to do here, okay? It shuts down. Yeah, it doesn't give me power for again. So let's see here what we're going to do. We're going to make a new project for Stranger Eons, right? I have a template project here that I just used to copy so I don't have to set up test folders and stuff like that. So I copy this and I create a Stranger Eons project, right? And we got the main stuff here. So I'll write the test here as well. So Stranger Eons acceptance test. Okay, I'll put it in the Stranger Eons package. Like that. Okay, so we're going to accept those tests here. So I'll just write a test for that. Test Stranger Eons leading. Naming things is not really what I'm good at. So I'll just assert equals. So we're going to have something pretty much like the other test we had. We want to have leaded and their algorithm, their very secret algorithm is that they replace all the capital S with fives. So this is the information that cannot be shared between the two clients, okay? So we're going to have the UI have the lead message method. So pass in secret like that. And then the result should be 5e correct like that. Okay, UI. So I'll just create a local variable UI and I'll change that to UI. And then new UI. So, okay, I get read here. This is interesting. Okay, so I need a UI here in the new project, right? But the UI is up here in the mastercript project. It's there, right? And I can't let the new project reference the old project because then I would have to deliver everything with the new project. And that means I would share this information between the two clients. I have kind of a constrain here. All right, so what do I do about this? I can't go on, right? So what I need to do here is I need to extract the UI code to a new project. Or I can make a lot of decisions here on how to go about. But I'll just naively think that, okay, I want to move the UI stuff to a separate project. Okay, so I want to put UI code in new project like that. Okay, and it was that one that was causing our problems, right? So we wanted to get this one done before we do this acceptance test, right? Okay, so in order to put the UI code in a new project, we need to create a new project, right? So we need to create UI project to do this. And we need to move the code, move UI code to new project. And in order to do that, we need to have the project created already, okay? So now we have a code rash, right? It doesn't compile. But we have some new stuff that we want to do. So what I do now is I will just delete this. You can revert in your versioning system if you have one. But I'll just do everything now in the IDE, okay? So I'll just delete this code that I just wrote.  Yes, I really want to delete the code, okay? I want to have a clean state when I go on. Right, so we're back where we started, right? Are we? Really? Yeah. We have information, right? We're not back where we started. We'll learn something about the system. So let's see here what we're going to do next, okay? Next thing we're going to do is going to run the acceptance test just to show you that it still works, okay? So everything still works the way it was supposed to do anyway. So the next leaf in this graph is to create a UI project. After that, we can move the UI code to this new project, right? So I'll just create a new project here, UI project. As I said, naming isn't my cup of tea. I hope spelling is so far, so good. So we got a UI project here, okay? So that one is done. Now we want to move the UI code to this new project. So let's just move this code to the new project. Oops, red. Code rash. Can you see that here? Okay, good. There's a lot of red. Part of that is because we haven't had the mastercript project reference the new UI project that we just created. So I'll just add that to the dependencies here, okay? Now we got a few less problems. But if we go into this, the UI code here in the UI project, we can see that the application is needed in the UI project, right? So we need, the UI needs the application. Okay, but the application also needs the UI. So this is a problem that we have to solve, right? So what do we do now? You think, I think we're going to try to resolve this circular dependency. Resolve, search, dependency. So in order to move the UI code to the new project, we need to resolve this circular dependency, okay? There's a lot of ways to do that. I prefer to just shoot in an interface somewhere within this code to just reverse the dependency arrows in that part of the code, okay? So what I would do here is I would extract an application interface to do this, all right? So I want to extract application interface here. But there's also this application here. It's being created in the project. So I also need to inject this dependency in the UI here, okay? Otherwise I would just create an interface without really breaking all the dependencies. So I have to inject app interface in UI, all right? And to resolve the circular dependency, I need to do both, but I cannot inject the application interface in the UI before I actually have the interface, right? All right. So what do you think we do now? But the code is red. Should we really extract it now? Should we do something first? Revert. Yes. Thank you. So we revert the code. And this time I'll do this manually. You would use a versioning system if you would work with this, okay? So I need to remove the dependency on the UI project and I will delete the UI project, right? So try the acceptance test and it's still working. Okay, good. So we're back where we started, right? No, that's the right answer. We know a lot of stuff about the system and how it is structured and what dependencies we have and what the things start up we need to do. So the next leaf in this graph, can you tell me which one it is? Extract application interface. Thank you. So let's do that one and see if we have any luck. You can almost figure it out by my disposition here of the paper, right? But we'll extract an interface and that's a refactoring in the IDE. I prefer to use that. You can do it manually as well. If you use something like Emacs or Vim or some of the other, application interface, as I said, naming isn't my thing, right? We want to extract the interface and put the elite method on the interface. There's not much to choose from here, right? In reality, you probably have to choose from a long list of methods, which one you should extract, okay? So I'll extract that one. I got a new class here, application interface, which is pretty simple, okay? Now I have to go to the UI. That one is done, right? We could check in here, right? This would be an opportunity to check in because we can run the acceptance test and see. If we would use a distributed versioning system, we would probably check in right now. So it still works, great. But we have like a kind of pending state here, so we would like to do this. We would like to finish this. So what we're going to do now is we're going to use injection. So we inject the application instance into the UI, okay? So if we do that by creating a default constructor and inject it there, so for that one, I want to change the method signature. So I want to add application interface. And here we have the opportunity to choose a default value that will put in every place where the default constructor is called. And I choose to create a new application. So we're basically pushing the instantiation of this application from inside this class to everywhere where the constructor is called by doing so. In this case, it's probably two places, I think, in the code, so it's not that many. But it could be like 100 or 500 places in your code. So this is a nice refactoring. So I do that. I get the application here. But I still need to replace it there, right? So what I do is I initiate this.application. I set to application like that. And then I can remove this instantiation up here. Okay. I'll save that. Everything compiles. I run the tests. And we hope that it works. I do. Oh, it worked. Great. So what did we do now? We extracted the application interface. We injected the interface. So we resolved the circular dependency. Okay? Because the UI is only using the application interface. And the application is using the application interface. So we reversed the... We broke the dependency circle. So since it's compiling, tests are working. This is something that makes sense. We could check this in. And we can check it off here in our graph. Okay? We're done with those ones. Right. So this is good. We're actually getting somewhere now, right? It's not like we're just trying things and have to throw everything away. So the next step here, we want to create the UI project, right? The next leaf. Because we've done these things. So this is not a problem anymore. So now the next one is this one. Okay? So we want to create the UI project. And after that, we want to move the UI code to the new project. So this time we'll add the UI project beforehand. Because it's nice to move code without potentially getting any errors if we're lucky, right? So now we get that dependency. And now the application interface is actually a part of the UI code. Okay? So we're going to move both of those to the new project. And ta-da. No errors, right? Amazing. Let's try and run the test. See if that works. Amazing. The test works. It makes sense, right? We have broken out the UI code to the new project. We created the project. We moved the UI code. So we put the UI code in the new project. So I call this kind of decision node. This one is also decision node. We choose which way we want to go, but we're not detailing how we're going to do it. We do that later. We want a leaded secret, but it got leaded now. If you can read that, I'm not sure if you can read it in the back. But it says leaded secret, this is expected, and we got leaded now. But that's not that strange because we didn't actually implement the Stringer-Eons application here. So we'll just do that by... In the other code we had a leader, but in this code we'll just simplify things a little bit and we'll just do that right here. Because sometimes when you're doing this kind of refactoring, you realize that the code you have is really much more complicated than it needs to be. So in this case we do a little simplification here. So we replace all the capital S with a file. Let's save this and let's run this last test. It worked. Thank you. Question? I wonder since you put that into the unit test drive... I could probably have done that. I've been in applications where it's such a mess that it's hard to unit test and it's even hard to acceptance test it. So we would just have had to go on even without doing these things because the changes that we needed to do were so... they were, you know, touching so much of the code. But we did that with automated refactoring support so that kind of helped us feeling secure about what we did. In this case I have a test for it that is just to prove that the application still works. But I've done this without having tests and without writing tests on a large scale just because we had to do changes to the code before we even could do unit testing. So definitely... Yeah, definitely. Because when we broke this dependency it would be much easier to actually do that kind of thing. You're definitely right. You should do unit testing of your code. Sometimes the scale you need to change things on makes it hard to do that within the time frame that you might have. But if you have the chance where it's applicable, do unit testing. Definitely. So this was the example. Right? More complicated than five lines of code. Yes. No, we're sorry. We have. It was... I find it successful. Some people say that, okay, so you get this much for five lines of code. How much is it for a thousand or a ten thousand or a hundred thousand or a million lines of code? It doesn't really grow with the scale of the code. It might grow with some kind of logarithmic of the code but not with the scale. So usually when we do this kind of extracting interface, in this case I changed one or two places. We could get like five hundred or a thousand source code files changed by just one of these changes. Okay, so it's on a larger scale. All right. Time flies when you're having fun. Now I hope that you're ready to try and do this. So how many people here have laptops with some kind of development environment on? Oh yeah, I passed around the eclipse. So how many people doesn't have a laptop? All right. So if you guys with a laptop could pair up or tree you up or quart it up with guys that have laptops. Okay. So I want you to try and do this by yourself drawing this kind of graph or this graph so you just get a feel of the mechanics and get the feel of getting the feedback from the errors that you have, okay? So I'll just... I can show you a little bit about... this is the stick that you had. On there is a... in the example folder, in the code folder there's a cut at Java and this is the code I used and you have to... there's setup for eclipse so if you import those two projects into eclipse you will hopefully have the same setup that I did in my example, okay? If you don't know how to do it raise your hand and I can help you or I hope that maybe some of your friends can help you if there's a lot of problems. All right. So that said, I'm gonna show you a page where you can get the code if you don't have it and get some instructions some easy instructions about it, okay? But please go on and don't just start if you know what you wanna do just please get started. In chapter two in the book this example is described, okay? So if you wanna see exactly the steps you can go into the book Mikado method book on the stick and just follow that example, okay? Please go ahead. All this code is available at github under Mikado method so if you wanna use github you can do it if you have a wifi there are some instructions about the code and everything up here but hopefully you'll define anyway, okay? Raise your hand if you have a problem or a question or anything and I'll try to walk around with you and see how it's going. So we try to give our view on refactoring especially when you do bigger factorings it's not a lot of the details, you know extract method, that kind of thing but just how to think when you're going about doing your factorings at large. So this is the book, this is me and this is Ola, the other guy writing the code. There are some URLs here for the book and for this Mikado method. You have our Twitter IDs here so if you wanna ping us or ask anything just do that. All right, so that said do you have any questions or statements or anything you wanna say about this exercise?


The traditional ruler of Abagana community, his royal Highness Chief Simon Ajo, has cried out to the government to rescue the community from Amd Bandit. Chavajo, whose son was killed alongside a family of six by the invaders, told our reporter that the attack was the fourth in recent times. Suspected Fulani Hetzman had attacked the Abagana community close to the IDP camp in Makodi at the Benu state capital living throughs of destructions and sorrow. Security personnel have since been drafted to the area to comb all the villages and bushes for more victims. The incident of yesterday is one too many. This is not the first time, a hard series of this incidents here. This is about the fourth one, where so many people were killed by suspected Fulani Hetzman. It occurred yesterday when the people were preparing to go to birth, destruct and started shooting and killing and memeing people around here. By the count, at the time where the scouting men came in, already nine dead bodies were covered, eight have been injured and taken to the hospital. This one that happened yesterday, you look at it, that what they are after is not even grazing their cows. There is no place they have not been grazing around here, they just came here yesterday to kill. Kill. We have no problem with them, no cowardice, nothing. Abagana, we have an IDP camp here in the Abagana here, so this is the second time. This is the first time they come and enter this site, asking us and we said that Fulani Hetzman Abagana killed my father. This is the wife who killed his wife, the wife who had died, trained at the hospital and the wife that had seen father with me, she died. This is the last time I am here, this is the last time I am here. All my family, my mother and my father died because of the murder. And then the rest of the time, we have to find them. Then we need to find them. We need to find them. We have to find them. They need to find them. This is the first time I see a young woman in my life. I think we must find them. Their parents are all grown up. We must tell them what we are doing. That's why we want to study. This is what I do.