This time, this is really bad. All right, so... I would appreciate if people can see that I'm not close to the client, because I have kind of a batch code for my client. And the batch code is... So, that's where I'll talk a lot and not see a lot of questions. So, before we start, for those who are kind of regular clients, we have obviously a lot of clients. I think... So... Can you see me? Huh? We have a... Are you getting this prepared? No, I'm not. Yeah. I'm old enough to give out power. Wait, you said you can give out marriage if you want to try to speak? No, I'm bad at it. Okay. Anyway. So, I'm... Hi everybody, I am Stanley. And I grew up here. Here in Singapore. I'm living here all the time. So, what I'm doing now, I have a small company called HotE. We do software development coaching and co-practices on companies. Companies who wants to improve their development practices, who wants to learn how to better solve problems, experimentation. That's what I do. And that's the gis of it. So, I have two personalities. One of me is HotE of me, which is I have a job, 200 jobs. And the other part of me is like Michael. I'm a volunteer in a community. What community? Agile community. And this Agile community has been running for about six years since 2010. It started much earlier, but anyway. We started the regular meet-up since 2010. And for the past six years, we hold three conferences. Last year was the one of three. One of the most unnotable conferences. We had 2013 conference, 14. And then 2016 conference. The purpose of the conference is to... I know many people have been reading about Agile development on books, but what if you can hear from the people who actually started it? So, with that in mind, we bring people who are originators of Agile development to Singapore to close up the knowledge gap. And we are very lucky that we are able to get money following last year. And there are many stories to how we get... It's not easy to get the funds. There are many stories to share. That would be another topic. So, from... I work in Audi for about six years already. Six, seven years. Before that, I'm mostly a Java.net developer. And I'm surprised to meet some of my ex-colleagues. My ex-companies are colleagues over here. And... What else? So, I've been mostly a full-time developer and then I decided to join a company that do co-training, public training, and on the people's side. I'm very interested in that aspect because the more involved I am in finding out how to develop software effects, I try to introduce to people and then I get why that doesn't work. No, no, we have all ways of working here. But that doesn't work with us. So, as a kind of a problem solver, I'm very curious to find out why. Why people seem to be resisting. And the more I find out, the more interesting it becomes. It goes into a system dynamics, into a system organization. And then I have an opportunity to join up in where I get to learn a lot from mentors to learn even deeper into organization. And here I am doing this. When I'm busy now, I'm helping a company creating a technical training program so I can take care of their developers to level up their technical skills. Code smells and refactoring is one small part of it and it's also a very core part of it. So... I've been in software development for 10 years now. And one of the challenges in software development that we trust me a lot and deeply is the challenge of software maintenance. What is that? After you develop software from a new green field project, you go very fast. Very fast, yes, you can do a lot. And as you do more and more, you find that it goes slower. There are more and more effects coming down.  So I've been to many companies and I've seen again and again developers spend more time on reading code trying to understand their writing code. If you are a customer, would you like to pay their reading code? Probably not. So to get a quick poll, how many of you spend more than 50% of the time or trying to understand a code before you can make a change? Yes, imagine you can use stats to lower that. I don't think you can prevent that from happening. But since 1990s, hands-back multipollers, here I've been introducing techniques and skills that can help to tackle that problem. And I'm very interested in that problem because in 2004, I bought a book, Michael Fedders. He wrote Working Effectively with Legacy Code. That book compared to, at that time it was Java 2. Java 2 or 1.5, I forgot. A spring framework book, version 2.0 at that time probably. After 10 years, that book by Michael Fedders, Working Effectively with Legacy Code, is still very useful. The book on technologies, it gets outdated. So I'm very interested in such practices, technical skills. I try to... So I try to find such technical courses in the past when I was still a developer, a full-time developer. I try to find such a course that I can learn a lot from. I couldn't find any. But very fortunately, I meet a lot of good people and then I learn from them to tackle this problem. I coach companies, I join teams, I experience how developers work. Often they have something to change. They make one step, and then make a change, and then suddenly they step on the mind. They run away. But instead of the mind, they took two steps back. And then they want to make a few more steps forward, and then another mind came. Someone steps back. It's hard to get to the destination when we are... I felt the atmosphere in that the team is like... they are working on a mind field. It's hard to do forward. And of course, from a business perspective, it is hard to understand as well. Usually they don't see that... that... It is harder for them to go deep into that part. How serious that could be. And... So... This is a big problem. I'm going to introduce just very briefly looking at system dynamics. And... there's something, a figure, a diagram I'm going to share is called Causional Diagram. It's a system thinking to see how things go. So this is a very quick introduction. You have two variables. One is your bank balance. And the other one is your earned interest. So these arrows are links. Links are... How do we read this? With a bank balance, the more bank balance you have, you increase interest, increase interest, you have more bank balance. This is a reinforcement. If you map it to a graph, the two variables go up. Can you imagine that? This is a reinforcing loop. There's a circle. So another scenario in a company where a feature velocity means at the speed of developing features, you go faster, you create more attacks. That's the... for certain companies. This is a simplified model of one of the companies that I have known. When they are pressured to go fast, they create more defects. Create more defects. Spare more time on defects. That will reduce the time. It will reduce the velocity. So this is called a balancing loop. If you draw out on a graph, it goes something like this. One goes up, the other goes down. Okay? This is just an introduction. I'm going to show very quickly the kind of... the kind of... the nature of software development we are in. And then what can you do to get out of that kind of vicious cycle? So a variable amount of backcode we have will increase the number of bugs. Agreed? More backcodes increase the number of bugs. The more bugs increase, you spend more time trying to fix the bugs. And then panic. Panic, what happens? You increase the packs. You open up your developer secret tool box. And then you do all the... quick hacks. Quick hacks introduce more backcode. So this is a reinforcement look. It will increase. And not only that, it could also affect the motivation of developers. It could reduce the motivation of developers. Reduce motivation of developers increased the amount of backcode. So you can spend all day to expand this even wider. To why developers are leave company sometimes. Because they are not motivated by the backcode and they don't know how to deal with it. So... Sorry, so motivation of developers will the last motivation they have will increase the amount of backcode. So what can we do? I'm going to introduce this term called code smells. Amount of code smells indicates backcode. It's a way to to sense. It's a signal that how bad is the code. Or how smell is the code. If we have that sense, that sensory it can help us to opens up the opportunity for refactoring. Refactoring means that we improve the design of the codes without affecting the behavior so that it is easy to change. So if we refactoring we can reduce the amount of backcode. So if the circle means there's an opposite direction we reduce the amount of backcode. So this is the nature of software development. James Greening two years ago came to Singapore and gave a talk at now he's given a talk. He used to be new. He gave a talk about why is he still a developer. In one of the topics he said that's no in software development you change something a customer asks you to change something. You change it and you bring to them and then you say thank you and they will ask you for more change. That's common. And he says that if you can't deal with change, you can't improve on how to change easily then you're probably in the wrong business. So in software development this is the nature. The question the big part of how to solve is how do we make it easy to change? So this builds up the motivation of why so why we want to increase software maintenance. What is code smell? Code smell is that's what it says although in fact this term is coined by back in 1990s and the story goes that at that time he just had the first child and then his grandma said that if your child smells it may not necessarily be a problem it indicates there's a problem. So then he was trying to he and my father has been talking about refactoring for quite some time and then they realized that hey how did they get to know those refactoring weights and how to improve the code they realized when they track back they realized there is something that triggers them to do those refactoring something is the signal it's the indicators and he coined it as code smell so it's a surface indication it does not mean it's that code but it may indicate a different problem there's a list of code smells there's a list of even more code smells which you probably may use this later and then when it's refactoring it is improving the design of the existing code without actually changing external behavior there are many refactoring methods like those that you see here and if you haven't know the book Martin follows I think it's 2001 sure it came out with a refactoring book it's all written in Java it is actually applicable for many languages and in the cover of it it actually indicates if you meet certain code smells what kind of refactoring can you do so it's actually quite systematic and what is it when do you refactor when there is a smell that's the most important part which many people doesn't know so then there's a lot of time if I don't stop at 8.45 please tell me because sometimes when I start to quote I may get possessed we are going to everyone comes from a different company I don't have I wish that I can come up with a quote where it is related to your work but if you do that together this is what I do when I'm in company I specifically smell the code and then pick up examples and do it but we look at that luxury so I kind of like inspired and created that exercise myself with lots of smells here for these we have to take a dating app a dating app okay let's see if they open source that okay so this quote here let me go through a quote here anyone seen this quote before has seen an email in a message that Michael sent okay that's a feedback that's a that is why I try to fit the quote within a screen so that you can understand it is very simple I have this diagram here we have an orders writer a class that accepts a domain object called order this order itself has many products what it's essentially trying to do is that this order writer is trying to convert this order with a JSON product into a JSON JSON string okay what you see here if that's in the back you can't see please move yourself forward you have the JSON object and you have the properties of the JSON you are already taking out the domain object orders data and product data and then put it I'm I can't stop being curious on that anyone have been through such quote before in your book this is much better than that before it already has string but they don't have string combination that's about it yeah I'm trying to optimize alright so this is right common what I see when I go to companies as well so we are going to our task until 8.45 is to remove as many smells as possible how to remove it by refactoring when we refactor we remove some smells we keep doing this again and again so this is where it requires some of your I will be your operator kind of like Siri and then I'll ask you what smells there are you tell me and then I will actually so although there is a contents it goes beyond that at the bottom is quite straight forward just try to close up the take away the common try to close up the curly braces you also have some methods like get size 4 and get color 4 these methods are already used in the get contents for JSON models so this class has three lines we are going to focus on the get contents because it has what smell long method so every time that you identify some smells I will unlock that so you remove those long methods ok what other smells can use in this code primitive obsession primitive obsession where are you going to give me your size size which line at the bottom at the bottom let's focus on this contents first on this screen first 11 to 9 what smells can you comment comments where no comment seriously this function seems not need for but also product I am going to go through very specific here because code smells are very very specific and it is quite close to being objective so let me go through comments comments is a smell when if there is a comment let me create a comment smell this is create a of order JSON string this comment is why because it tells you what the function does not why it is there so comments that describe what the code is doing is a smell because we can factor that out to express the intention of the code we will check that in that case that doesn't mean comments are bad what are good comments give me some examples the decisions you made why you want to use a certain construct and the description what is close both outcomes exactly I will get in the day excellent so comments that describes how this class is working with the other classes sometimes using this API that requires a number 3 the API doesn't have any documentation and then you can go through some comments that say that so to remove comments smell remove of course you may stop that you should do more refactoring the other comments what other smells can you use the magic number I think it is not magic there why is there a magic number line number 47 line number what line number 47 line number 55 why the subtraction of 2 so 2 doesn't really help the attention that's magic number great so I look at that I am going to run through a few smells first before I start refactoring what other smells there is another one very clear duplicate the code where same same number 47 can you tell me the words of the characters we don't have a pen yes exactly we have this you can highlight that and it tells you great what is another smell very prominent some things that we should use you said on the stream static twitter we should use I make products we should have we can use what which is that over here 3 2g 2g very variable better use the smell are very specific so someone said primitive What is primitive obsession? Where is primitive obsession? Currency. Currency suspensions. Currency suspensions. Currency can be one. What is another one? Very, very... Sorry? Size. Size. That's another one, which is very prominent. Long method. Yes, that's a nice smell. What about primitive obsession? The biggest one. It's right in front of you. Yes. One look second. This class is orders writer. In orders writer, there is a method called get contents. And this get contents tells how to... What is a data structure? It's used to accumulate the string. String user. String user is primitive obsession. It's a low level primitive data or structure that is used at a higher level abstraction method. So this is a smell. One of the most prominent smell. We will spend some time trying to remove that. Let's go. I need to make sure I don't get carried away. So I also do... We'll spend some time to remove some of the key, the very, very interesting smell. So let's tackle duplicated codes and primitive obsession in hand in hand. So what I mean by that? So let's try to tackle duplicated code and let's try to tackle duplicated code. Let's reduce the amount of duplicated code for now. So from right here, I can see that there are certain patterns in this code. Did you see that? I tried to make some space to it. There are certain patterns. What does this represent in JSON? Key and property. So the code doesn't say that. This is a JSON property. It says it has to be a pen, blah, blah, blah, blah. So I'm going to try to reduce the duplication and also to focus on a reduced duplication. One of the ways I'll do is... Because this thing, this is the value and this is kind of like a key. It's embedded inside an SPMN. What if I try to take that apart? Take that apart. Take that apart so that as be a pen, the way how it tries to a pen between this section and this section are exactly the same. When it's exactly the same, then we have removed some of the duplicated code. How do I do that? I'm going to introduce some data structure. I'm going to introduce a map. Very simple. Not trying to think too far. What is the smallest thing I can do that I can remove the duplicated code? So what I can think of is perhaps data and then call it hash map. Data I want to do a code, a key, a key call code and then a value, a value called product.getCode. So I have one property. And now, before that, please run a test. Before you do that in every factory. Test pass at the corner there. It's a bit small. I can bring this up. So before we have, just to prove to you we have a series of tests. The coverage is high. We can kind of like assure that functionally it doesn't break or if it breaks it tells us. Now we introduce this. We kind of duplicate even more code here because we duplicated a key here. So I'm going to attempt to kind of create the logic for this. I'm going to do a look to look through the dictionary. The map spent too much time on C shop. So a map and every job I apply about map for each. Is that a simple way? Map for each. Is it ready? So the data for each. Data for each. There you go. So this is a function inside. Is that right? You have to be a little bit careful. Hash map doesn't guarantee you the sequence and for each doesn't guarantee you the sequence either. So it might come out in a different sequence if that's a field break and voyages. But the for each look has the same problem. That is a kind of linked hash map. Okay. So great. So this will be my first time to try out this. Let's see what happens. So how come there is an embellishment error? So it's not expected. Two. Key value. Key. Key value. Yup. I think key is key. Put the pranks. Alright. So key common value. Like this. Oh yeah. Interesting. Okay. Yeah, I learned something new. Thank you. You're welcome. So for each we are going to do this a pen. One way I can think of is doing a format. And then we have this kind of a quote. This one quote. Maybe I use like this. And then we have, because it is extreme, so we need another quote. Okay. I'm trying to be very, very careful here. It is common space. Common space, yes, that's right. Let me put it below. Okay. So common and space. Wow, this looks long. Cool. Let's run the tests. Okay, good. Test pass, this becomes a big quote. Let's remove that. Alright. So then follow on next week. No, we haven't really removed duplicated quote. We just did one of the instance. Let's try to put a color. Put color. Right. And then command this out to run the tests. Still pass. Let's try size. Will size be the same? I'm going to duplicate this. There's a command shield up to move the lines. And then data.coot. We have size, comma. We have size for product. Command this out, run the tests. Still pass. Remove the quotes. Now we get price. Price is a bit special. Why? It's actually a double. So double doesn't have any double quotes. How can we do this in small steps without breaking the code for too long? No, I can actually do this. Data.coot. And then what is the price? Product get price. And of course it will complain. Maybe I'll do it. To string but it doesn't do to string. Let me just hack a bit. Because we're not going to really use that. So it will not work. So the code currently, the code currently in this form does not allow double. It's not specific to double yet. What can we do? Command this out. So this should be the one. Run the tests. We are still green. So one of the ways is that before you do this, make your quote a little bit more general. A little bit more general. How do you do that? We can do a simple one. We can do this. An instance of if it's a double. Then our pen. How come? In order not to change too much. So I should actually change this to object first. I changed this object. This is excellent. Much better than before. So value dot is instance of double. Then I do... So if it's double, I would not use the double code. Run the tests. Still pass. Uncomment. Run the tests. Fail. Why? You didn't comment. You didn't comment. 45. Oh, okay. Thank you. This is the reason why more than one pair of eyes is good. All right. So the last bit. Currency. Data dot puts. Currency. Common product dots. Yeah. Currency. I have one question. When you changed. So first the price in JSON was represented as numbers. No developers. So you moved it into the back. And then you ran the test. And the tests were not finished. But then you changed it and it else and removed the worker. So it means that you introduced the change. That you knew that's what you did in the first place was wrong. But the test was still passing. And here in return to me, what I will do is also maybe write a new test. Or I can read the other way around, which is to really fill the test. And then write this new statement to pass it. Good catch. Now we fail. Why? Because the comma is correct. Because of the comma. So before it is this, going back to the green, this is tricky. So let me try to split it away this. So that it is... Let's see. It's tricky. It wants to... So now I undo. It will still fail. It will still fail. Why? Because it still depends on the comma. So one way... There are many ways of doing it. I will do one of the ways to kind of introduce a bit more magic. If there are better ways, you can do that. So take a look at the code now.    And we have the logic over here. We split this consensus. We separate the concepts of data away from the building of JSON. The logic of JSON. So we split them apart. We're not really splitting up the parts yet because this one, that basis is still out there. So I like to localize it. Shift command down. So that everything about JSON is over here. This is a technical recording software. Bring close to where it has been used. I like to pause here for a while and see what we have done. What smells we have unlocked? What other smells we have unlocked? You can do that. Now we talk about that. We are trying to get away. So it's still there. And the number is still there. Let us take code. What else? Change the code. It's gone. It's gone. It's dead. What are we trying to do? We try to replace something with that. We're going to continue. So we split away the two of the consents. And now this concept seems to be pretty generic to build a JSON object. This part seems to be something about properties. What if we do a small step by data4h? We're trying to do this for properties. In IntelliJ, you can use a control T and then a struct method. What if we call it JSONPROP? I don't really like to pass in string buffer and let it accumulate and pass by reference like this. I like it to be immutable. So how can I do that? Let me run the task first. Let's do not append. I append the JSON properties. I remove away the parameter. This will make JSON properties unhappy. So I'm going to make it even more unhappy. And then I'm going inside. Now compiler tells me where to change. So from here it became clear. I'm going to do kind of a small step first. String buffer. So this is the quickest way to make the compiler happy. And then I return sd. to string. This will make that unhappy and then I pass in change to return parameter. So this way run the task. It produces JSON properties. And of course I'm pretty sure some of you would have known a better algorithm to represent this. What is that? Use Jackson? Oh, okay. Thanks for reminding me. For this exercise, assume that you can't use any of the party I use. Otherwise, no more fun. I know you can use that. Thanks for reminding me that. So other than Jackson, what else? I think it still stinks. The right end needs to know exactly what properties are there. So I rather would delegate the, like I say, give me a list of your properties to the respective object and then just give me a map back if you want to use a map. And then let you write out. And then I add a description property to my product and my code close or doesn't return a proper result. And then I need to have two places in my application, one in the writer, one in the data object that I need to update. So the data object should know what it needs to hand over to the writer. Okay. How do we get that in small steps? That is what we're talking about. Making small steps. So I just, as you were saying, lambda. So I know another way. Kind of like to make this a bit more simpler for now. So if you have some other better ways, you could try it on the site. So using map to... What is this? Map? There it is. And then there we go. So that's key. There we go. Okay. I do a map. Okay. This is good. This is good. This is good. Okay. Do a map and then I can do a collect. Joining to... Thank you. Let's see if this works. Okay. That's pass. Okay. This code still smells white. JSON properties, as you mentioned. It doesn't really make sense to be inside order writer. Order's writer. Is that one you could believe? As long as the map you pass in comes from the object. So you have the part where you say the part where you say data put, data put. That phase from line 30 to 36 should be a call to the product object. Product get JSON map. So data able to... Let's try that and see how that goes. So this is trying to produce a data. Get properties. So let's extract methods. Command option M. Let's call it product JSON model. So why do I call it this specifically? JSON model is because it is not... It is something related to JSON. I want to name it so that it can help me to sense to smell it and where it wants to go. If you keep going straight to the product page... Product get properties. Because the map itself has nothing to do with JSON yet. And that's okay because the product object doesn't mean to know where you want to do XML. You want to do JSON. You want to do edifact. So you would go product dot get properties. And then it returns you a map to an object.  Correct. So are you listening to move this to product? Yeah. So here you can do that. I'll probably not go that far for now. It is possible. It depends on what is your domain object. How much do you want your domain object to know about JSON? Well when you're saying you make it get properties like get business properties or something. Map string object doesn't know anything about JSON. So we renamed the function name to product property map. But it's not as straight JSON. Okay. That's true. Let's try that. So... Rename. Rename. Let's move it first and then let's rename and then see how product goes. So this method will follow this private quantity. Where is the gets? Colour. And size. Correct. To belong to products. So what happens is that get size and colour fall is still used in others products. We try to move them to the products as well. Because at the end of the day they are product properties. So once we move it we can then have a second function that creates XML, not just eschages and stuff. Okay. Thanks for the suggestion. I suggest let me try another alternative map and let's see how product goes. We can have a discussion with you. Thank you. I want you to... Thank you. So let's see if we can... You want me to do 8.5. Yes. Time stop. Time stop. Okay. Let's see what we can do with the last two minutes. So this represents a JSON object. Is that right? Let's abstract that. Okay. And again I don't want it to... I don't want it to use the string builder from there. Do the same. Return string.format. Okay. Then return... Make it return the JSON object. Let's run the test. Test field. What happened? You missed the comma. Comma? Oh. The comma. Yeah. It looks like one comma came off. So I'm not going to... Okay. I'm going to pass the test first. And then I'm going to start a pen. The comma. Take away that comma. Right? So now we have... Let me move this up. One of the methods is to write out a JSON object with the curly braces and the JSON properties. I might do a decision like something like this. Let's do a refactoring of putting it abstracting to a separate class. And in a simpler way I can think of is probably to make it static as a static method first. Because it doesn't have any instance variable. And then use delegates. This is abstract class refactoring. Maybe we call it JSON. We move it over there. When we move it over there, now the name says JSON JSON object. Kind of like repeating itself. I'm going to rename that take away the JSON. Maybe call object. Or if I want to sugar coat it, I can call objectify. So... 846. Okay. Well, next time I'll try to improve further. So I'm fully aware that we're not going to complete the removal of the smells. But let's take a review back into what refactoring should have done. What have we... What refactoring should have used? Extract. Extract. Extract. What else? Single response. Great. Single. No other refactoring. Sorry? Yes, we need this refactoring. What else? Extract class. Extract class. What else? Change signature. Anything else? Sorting? Try to bring the use, the declaration closer to the use. What else refactoring? I think we did a two line variable. It was very short one. Two line variable. So in the class I learned why others might want to introduce K-Song class. There are two methods. What is it? Object. And how to do this? Others might want to use this class. So that is all I have. I have to get very quick some of your voices. Why have you become more aware of this kind of thing? Sorry? What is more mechanical? What is more mechanical? Then we need what is happening. A bit more illegal. One more? So there was a story that back in the days of I think 1990s where people were arguing about what is good design. They were showing quotes and saying my design is better than yours. Yours is better than mine. So they couldn't get to agreement at all. And then later on they realized that hey, although we can't agree on what is good design, but we can pretty easily say what is that quote. Smelling quotes. And someone said that what if we remove smells from quotes. If we remove the quote smells, that quote would be actually better. Would it be actually a quote? Probably yes. So since then, that is kind of like my philosophy in trying to create mechanical software and also trying to make it more objective in identifying smells and reflecting. And I hope you like this session. And we have just kind of like a participative removing smells to get better quote. Thank you.


Hi everyone, Joe for JespeysCaseBreaks.com coming at you with 2020-2021 Donner's Optic Basketball Retail Edition One Box Random Team Break Number One. No vet commons ship at the end will re-randomize everybody's names. Top 7 will get spots in that Donner's Optic Break. But first, let's do this one box break. Big thanks to this group for making it happen, appreciate it. And there are the teams right there, let's roll it, randomize it 4 or 2, 6 times for names and teams. This is just for the break. Yeah, AD either a concussion or yeah, he has to change his pants, like Paul Peerstile. And we'll use a different dice for the giveaway. So there are 6 right there. And let's copy your names. And then 4 or 2, 6 times for the teams. 1, 2, 3, 4, and 6. Brooklyn down to Milwaukee. Alright, there's the first half right here. And there's the second half right over there. No trade to win those in these filler breaks, just want to get on with it. Let's just print it. So the ground road, oh the camera is fixed on one spot on the ground. That's pretty cool. Similar concept. Alright, thanks everybody for making this happen. And let's pop this open. Now the break itself, we still need a few full spots taken to unlock this break. We got 4 full spots left in this. So when the time it takes me to do this, we can get 4 more people to buy a spot each. We can do this break right after this. And remember, for those of you watching live, we got a special tonight only promo happening here. We had 7 spots left. I pulled out a spot and I said, hey, the next 6 people that buy spots will give away an extra full spot. Alright, well there's going to be a game 6, ladies and gentlemen. Lakers got close in the fourth quarter. They had like 4, maybe 5 or 6 minutes left. Got the lead down to 9, but then within a couple minutes the lead balloon back to like 14 or so. The Warriors up 118 to 105 on my Lakers. Flat Earth people, yeah. Well, I mean, studies have shown that this goes for people who end up in cults, who end up believing in certain conspiracy theories. QAnon is a recent example of how people make such a big part of their identity to admit that they're wrong or reject that part of their identity is to reject your entire self. And so that's why it's hard for people to not, you know, to not see what is wrong, because in their head they're right.  Josh Richardson, Lamello Ball Raider, that's right, this is Lamello Ball Class. This is 2020, 2021. So that goes to Charlotte, that'll be for Scott. I mean, I think it's more than about just being right. Like it's, it's, it's, that's their identity. It's Tyrese Maxey, Rated Rookie, and that's even, it's even sort of deeper than just being right. Like I'm obsessed with being right, but given the proper information, I can obviously admit when I'm wrong very easily. I have no problem with that. This is just locked into their identity as if it was, I don't know, I mean, it's just part of their soul. Here's a Anthony Edwards Rated Rookie card sold out. All right, that goes to Minnesota, that'll be for David. There's, well, LeBron is going back to his house. So where the Lakers have done very well. So let's go Lakers, game six, valiant effort in this game right here. There's Admiral Schofield, one of the nicest bit of penmanship in the hobby. I wish he was more of a regular player. KD, Golden State Edition, DiVincenzo, Bucks Edition, LeBron James, My House, Hollow, Silver, or I think it's just Hollow, right? I think in Prism it's Silver and Optic is Hollow. Hollow Silver or just Hollow? All right, there we go. Lakers, David Lemons has the Los Angeles Lakers. Lemons with the LA Lakers. Good alliteration. All right, now let's flip back over here. Let's see who's going to win those spots in the full case break of the current 2022-23 Donner's Optic basketball. New dice, new list. And once again, it'll be the top seven after seven, five and a two. Seven times. One, two, three, four, five, six, and seven. So from eight through 30, it's going to be sad times. Cheng very close, but not this time. We'll get him next time. But thank you everybody, sad times ultimately. But happy times for the top seven. Matthew is happy. So has Kevin, Gabe, David, Scott, Scott. Oh, Cheng, look at that. You got in. Nothing to worry about. There you go. We'll see you in the next break, ladies and gentlemen. Sorry, top seven right here. We'll see you in the next break. JaspeysCaseBreaks.com. Bye-bye.


Started now. All right, so our nose says he's in transit. He should he should be joining so Good morning, everyone. Good afternoon. Good evening wherever you are Happy new year to everyone Welcome to 2017 So up for our agenda today. We have a vote when we reach quorum Hopefully we reach quorum to on the cello proposal that Bawa had submitted we Try to bring it forward before the end of the year. We didn't have quorum Again, hopefully we will reach it today and if not, then I promise this time. I definitely will send an email. I Was supposed to do that last time Hi, Nick We have a draft document for the technical working group in China And so Bawa, I think we'll be presenting that assuming he's on. I think he's I think I saw him on Discussion Great. Thanks, Bawa. A discussion of the Core infrastructure initiative security badge. I Did some research before the holidays and so I can report back on where I think we are As far as that is concerned Todd will give us an update on the hack fests and Then we'll have a little bit of a discussion of monthly project updates and I'll explain what that's all about and And then I'd like to have a discussion of communications tools there's been a request for Gitter and a Few other things and I just want to sort of reset where we were as far as something to replace slack Because we don't have a paid account we can archive and so forth. So we'll have a little bit of a refresher discussion Just a reminder I had asked before the break that each working group you know based on discussion we had that was Started by Mick that really each group should have a charter and and so I proposed that everybody Who is leading a working group come forward with a draft charter before next week's call? And then just a reminder that there's an internship program and if you're interested I think Was it Todd were you the one that was driving this? We'll just yeah refresher that so yeah, any other agenda items that people have If not, then I suggest that what we do is defer the cello discussion until our no joins or or heart and and let's go with by a while let's discuss the technical working group in China Draft document for recruiting people. Yeah, thanks Chris and have a new year everyone and First act actually I saw I know has send an email he he would like to support the shallow proposal and About the TWGC work and thanks to the have from from brand from Chris and from all the links foundation guys we have successfully set up the group by calling now we have seven volunteer numbers and then we have successfully have held the meetup at Beijing on the Christmas day and We will also hold another meetup at a shenzhen at the end at weekend and Now currently we are drafting the working guy the line and hopefully Send it out before the next TSE and meeting as our working group documentation and Also, we have successfully make the official announcement and we have the kickoff meeting just as this week and We would like here more suggestion from the TSE. Thanks Okay, anybody have any questions for Bawa or Victor. I think Victor is on as well Yes, I'm here I'm just hoping we can approve the we can get though the dog for technical in group China get approved that As soon as possible That's all. I don't have questions for Bawa Okay Actually, Todd, could you paste the link in since we can't click on the Agenda so just again, you know, you know, I think it'd be fair to give the members a Little bit of time to review this but I'd appreciate if the TSE members could Take a look at the Charter proposal and And be prepared next week to approve it so they can move forward Any other questions comments? Okay We are now at quorum. I understand Todd right heart joint. I saw him. Yes in the type in the chat rather Yes, so we are a quorum And So I think then it's probably appropriate that we take up the the cello Approval vote so before the holidays. I had we had had a couple of Sessions where Bawa had presented the cello proposal There was a little bit of discussion about whether or not there was overlap with the the blockchain Explorer project and I think we've Convinced ourselves that you know while yes, there is a bit of a dashboard aspect to Cello there. They're not really quite the same as the intention of the blockchain Explorer, but the teams should Collaborate on you know aligning things and so forth We then tried to approve it, but we did not have quorum and so I had I was supposed to send something out over the holidays, but I didn't I apologize for that But I suggest that we take up a vote now on the cello proposal to Approve it as a new incubating project if If there's any questions concerns by members of the TSC You need a refresher or whatever on cello that I'm sure about that, you know, we've linked the proposal Link in the chat there, but we could always review that but I think we've been down this path a few times and Probably appropriate now that we have quorum that we actually drive it to a vote So unless there's any objections or any questions concerns remaining I suggest Todd that we take it to a vote. All right sounds good Just walking through the list bin bin you made yes. All right Chris Yep, Dan Yes, heart Yes, Mick Yes, Morali Sheehan Yes, and Tamash Yes, all right. Thank you that passes unanimously congratulations by Wa and What we can do is I'll have rye set you up with a A Garrett and github repository and so forth Okay, thanks. Thanks. I ran spot. Yep. Okay I have to go find my agenda again Okay, thank you very much everyone next up is the discussion of the core infrastructure initiative security badging and I had I had done a bit of research before the holidays And I actually sort of took the the CII security badge test or questionnaire if you will to see, you know where we You know where we would shake out and for the most part I think you know most of the Most of the items are you know sort of best practices and in fact I think most of the projects that we have I'm going here In hyper ledger are you know by and large following many of those practices? We do have to Set up, you know, I discussed this with Brian. We do have to have our security made maven on board it and we have to institute a formal process for Reporting of Vulnerabilities, you know privately reporting both vulnerabilities and then, you know an appropriate Response and escalation process for Remediating those vulnerabilities and and then you know announcing The patches and so forth so we do have to put that piece in place That's that's sort of missing but a lot of the other stuff is you know, do you have it in some sort of a? source code, you know versioning system Yada yada yada and and and many of this, you know the requirements. I think are Are well handled there's a couple of Items that I think that we could do that were not required, but we're you know strongly recommended and those involve doing security scans both from a code perspective as well as You know penetration testing and and various other aspects. I think that you know Certainly from a fabric perspective. I can attest that we are doing those things IBM is doing those things and what I've been exploring on my end in IBM is Can we share those should we share those? I think we should And and so I'm working internally to figure out how we Can either incorporate the process into our continuous integration Or you know, we you know would probably do the scans on the open source And then report back out There is there was some discussion about incorporating, you know actual code scanning into CI and But we need a tool for that the tools that I have available inside IBM or not something that I can share So we are going to nest this, you know if we do want to install something into CI You know into the Jenkins process that that can do code scanning where we're probably going to have to look at something That the project may have to purchase a license for there are You know open source code scanning capabilities, we could explore some of those as well, but It's likely that we'll want something a little bit more robust than that and maybe Brian and and Todd I don't know what other projects at the Linux Foundation are doing In that regard. I know that there's code scanning available for C++ That the kernel team uses But obviously that won't help anybody except the Aroha team currently Although I guess we could potentially use that for a role. So that's sort of where it stood. Like I said, most of it was motherhood and apple pie And I think that you know, we're You know, we have all the basics in place, you know, we have The source code management we have, you know, JIRA, we have review with Garrett and so forth We have a continuous integration Pipeline that does the testing and so forth. So I think we're in pretty good shape and Like I said, we just need to get the security maven on boarded and get that process in place so we can get our batch From at least from my perspective and like I said that the source code scanning isn't isn't an optional thing that you can do as part of your CI And and so we can explore How we how we proceed with that as we go forward Any questions Chris, Ram here. She's wondering does it cover actually security review from from system architecture and You know the underlying crypto As well, or was it mainly a code focused Review. It was mostly code. I don't recall an architectural component to it. There was a recommendation on On on dependencies certainly That I don't recall an architectural aspect to it now okay That seems like something that would be important for us in particular to make sure that we have some means of reviewing as well Mm-hmm. I think hot brought it up on the chat window saying, you know, do we need a security working group or Can we do this in an existing working group? You know, I think it makes sense to make sure so so we at least have a process where we we have the projects reviewed from, you know, are there You know some security issues with the with the cryptos and some are they susceptible to threats, right? So So I do think that one of the things that I think would be important would be And you know, it's a practice that I know that we do inside IBM is to get a full Enumeration of the dependencies and then tie that into, you know, certain advisories and various other Channels for getting reports of potential vulnerabilities and being able to quickly identify that we have a Dependency that has a vulnerability that needs to be remediated and so forth We probably are going to want to do something along those lines And you know, I don't know if it's a working group, I know that the security maven, you know, it's a high priority for Brian I don't know Todd if there's an update on where things stand from a hiring perspective, but Once that individual is Onboarded then I imagine that we would want to have some sort of I don't know if we want to call it a working group Or say but a security Response team that is both focused on you know helping to to helping the security maven to implement and affect the the necessary response and and reporting Mechanisms, but then also, you know implementing any tooling and whatnot that's necessary to Ensure that we are effectively So Chris we were talking in the architectural group yesterday about you know doing that the sort of charter discussion and trying to articulate exactly what what role That group has right because coming up with the architecture is clearly a very optimistic goal But what we wanted to do was to figure out how we could provide feedback to the different how we could be a useful resource and provide feedback to the various projects Would it make sense and again, I'm thinking more from the architectural review and Algorithmic review rather than from that, you know, did you make sure all your buffers were taken care of correctly, right? And all your dependencies Would it make sense to have It in some ways to empower the working groups to be a Kind of an almost independent review For the projects that we have inside the the organization right now You know could the architecture doc it could the architecture working group is it is it an appropriate role for the architecture working group to be It simultaneously working towards Kind of the idealistic architecture and at the same time providing deep review of the The various, you know, say fabric platform projects Does that make sense and if that's the case then it sort of implies it applies already well This is something that we should bring up as a topic of discussion when we talk about the the charters but my thinking around the value that the architecture working group in particular can bring to the table would be to help us Collectively the various projects that we have You know taking a look at you know from an architectural perspective of how these things actually work and How they're organized and so forth from an architectural perspective to help us figure out how we drive Potential consolidation how we can potentially You know evolve the various projects such that we drive Potentially increased interoperability capabilities You know that we align ourselves a little bit more closely where it's relevant You know I think to your point Mick, you know coming up with you know one architecture to rule the mall is It's a bit of a stretch But I do think that helping the various projects understand that if they were to you know Just inch themselves a little bit to the left over here And another one would go a little bit to the right that they could actually get much closer Aligned the you know we could potentially think about Having various Capabilities or components, you know shared amongst the different projects and so forth. I Think that's the real yeah This wasn't it was not attending this to be a discussion of the architecture Working group charter what I was trying to come up with Chris is a way that we can meet the missing need for Call it peer review, but a deep peer review of the architectures for the components that are being Provided right? So we can do security scans. You've got tools for doing that We can do dependency checking and all of that that doesn't mean that your algorithm is correct Who's verifying that the algorithms are correct and helping us to understand What the limitations are what circumstances it will it will work and not work in It would be nice to have you know And then we've talked about this was hot to it. It'd be nice to have a Interactive peer review group Right rather than dumping a paper out there and having people you know just blow it up or whatever Being able to have something that's an interactive group that provides that and for Our ability to address resiliency in The face of a tax given the kind of software we're building that peer review is critical And I needed an architectural and algorithmic level not at a did we include the right libraries and the secure versions Put some color on this I was we were discussing this yesterday. This is ripping by the way Put some color on this basically It is not one architecture to rule them all concept is basically on request From any project under incubation. We might The architecture working group might provide Some kind of a feedback to this it is not a prescriptive thing at all. It is more so that we can collect the thoughts from the main architects on the on the You know like main architect of a particular incubation or the main architects of a particular incubation and then Sit down and talk about it and maybe have some constructive session Or even a constructive Interaction about this that's one one thing the second thing is about the security review Security as you know, it's not just the architecture working groups concerned, but it's also like for example identities highly tied up with this so In those terms it makes sense to have some kind of a sub working group like Rom is suggesting or a committee or something like that I know that R3 for example has architecture working group and every other group is like a sub working group of the architecture working group and the way that that works is because You don't have this heavy organization a chair a meeting every two weeks and so on and so forth if if there is a Security committee or a sub working group, then they can take that to the side and you know Have more productive conversation more frequent interactions and come up with some something more beneficial regarding Security not just Be a code focused thing at all because between the penetration testing and a Overall architectural review is where the attacks are going to come from. I mean, it's a practical thing You know in terms of the security Implications Anyway, that's all I have to say about that Thank you Well Go ahead now. This is Leonard. I was just trying to say no, that's certainly true what Victor has just said I mean the architecture working group should always have all the site to all the different Components that collectively make up the whole in terms of any solution and their dependencies and therefore security is Overriding everything. So yes, you can have a security subgroup and clean it more as a component of the solution because security is prevalent everywhere And of utmost importance But certainly the architecture group should have oversight and therefore that's the lineage That's the linkages and the dependencies to ensure that everything is looked at as we've all just rightly said to ensure We have not just fit for purpose, but we will we maintain all the right Standards as they change as new ones become available to ensure that we have a very secure Solution at the end of this in terms of frameworks etc. So yes I certainly agree for the difference just said there and the gentleman beforehand So I I think it's quite similar to what we did last Summer right around a June time frame from fabric point of view. So we came up with the second iteration of the fabric architecture and we Spend I think four sessions review with the architecture group You know, I certainly at first we have to spend a lot of time on talking about the in in the details of the fabric architecture and spend some time To to educate the members of the group, but the feedback is quite Beneficial to the fabric. So I think that's what Nick is trying to get to is that the function of the architecture Working group is not only just coming to to come up with a consolidated architecture But it's there to help reviewing the architecture of the projects In the community and and and we we did that without knowing that you know, that's it The right way to do it But you know, we just tee that up to the architecture group and and drum and and members You know graciously taken that that pass To review the fabric architecture back then Yeah, so suddenly it looks like we're already having the architecture work group discussion as part of this So I think we absolutely need to To have the general architecture Review as part of what we do in the architecture work group and you know Looks like there's a lot of support for that And I'm glad to see that but with respect to the security review I'm not sure we and which is you know the topic at hand I'm not sure that we we've quite done that yet in the sense We covered the overall architecture and the decomposition and interfaces and so forth and that was You know a good two-way street in terms of informing what we do When we develop the ideal architectural framework as well as providing feedback to the fabric project, right, but the The thing that I'm not sure we have accomplished is a security review to see You know, whether there are Security holes where there are any threats that we have not Covered and and we probably need to either recruit or actually contract out or do have some method to have security audits and reviews done by The experts who have that capability, right? so, you know, I Don't know how we're going to incorporate that into our overall process It's a Process, right? It's an iterative process meaning it is not just done well once and everything is over Because for example, probably has made some significant changes since our since our initial discussion and You know, don't you think it's appropriate to revisit some of these things some of you know the current architecture and then Have another session, you know in other words It doesn't get it doesn't end with just one especially if there are significant change Yes Yes, I Agree with with that. I tried to do that last time that we are we have face-to-face there That's part of the update but certainly not enough time there We didn't have it an architectural Breakout session there to continue Regarding security. Yes, that's another thing that that we need to bring up to the community about from the fabric point of view We want to have some kind of Technical report on that To to be written Not not there yet We do have some expos internally trying to do that and to create that technical report So, you know once once we have that it's it would be would be good to bring that up to the community for the review Depending on you know how we want to do this if there's a security working group that would be great otherwise, I would start with I would bring up to the Architecture working group first and then we can go from there You know certainly identity is part of that as well and and You know Chris and and Bippin been asking me for a time to review that with the With the working group, but we have not been able to do that yet I think to what the end of January would be a good time for us As we completed, you know our coding at that point I think that's great because we could have we could take baby steps and have something called say a Security subgroup that reports directly or works very closely with the overall architecture working group And therefore it's the responsibility because time is of the essence the number of resources We have working on the different projects in different groups. It's very tight That is slim, but that focus on a security subgroup Which is closely tied to the architecture working group might might work because then it can look at all aspects of security Across all the incubation projects and come up with a pretty good standard as to how things move forward And I can go ahead. We can improve on that. So baby steps first We set something like this in place to see how it works and we learned from that And that's the whole purpose of our meeting. So no, that should be good Thanks so I Would say let me just say this. I think that you know as has been noted having a sort of a peer review function as being something that the architecture group can do and Can offer the various projects Under the hyper ledger umbrella is a good thing and as has been noted projects that have done this have Benefited from the feedback that they've received. I'm a little bit reluctant to turn it into some sort of a gate Only because You know again, we're this is an open-source initiative projects are roughly independent in terms of their Operations, you know, they may not get a badge right if they aren't, you know, doing all the CII security badge requirements, then they wouldn't get a badge. So it's not like we're going to do this once and all the projects get Done, you know, I think that each project is going to be responsible for Getting its own security batching and there's a function of what we can do from a you know from a hyper ledger Perspective that you know like I said like the security response piece You know that and potentially some some of the CI stuff that would have to be you know provided by the Linux Foundation itself But the projects are somewhat independent again I think it's a good thing to offer peer review capabilities and if teams You know projects want as the fabric is done and the sawtooth is done to bring their architecture Or their architectural proposals to the architectural working group and have them Discussed and reviewed and and you know feedback provided and so forth. I think is a good thing I think that the TSC function is more along the lines of saying look if you want to have you know You know the support and approval of the TSC and moving forward And so forth then you you need to be able, you know, you need to be this tall right to get on the ride And you know for the architecture working group to really Be establishing the set of criteria that they're looking for so are you you know, do you have security scans? Do you know those kinds of aspects? I think are important from an architectural perspective more so that I think then Having a work group that then has to do all the work Involved in that if that makes sense I do think that again the TSC The role of the TSC is to set the guidelines for how the projects would operate Not to be the ones that control the projects themselves. Does that make sense? Yeah, and in fact Chris none of us were proposing it as a gate Various other no, no, no authority advisory Right the the piece that's missing the piece that's missing for most of us right now who are building this is an Independent advisory or peer review group that can give us feedback that we can't that Positive constructive feedback that we can incorporate into use to modify and make our projects better This is a community You know, the community can provide through the expertise that it is an incredibly good and Strong intellectual community in this space Tapping into that expertise so that this feels like a community providing some services to a bunch of of Projects each one of which is trying to address a different set of requirements. That seems like something that this community could very Actively provide and would be an incredibly valuable resource for all of us I did and again like been I will say that having the opportunity to present Some early designs for some of the work that we were doing in sawtooth and getting feedback change the way that we did and and we need more of those positive constructive opportunities rather than the I mean we can all go out and put something on e-print or whatever it is and You know 99% of the feedback is just we hack and slash and not useful But having the architecture group here as a way for us to And I'm saying architecture working group, but I'm saying it but really identity The use is whatever we do for security and architecture all have tremendous benefit in providing a Community a positive constructive community feedback for all these projects that we're working on and trying to tap into that Seems like a good thing and yeah, no one is proposing gates or things like that. I mean that that this clearly not gonna work But taking advantage finding ways to leverage the expertise in this community seems like the best thing this group I Completely agree and so does my dogs Give them a treat and say hello intelligent dog you have that I'm hearing two things one is let's kind of maybe in general make better use of the working groups to to help bring new ideas and proposals through them for for the community feedback they provide and Then specifically with with the CII topic Would I guess be the notion of maybe running through some of the CII criteria? Within one of those working groups before a project self-certifies To put that to put that bad URL in there a project readmate Yeah, so on the latter topic Then it seems like on the CII badge requirement if it doesn't already have Security review from an architecture and crypto algorithms perspective Maybe what we should do is come up with With some kind of subgroup or independent group which is responsible for that and incorporate that into The requirement for getting a badge for any hyperlegia project there that that would be my thinking on that and And I agree with what Nick was saying earlier Chris and we're all on the same page We don't want this to be a gate, but we want to find some way of encouraging all the projects to kind of Move towards evolved towards the kind of ideal architectural framework We are coming up with right and we want to encourage nudge the nudge the projects to go in that direction and You know so far that has happened in an ad hoc informal way because Folks like Mick can win and others have been active participants In the architecture work group and that's what's made this an effective work group, right? But it's now the question is by offering the review option to the different projects and kind of You know encouraging them to participate actively in that sketch a word group can be kind of make that happen You know for all the other projects as well If we could take a step back for a second and look where we want to end up We've talked about doing architecture reviews algorithmic reviews things like that But with this being new technology do we need a team looking at? Potential vulnerabilities that don't you know, we don't know about yet versus buffer overflows things like that, you know, we're Exactly, you know, it's it's it's doing the security review to find out if there are vulnerabilities that are not addressed, right? So and so typically in and you know in academic setting when you Kind of publish a new proposal it gets peer reviewed by other security experts to see whether you know There are other threats, you know, there's a good explicit modeling And to identify vulnerabilities and so forth, right? so We have to find a way and I'm not sure we have all the expertise to do that within our existing community And so that's why you know it's a duty to you know We probably need to bring in a process and some expertise to make sure that we can do a good job at that Yeah, that is true, but I think within our own house here. We have the makings of I would say Some form some degree of strength where we can structure How we approach the projects in terms of architecture the dependencies and oversight so architecture must always have oversight over everything that eventually becomes a solution whether we're talking about Frameworks frameworks of some form of solution with standards included within that framework So this is a good start we put together and yes, we can remember that with additional external you might say expertise or oversight at some point in time But I think the way we headed and as several of you said in the past We have been moving that way and I think that's a good that's a good approach overall To have that level of oversight and ensure that security there is oversight at an architectural level to look at any gaps any threats Not just now, but future threats because things to change over time So we can look at things and see how we can address and the road map so you can put in place So no, this is very good discussion. Thank you. So so so I was on mute unfortunately, but Here's what I would suggest so so I think you know Mick and Ron what I'm I'm I think we're we're in agreement as to sort of Generally what we're trying to say here I think is part of the discussion to come up with a charter proposal That if we can factor in this notion of providing a peer review peer review, you know, if if there's an You know if if the if the team thinks that You know providing some sort of a carrot or stick is Appropriate to encourage the various projects to come forward and do an architecture review I suppose I'm kind of I'm more that if there's real value in it, they will come right And that it's more of a marketing thing to you know to get others to recognize the value and having the peer review I think this discussion alone has been helpful to to share and spread the word of you know with the feedback from both Mick and bin on the value of having gone through this this process Over the course of the past year I think formalizing that as a function that the architecture working group can provide is a good thing and so that I would encourage that and You know and so rather than sort of dwell on this any more I think we should defer it to the the charter discussions that will likely have over the course of the next few weeks So I do like I said just factor that into the charter and then that's let's pick it up from there I Guess just very quickly because we're running out of time here a bit Todd You want to just give us a quick update on the upcoming hack vests? Yep, certainly so for February We our events team did a lot of research and ended up landing on the same place that we were at last time in San Francisco So it's going to be in the Presidio again as well. Here's the registration link Into the chat window. I'll also send out an email after so that will be February 1st and 2nd It's directly after the coin desk construct conference happening the two days prior I will also send out a draft agenda. So if you have any topics that you want to see During that get those slotted in please from there We are tentatively looking at doing a hack fest in March in Shanghai In tandem with the hackathon that's going to be taking place there More details to come soon on that and then lastly, I think there was some discussion around potentially doing a hackfest in May in New York That is very tentative at this point but if there is interest or if any of those on the line have Venue space that we could use please get in touch with me and we will continue tracking on that over the coming weeks You know just as part of our goal to get these planned further as far out as possible And just taught a reminder from the Shanghai perspective. There's a hackathon That would be either before or after the tentative hack fest correct similar what happened in Amsterdam the hackathon is being I think sponsored by IBM and Wanda and maybe Huawei I think and And that's moving forward So there's an opportunity to you know Just as we did in the past to have some of the members of the the Hyperledger projects come participate either as Coaches or judges Or participants in the hackathon. I think would be a good opportunity I know I got a lot out of the the one in Amsterdam So we have a set in March yet or not I'm sorry, Ben. Do we have a date in March yet or not yet? It's still tentative. I I Believe I that there are dates for the hackathon I can try and get those and send them just so the people know Yeah, March 10th and 11th is the current sorry 11th and 12th is the current working Date for the hackathon and so the hack fest would be as close as possible to that there a few days before or after Okay Hi, and this is Victor. I want to know whether Wanda has sponsored the hack fest For I know I know they are working on the hack zone But I don't know if they are not going to take care of the hack fest or so If they are not working on this, we are happy to provide the place this and Our help to organize the hack zone Hack vest Okay, so Todd, I think you can follow up with Victor after the call. Yep, Victor. I'll send you an email right after this. Thank you Okay so Project updates I hinted at this before I sent a note I Think so one of the things that I have to do and I think Dan, you know gets roped into as well as Providing an update at the end of the month that says, you know, what happened in fabric or sawtooth and the TSC and so forth I can speak, you know to the To the TSC and to the fabric and I like I said, I usually have to reach out to Dan to provide some input from a Sawtooth perspective and now we have a Roja and potentially soon Corda And so it's it's getting a little bit out of hand. I cannot provide complete oversight of All the progress that was made in all the different projects that we have And so what I'm going to request is that the project The various project teams sawtooth fabric blockchain explorer Roja And now cello provide monthly updates on You know, what progress has been made? You know what major You know milestones were reached and so forth just something brief a paragraph Is more than sufficient? on Anything that they would like to share with the broader community and what this will do is This will go into a newsletter that the hyperledger Jessica of the hyperledger staff puts out On at the end of every month And so I'm going to request that I guess, you know, at least for now it would be Makoto and Dan and myself and Bawa and Who's explore probably part of? provide a monthly update and Again, they can share the load with others on their team, but That's going to be something that I'm I'm going to ask for and I think it I think it's I think again It's a good opportunity to sort of help to spread the word on the the work that you're doing and on the value and Benefits of working in this in this community And so unless there's any pushback on that, I hope there isn't Otherwise you're just going to have no there's not going to be anything about your project in the monthly update so Finally then there's the Communication tools discussion. So We had talked last year about various alternatives to slack You know, we tried was it Not confluence. What's the discourse? And remember what it was anyway, it doesn't matter And then that really didn't pan out effectively We obviously cannot afford a Paid account for slack. I think that's in the two to three hundred thousand dollars a year range. That's kind of ridiculous So we need an alternative. I Think Brian you had suggested rocket chat might be an alternative. It's a sort of a slack Alternative but you can host it locally and I think that Over the holidays, there was a bit of a ball dropped I asked Roy to sort of check back with the IT team on the prospects of hosting rocket chat From IT and what that would cost and so forth and bring that back To this group and then obviously to the board if it's going to cost us some money But I think that's really our best alternative at this point now somebody had made a request for Gitter Which is another slack Want to be that plugs into github The problem of course is that without a paid Subscription to that you're not going to get any archiving either You're just going to have sort of the same problem that we have with slack with 45. No, actually it's 4900 people now All trying to communicate in the same slack and you basically have two days worth of History before stuff falls off the edge of the world so Just a reminder to Brian and Todd and Ryan the team if we can Pick that ball up again and move forward on to get rocket chat hosted and so forth. That would be great Will do Chris IRC is definitely an option by law, but we would have to set up some sort of archiving for that as well, right so And publishing and so forth of the okay the logs, but It is an option. I mean definitely I mean tons of teams use it It's not as slick as Slack so to speak but it is it is an option but it's It would mean that we would have to have almost a project team working on Integrations and so forth And we don't have that currently Talk just just just a consideration. I have a thought really what sort of tubes are currently existing in some of our of corporations like IBM and Linux in terms of communication tools and possibly the ability to have free storage on a server somewhere within that and And because this is part of the Linus and foundation not leases Creavers some space and some process and technology to maintain communications To let and the data the documents go along with it. Yes. That's the thought I'm not sure what's available If that will fly and therefore we it would be almost at zero cost to That's that's basically Leonard that's basically the rocket chat You know it's a matter of hosting it and then providing the storage for the archives and history Thank you. Yeah So we're about end of job. Are there any other agenda items? Todd you want to put in a last pitch for the internship program reminder? Yeah, no real updates. It's something we're working on behind the scenes right now just to formulate So we hope to get this up early this year If you are interested in being a mentor for an intern just get in touch with me so we can track on that So that once we launch the program we have a bunch of people that we can connect with and In the minutes that go out I'll just include a link to the overall Linux Foundation internship program that exists across a variety of the projects that we host Just so folks can get a better sense of what that will look like Todd I suggested I'd like to help with the mentorship program However, could we put together a high-level list of responsibilities so that we're all aware of What it is about what it will entail and therefore the resources and the time the time effort that might need to be So to put into this just to give us a fair idea We'd be one back on the takings about Absolutely that that's exactly what we're developing right now Wonderful Okay, thanks everyone and again happy new year and look forward to a very productive and exciting 2017 thanks guys Thanks to all of you and make the whole year be better successful for all of us. Happy new year. Have a great day. Cheers everyone


We, Deina and Aletta from Icoholics, are embarking on another journey. This time we are in Italy, on the beautiful island of Sardinia. We are hiking the Camino Minerario di Santa Barbara, in the southwest of Sardinia. The CMSB is a 500 kilometer long Camino, which is divided into 30 stages. We are hiking stage 11 till 18, from Montimanu to Nougi. 100 kilometers along this beautiful trail. We are walking on the most ancient land in Italy, along mountains, mines, characterized by the millennial mining epic of Sardinia. Welcome to the CMSB. Good morning. Good morning. It's the second day on the Camino, and this morning we woke up at Pubushinu. Pubushinu, yeah, and the host there, his dinner was incredible. We ate so much. Really, really, really recommend this place. Yeah, he had lots of starters. And we thought that was like the whole dish, but they were only the starters.  And he wanted to give us fruits and dessert and coffee. And it was a lot. Yeah, but we felt very, very welcome. And that way we are very energized for today, because it's quite a big stage today. It's 21 kilometers to the end place San Benedicto. San Benedetto. San Benedetto. There are actually two stages combined, stage 12 and stage 13. Yeah. And today we're also going to visit one of the caves here. There are lots of caves in Sardinia, and the one we are going to visit is called Sumanau. And we're also going to a temple, and that's the temple, the Antas. And yeah, I'm pretty curious how everything looks. Really curious, yeah. And it's 700 meters of elevation gain today and 600 meters of descent, but the beginning is quite flat. Enjoying the ice cream? It's really hot outside. And like I'm sweating like crazy. So I'm looking forward to eating this ice cream and then going into a really cool cave. We're at the entrance of the Sumanau cave. And they will provide you with an English audio tour. Yeah. And I'm really looking forward to the cave. I don't know what to expect to be honest, but let's see. We did it. We made it. It was a pretty long day to be honest, but the views were incredible. And now we're in the Posada of San Benedicto. If I pronounced it correctly. San Benedetto. San Benedetto. When we arrived here, we couldn't find the Posada to be honest, but the people from this town were very friendly and very helpful. We went to a little market where we bought some fresh fruits, which we are craving. Yeah. And in every Posada, by the way, a Posada is a house that's organized by the... Yeah, by the organization of the Camino. And Posada means place of rest. So this is a place of rest. And it's specially made for the pilgrims who hike the Camino. And at every Posada, you can give like a gift for the use of their food. Because in every Posada, there's like rice and pasta, sauces and stuff like that. That pilgrims can use to cook for themselves and then have a nice evening here. Yeah, so I'll let it set it, have a nice evening. That's what we're going to do now. We're going to cook some dinner. I think some famous Aletes Pasta, which I'm really looking forward to it and we'll see you. The road we're supposed to be on the right and it's on the left. So that's how we found out that we took the wrong turn accidentally. It's crazy. What is it? It's like a never-ending tunnel. Enjoying the food every single day. We met some amazing people along the way. Like Paolo, supposed to be a famous guy here. And we just met a couple of people and we gave them beer. And it just really makes this day really special. I absolutely love it. This is my dream place.


Hi everyone, this is Chichou. Welcome to my channel and welcome to another short little quick math-related video. And what I wanted to do in this video sort of address something that we've talked about previously, back in 2011-2012, I put out a couple of videos and wrote an article basically talking about why mathematics is important to us individually, culturally, socially, basically mentioning that mathematics is really just human evolution, us coming up with a language to try to understand the world around us, right? And those videos and that article is basically related to the most common, two most common questions I've gotten in my life in the last couple of decades of teaching mathematics is which are basically one of the ones being, you know, one of them I'm going to use this in the real world and the other one being is why is math important, right? There's sort of the same question because one connects up with the other, right? But they're basically two of the most common without a, you know, without a doubt comments that I've gotten from students and they're they're basically directed at me as comments and not really questions, right? Because people have already made up their minds regarding mathematics if they're trying to learn it, if they're having a hard time with anything mathematics is magic, right? They make these these questions, turn these questions into statements, sort of dismissing mathematics saying what I'm going to use this in the real world or why is this important, right? So we put out those two videos, one of them was basically me laying out, you know just picked five points and I sort of go through five points of why math is important. The other video I think that video came out in 2011, the other video which came out a year later, I believe in 2012 that I released was sort of me going off on a rant mentioning that mathematics is part of human evolution and it's an innate ability that we have, right? That we're able to use to try to understand the world around us, okay? So building up on that, I wanted to sort of take this opportunity to remind people why math is important and where we end up using mathematics in the real world, right? And the quick answer to where we end up using mathematics in the real world is everywhere, right? And why is math important? Because we use mathematics everywhere, right? That's the general theme of this, right? But since we've been doing a fair bit of number crunching related to one of the events that's taking place in the world right now, specifically related to COVID-19, right? We've been crunching some of the numbers, tabulating some of the numbers, creating some charts with the numbers. I thought I'd take this opportunity to remind people how mathematics can be important in the real world, right? And I'll provide a link in the description of this video to the table and the charts that we've posted on our Patreon page, which where we've been doing the crunching the numbers and I'll post a link in the description of this video to the playlist that we have regarding COVID-19, the coronavirus, right? But basically what we've been doing is taking a look at this table and creating some charts and stuff and one place that mathematics really helps us out individually, right? Community-wise as well, socially as well, based on countries, companies, everything. But for us individually, why math is important and how we end up using it in the real world, we can find out by just pointing out one thing that we discovered by crunching these numbers regarding COVID-19, right? And there's a lot more because you can take a look at those videos where we went through those charts, went through the table and tried to understand what the data is telling us, right? But just to go a little bit deeper than that and just point out one other thing we found out regarding this data set. Now, if you take a look at that table in the one, two, three, four, five, six, seven, eight, nine, ten, in the 11th column, we have data related to the fatality rate for COVID-19, right? And initially the fatality rate that the World Health Organization and other organizations were mentioning that were quoting was basically that CFR, the confirmed fatality rate, was around two, two and a half percent, right? Now we started tabulating this data, started creating graphs and started taking a look at the fatality rate plus some of the other metrics as well, right? And what we noticed with the fatality rate started getting the data for it from January 31st, right? Because then this COVID-19 really caught the world by surprise, so the data was fairly sparse at the beginning, right? And now we're getting a fair bit of data, so we're going to do a lot more data crunching on this. But basically from January 31st for our data set, we started calculating what the fatality rate was, right? And at that time we're getting a fatality rate of 2.8%, 2.1%, 2.2%, 3.14% or so, so it was confirming what the World Health Organization and other other organizations were telling us what the fatality rate was, right? But then one thing we noticed as the days progressed by February 11th, 12th, 13th, we started seeing the fatality rate kick up, where by February around 19th and 20th we hit the fatality rate of around 3%, right? And the fatality rate kept on going up, kept on going up, and right now the fatality rate is sitting around 3.4%, 3.5%, right? So back in February 20th based on our number crunching, we found out that the fatality rate was kicking above 3%. At that time, however, the World Health Organization and other organizations were still quoting the 2, 2.5%. It was mainly 2% that were referencing that the fatality rate was around 2%. Now, days progressed and based on our calculations, by the end of February, February 29th, we had already hit actually by February 25th, we had already hit 24th, 25th, we had already hit 3.4% fatality rate. While the rest of the world, the World Health Organization and other organizations were still quoting the 2, 2.5% fatality rate, right? Now, what happened was in March 3rd, the World Health Organization came out and re-evaluated their numbers and confirmed what we already knew was that the fatality rate was 3.4%, okay? So for us crunching the numbers, using mathematics, trying to understand what the data is telling us, we knew that the fatality rate was moving up and was hitting around 3.4% well over a week before the World Health Organization came out and confirmed those numbers, right? So we knew anywhere between a week to two weeks that the fatality rate was kicking up and things weren't looking as rosy as what was being stated by these central institutions, right? That is a perfect example of how we can use mathematics in the real world and why math is important to us individually, right? Because of something like this is happening and we have access to the data and hopefully it becomes open source data and it is to a certain degree where we can grab the numbers and start crunching the numbers, right? We could have done a little bit more prep individually, right? And we did. We talked about this during our live streams, during the videos and we did mention and we did talk about it with our community on Twitch as well as our community on Pichu on YouTube that the data was starting to look more problematic, right? So we knew anywhere between 10 to two weeks ahead of time that the fatality rate was higher than the general population. Why? Because we were crunching the numbers, okay? And this is just one simple example as to why math is important, okay? And where we can end up using mathematics in the real world. Now keep in mind this type of data crunching, this type of simple analysis where we tabulate the data and create charts and graphs and get a visual for the data to try to better understand what the metrics are, what the driving force is for a system maybe studying. We're not going to just use it. This isn't an isolated case where we just ended up using this for to figure out what was going on with COVID-19 and use it to our advantage to be ahead of the game a little bit, ahead of the curve a little bit, right? You can use what we did, any system you're trying to analyze in any system you're trying to understand, maybe related to economics, the stock market, your own personal finances, your company, how you're going to manage your life, right? In this case, knowing that the mortality rate, the fatality rate has gone up one, one and a half percent, right? Relative to what the consensus was a week to two weeks ahead of time was pretty advantageous to us, right? And it is a big deal because that's a serious kick up in percentages, right? So what we're going to do, continue to do regarding data specifically for COVID-19 coronavirus, we're going to continue to crunch these numbers and take a look at them on a monthly basis and do live streams and talk about what's taking place, right? Outside of this, related to the content that we're creating on our channel, we're going to continue to do mathematics. We're going to continue to look at different systems, maybe related to economics, maybe related to health, maybe related to investing, personal finance, comic books, food and farming, right? Mathematics of art and design, right? Take a look at the mathematics of physics, chemistry, biology. We're going to continue to layer this work, right? Sort of have a mathematics as the base foundation of everything that we're building on, right? I just wanted to share that a little bit of extra information that we're getting from the table, the number crunching that we've been doing and just to address why math is important and where we end up using mathematics in the real world, okay? I hope you find this useful and if you do appreciate the work that we're doing here, you do support this content, you do like the work that's being put out, right? And you want to help this project. Supporting this work through Patreon is a fantastic way to make sure that we're able to create content on a more regular basis and start bringing a lot of the concepts that we've created so far through the 13 plus years we've been on YouTube as well as the last few years we've been on different platforms. Bring all that information together and link everything up and create a lot more of the content we need to start putting out math modules and whatnot and of course by sharing, liking, commenting, interacting with us through the live streams or through some of the other platforms that we're active on is a fantastic way to support this work as well, right? Aside from that, I hope you're having a fantastic day. I hope you have a fantastic week, month, years to come and we will be here to continue to produce work the way we've been doing for the last 13 years or so and if we get, again, if you do appreciate this work, if you do like this work, supporting this work through Patreon is a fantastic way to help us continue this work for the next 10, 15, 20 years to come, okay? Aside from that, I'll see you guys in the next video. Bye for now.


For a guy who put up so many numbers you would think there's not much to prove but in the business in the business of football moving up a running back always has to prove himself what do you think you have to prove no doubt I mean when you think about things to prove I think about weaknesses in my game from last year just to be past protection and ball security and that's what I'm trying to show this weekend you know hope the coaches see that and trust that in my game you are a guy who loves this game very much where did that start for you I mean it started all the way back when I had when I started playing a nine years old you know I started back in Canada you know continue to play the sport went down to Florida and honestly have fallen in love with the process and the results that you know come from it you know I put in a ton of work off the field to be successful on the field so you know to be out here competing with the best of the best it's a blessing think about a guy like Josh Palmer who made a bunch of money down here a couple years ago a Canadian who went to Florida played his game then went on to Tennessee now doing a great job for the Chargers why are so many native Canadians making it to the NFL at this point you know they find an opportunity down south they're getting into the big programs and making a name for some for themselves and then on top of that coming out here and competing at the best of the best and that's exactly what my brother and I are trying to do here and you know I'm looking forward to the next two practices coming up how do you describe your running style tough physical you know I use my feet and my quick burst to create separation and line of scrimmage and defenders I would think you're enjoying the interview process what do you like about it you know you get to sit there and you get to talk with scouts and coaches and the best part to me is you know building a relationship with them allowing them to get to know me and you know going forward just you continue the process and telling them my story so they understand me as a football player thank you so much for the time thank you


So it's an attribution error It's an attribution error.  They are you they constitute who you are But that is of course an error a kind of attribution error The internal objects the introjects the voices that populate your inner world They are not you They are not a part of your core identity.  They're triggered by circumstances and environments and other people and events in your life But they are not your identity They are not your core if we were to strip away all these voices if we had a magic wand or some kind of electronic device a Faraday cage for introjects and we were to scream them out silence them block them reverse them Like some kind of noise noise negating device if we were to do this if we were to Silence the inner tumult This constant stream of consciousness dialogue that goes on in your mind. We would still be you It would change nothing about who you are. It may affect your behaviors Silencing the introjects does have an effect on your behavior Doesn't have an effect on your choices on your decisions Including mate selection does have an effect on compulsions such as repetition compulsion But it doesn't have an effect on who you are what you do How you act what you choose what you decide? This is not who you are Your self if it exists does these things, but these things are not yourself The introjects interfere in the interface between you and reality They are kind of a junk's or Auxiliaries to the ego They interface with reality on your behalf. You can have an introject that tells you you're behaving like a slut Stop it. You can have another introject that tells you this is wrong to do this that our conscience our conscience is Such an internal object. It is an assemblage or a compendium of introjects inside your mind But this is not who you are And so we have therapies treatment modalities such as cognitive behavior therapy schema therapy Gestalt therapy even to some extent transactional analysis other types of therapy these therapies Silence these introjects They remove them even to some extent and once these echoes of meaningful others in your mind Are silenced one once it all goes goes quiet There's a single voice that is still speaking One one voice is left standing one introject survives the onslaught of treatment And that voice is you that's your core identity. That's your authentic self In the description I post a link to another video about Changing your inner dialogue Good luck with that. You can do it partly on your own and partly in the appropriate therapy It doesn't even take long Your introjects are in your way Very often they are negative Together many of them constitute a bed object Many of these voices tell you that you're unworthy Unlovable inadequate a failure a loser evil or whatever you need to get rid of these introjects Other introjects mislead you in the opposite way the grandiose you need to get rid of these introjects You need to listen to one sound only in the desert of your soul and that sound is The sound of your inner God your authentic self