I am sorry. I cannot manage the house. Thank you. Yes, you can do it. This is not a wine. Dear colleagues, we have reached exactly half of our school. Two and a half days. And now we should continue our session. And I am pleased to give a floor to Mr. Prusak. I told Ron Young that to keep you awake, I may sing this presentation. I know, but I'm not sure I'll really do it. Now, sir, there's nothing that surpasses it. I could try.  Years ago, when I was in college, I used to sing at a bar for money. Those were a long time ago.  So, the United States has about 85 to 90 government agencies.  None of them do anything good with knowledge, not one except NASA. Every government agent in the United States does nothing with knowledge except NASA. Some of the intelligence agencies may do a little, the CIA and the 16 other ones. But they talk about it, but they don't do anything. NASA was different. And I'm going to tell you why it was different and what they did. And some of it has good lessons for you. It's not just talking about an interesting story. There are things you could learn about this. When I was at IBM, I ran a multi-client research group. So, we had about 50 organizations that paid us a nominal fee. And we did collaborative research on knowledge, less was known about it then than is known now. And much to my surprise, a fellow came from NASA. I was very happy to have him. I like rockets. It's a very sexy and exciting sort of place. But I asked him, I said, do you do anything about knowledge? And he said, well, we have enough knowledge to go to the moon. But it's unsystematic. It's uncoordinated. And we'd like to think about starting a knowledge type of work. I was really very surprised because it doesn't happen much in the United States. So, why did this succeed and it become a big success at NASA? Why did it succeed there? And again, this is contextual. It's true for NASA. It may not be true for your organizations. But it's worth hearing about. For one thing, almost everyone who works there is smart. Stupidity is hardly ever used as a factor of why things happen or they don't happen.   NASA, you just had to be smart to do the work. They weren't prejudiced. They weren't bigoted. But you can't work there. One of their t-shirts they give out that says, it is rocket science. So, you really just can't be dumb to work there.  It's just true. You can argue or you don't have to believe it, but take it from me. I've seen over 500 knowledge projects and I'm sure I'm right. That generally firms that... Because if you don't can't imagine the value of knowledge, it's an intangible as Ron was saying and I was saying. If you can't imagine it, why would you put money and time into it? You need imagination and you need an understanding of the role of knowledge in human development and in running a firm. So, NASA is smart people. The work they do is extremely complex. I would think it's a little like you do. Running, sending a rocket to the moon is pretty complex stuff. I don't know if there's anything more complex that human beings do, but it's got to be in the top five. One time when I was working there, they asked us to draw a model of all the countries and companies that contributed an idea or a piece of work to the Apollo 13 moonshot. I said, sure we'll do that. We can model that. We had like 10 people. We quit when we found 3,000 organizations. So that's how 3,000 contributed something.  I said, that's enough. This can't be done. Not by humans. You can maybe have Siri do it now, but it couldn't be done then. The other thing about NASA that made it different is that I think it's the only government agency, and this may be true throughout the world, where people didn't have to work there. They actually could work and make more money in the private sector. They choose to be there. Many people who work for governments work there because that's the best job they can get. That was not true with NASA. There were aerospace engineers, computer scientists, energy scientists. They could work other places. So that gives it a certain sense of pride, which also sometimes works against knowledge. Anyway, that's what makes it a different place. And why I was ripe for knowledge management. So this fellow, Ed Hoffman, who's the hero of my little story, I had him do a presentation. I said, Ed, NASA's gone to the moon. They sent satellites all over the universe. I said, they must manage knowledge. How could they not? I mean, dogs don't do this. God didn't make it happen. How does it happen? He said, well, people manage it three ways. They have a lot of conversations with their friends, with the people in their practice. They talk to the local people who do what they do. They don't talk to other people, but they talk to their own little groups. After that, they talk to people in their networks. There are 14 centers in NASA, separate centers in the United States. The one everyone here, Houston. Houston, we have a problem. That's Cape Canaveral, where the rockets took off. But there are 12 others. There's one in California, Caltech, or the Jet Propulsion Lab, which is very, very complex work that the Nobel Prize winners in Caltech work at. And they don't talk to each other. Sometimes they do, but generally, their own little separate silos. So people have networks they develop. The longer you're there, the richer your network. So they manage knowledge through conversations, through networks, through reading. But that was it. And relationships with universities. Unsystematic, uncoordinated. Is that an optimal way to do something? It worked, but it's deeply suboptimized. You waste a lot of time, and you don't know who's around the corner who might really be able to help you. There's no way to know that. There's a radical innovation that occurs in a center. There's one in West Virginia, for example, and it sticks in the United States, out in the country. If anything happened there, no one ever learned about it, because no one wants to go there. So you'd never hear about it. But it could be something useful, but you'd never know it. So it's unsystematic. Organizations can exist, not managing knowledge. That's one of the problems we have with knowledge management. You can run an organization without it. People who exchange novel but in a very serendipitous, unorganized, undisciplined, and unsystematic way. But it works. People do. The world's gotten by without a lot of that. It's just better to manage the knowledge. Manage it in the sense that's worthwhile. I don't mean top-down management. But I mean, doing what you've been talking about, what we talk about here. So I ask that happens.  These people are very set in their ways. They do have Nobel Prize-winning scientists. They're not going to change their behavior, because you tell them to. You know that, and I know that. How are we going to do this? So he hired me as a consultant, and eventually I became the main consultant to NASA. And knowledge, not that. I don't know anything about physics. It's about knowledge, believe me. I couldn't pass calculus in high school. I'll take another term just to pass it. But Ed Hoffman was an odd duck, and he has another valuable lesson. He has a PhD in social psychology. He's a social scientist. And when they hired him, many people said, you must have been hired by mistake. What are you doing here? I'm not kidding. They thought he was...  That's sort of a nasty sort of thing. And he got tired of explaining, well, there's some value. We do know something about human behavior. There's something useful to know about how people act, but they didn't really buy it. Over time, he has a very affable personality. He's just a friendly man. And over time, he built up networks, and people stopped asking him that. But because it's Dr. Hoffman, people always assume there was a PhD in physics. After a while, he didn't say no. He just nod. Made life easier. But he said, I can get things done now. I've risen up enough in the hierarchy that I can get some fun there. He said, what are we going to do? This is really a somewhat of an intractable problem. I should have given it to you for your projects. What would you do in a situation like that? So we started. We began to think Ed and I share a tremendous belief in the power of stories. He had it, and I, both of us came from the same source, that he grew up a mile away from me in Brooklyn, New York. And we each grew up in a tough neighborhood. There's a lot of fighting. None of us were good fighters, but we sure could talk.  They leave you alone. So we'd make up stuff. And we realize stories rule the world. They're the most powerful. We all live by stories. We live by giant stories. They're called metanarratives, like religion. Or science. Those are enormous stories that explain things. Religious, and I'm not saying one's better than the other. I'm sort of agnostic about those things. Religion explains the universe. Science explains the universe. People, those are metanarratives. That paranoia explains the universe. We all live by, so we enact stories.  People kill each other over stories. I was at a conference once in Hawaii about ten years ago. I gave a talk and there was a professor there from the university in Serbia. We're having a lovely talk, having coffee and all. And another man walks by who's also at this conference. And this guy says, do you know who that is? I said, no, no. He says, that's professor so-and-so. He's a croat. He's from Croatia.  His whole face contorted. Do you know him? He goes, no, I've never met him, but I hate them all.  Maybe some of them aren't bad. How do you know them? He said, in 1386, do you know what they did to us? I said, man, that was 700 years ago. I've been to Israel and the Israelis tell me that God gave them the land 7,000, 10,000 years ago or 8,000 years ago. And the Palestinians tell me that they got the land that long ago.   They're not something like. How come I like that? How do human beings get that way? I'm sorry that fellow isn't here, the strength physicist. He loves this sort of stuff. But I've read theories, and I think this is correct. When human, homo sapiens were in the hunter-gatherer state.  Those people who could explain to others how to catch an animal would have an advantage. And if you could understand the story and act on it, you'd have an advantage. I think there's an evolutionary bias towards telling and understanding stories because it was the way to communicate how to survive. Your child is very sick. You could take the bark of a tree and boil it and drink the water. It's like a aspirin. Someone invented that story. It was reliable. It worked. So I think we've evolved.  Even the most people sometimes are skeptic about stories. Then I heard Richard Feynman, the great Nobel Prize winning physicist, said he thinks stories rule the world. That's all I said. It's good enough for him. It's good enough for me. So Ed decided to have NASA forums. We're going to try this. NASA forums where the leading scientists and engineers at NASA would tell a story about something, an innovation that they worked on. Hopefully it would inspire other innovations. Well, we thought this was the cat's meow. One of you said I keep using American terms. The cat's meow. That means it was great. So we thought that we'd call it the master's forum. And we booked a room, a conference venue on one of the sites. We picked an attractive NASA place in the near New Orleans. So if you like drinking, you can go to the conference and then go get drunk in the evening. And we invited some very senior people who had really contributed innovations, technological or organizational innovations. Well, they came. And we got quite a few people to attend because these people were famous throughout NASA. We didn't realize that engineers couldn't tell stories.  We just didn't recognize the fact that they think stories are about the three bears or a Goldilocks or a Rapunzel. They didn't realize.  And it was a disaster. Even though what they said was true and interesting, no one people did their phones. It was awful. They said, if we do this again before we quit, we have to try this again. We have to teach them how to tell stories. Ed Hoffman, having a great sense of humor, says, you do it. I'm paying you, you do it. What do you mean me? How could I teach? How could I? Let's get professional. No, no, we don't have the budget. You have to do it. So I had a friend who's a writer, a writer of fiction in the town I live in. He and I undertook to teach the engineers how to be storytellers. This may have been the most difficult thing I've done, actually. Outside of raising children. It would be number two. So for the next masters forum, once again, we invited some very good people who've done some, one was an astronaut who actually Gus Grissom who actually has been in space. And we said, guys, we have a little, not training, we'd like to give you some advice on how to present your ideas. So what do you mean? Don't you think we know what we're talking about? I said, no, I know you know what you're talking about. But yeah, I'm in the most humble manner possible, the most modest thing. It's the way you speak sometimes, doesn't have the impact of an entertainer, let's say. We're not entertainers.   There was a Canadian communication theorist. People don't remember him now and they're Marshall McLuhan. Have any of you ever heard of him? Marshall, yeah. You have to be old to know who he was. But he was a hot ticket years ago.  It's true. So we got the first guy and we taught him how to tell a story. He said, tell us about your grand, guy had grandchildren. Tell me about your grandchildren. And he started talking. I said, can you merge it? You know, all stories have the same structure. If you ever have to teach someone this. Aristotle wrote about this. 400 BC. It's exactly true today. All stories have an ABC structure. There's a state. There's a disruption to the state and there's a new state. That's it. There's sometimes a hero or a heroine. Sometimes it's a good story. Sometimes it's a disaster. But it's only that. Once upon a time there was a kingdom and everyone's happy and singing. Then a villain comes to the kingdom. And then the town or a hero or a heroine kills the villain and everyone's happy and maybe they feel better about things. Lord of the Rings. The Iliad and the Odyssey. You name the story. It has that structure one way or the other. They all do. They're all cultures. So we began trying to teach these engineers how to do this. And it was slow when they said, wait a minute. I said, just tell it this way. Don't argue all the time. Big this guy. And they slowly began to do it.  So when one of them got on, I just pulled the plug. I wouldn't let him plug it in again. I said, you're on your own. You can't use this anymore. So I pulled the plug. So he can't use PowerPoint. What do you message?  And they did it slowly. And they saw the audience liked it. They stayed awake. Now these stories were pretty complex. Some of them really dealt with rocket science, deep issues in physics, deep issues in rocketry and engineering. But you could tell it as a story. Once there was a rocket, the rocket didn't work. We fixed it. Now the rocket works. I mean, that's what it was about. Everything else is detailed. Slowly it caught on. Slowly. So the next time we had a massive, we tried to do it twice here.  It was the Jet Propulsion Lab. It's near Los Angeles, near Caltech in Pasadena. So everyone wanted to come. And people began, we began to get more requests to come than we ever had before. We had it like this. We had to turn people away. It became popular. And after a while, they didn't even try to use PowerPoint and they got a little competitive. Hey, I kept them awake longer than you did. People got competitive. Now they had to show, sometimes people had to show formula. They had to show pictures of things. Make no mistake. I mean, we're allowed, you have to show a picture of a rocket or what, but just put in words and reading them. It's an enemy of learning. So it was very, very different. And it worked. And it gave Ed Hoffman a tremendous boost. If you want to start a knowledge program, do a pilot and have everyone love it. You'll get your budget. Don't start with a bang. Don't start with, we're going to roll out knowledge management. Generally, you're better off taking a little bite of the apple. Slowly doing something like that. So that was a huge success for him. The other thing that worked for him, and it can't, sounds like I told him I'm talking about, but he would tell stories about the success of knowledge management in other organizations. He'd go to these conferences and we'd hear about how well Shell is doing this. Toyota. He'd pick up from these firms how well the knowledge management program worked. Nothing succeeds like telling managers or executives another company's doing it well. Nothing. And tell it as a story. If you have to change one or two details, go ahead. You're doing the right thing. Don't worry about it. Don't be married to silly versions of the truth. Shape the story in a way to make your case. And tell the story with emotion and passion. Don't speak like a machine. It never works. There's a very good book about this called Made to Stick. Made to Stick. There's a picture of duct tape on the cover. By a man named Chip Heath, who's a professor at Stanford. But he wrote, how do you get ideas to stick so that when you tell someone an idea, they remember it? And it's a good book. It has five principles. One is tell stories and another is speak with emotion. Speak with passion. People respond. They stay awake. Don't do it via screen. Don't do it on Twitter.  Speak to people. Look at them. And frankly, I can do this naturally because I've done a lot. Look them in the eye. Don't look at people when you speak to them. It'll stick. They'll remember it. It's a very good book. It's very readable, although he's a Stanford professor. He could write English. So Ed began to do this. He'd go to the senior people at NASA who were still skeptical. And he'd say, let me tell you what Shell is doing. Let me tell you what the Russians are doing in rocketry. Let me tell you what's going on in China. What Elon Musk is doing. That stuff caught on as did the masters for him. He then did another very clever thing, which we learned from a few other organizations. He made knowledge visible. This is a useful tool. I didn't mention it the last talk I gave here because I was saving it for this. NASA has these 13 centers. Those centers all specialize in different forms of knowledge that you need to do rocketry. But people weren't always sure beyond the simple words like software or rocketry. What was in those centers? What sort of knowledge is there? Where is it? What networks? What libraries? He made a map of NASA's knowledge. A map, a physical map, the size. He, myself, and a couple of cartographers did it. And we handed it out. We had made 200. Nicely printed. They went with the director of NASA. The man around says, I want all 200. Go make another thousand. And he took them all. So we made another thousand. He wanted it. He could have it. People loved it. They hung it on the wall. No one had ever told anyone what was in those centers. What actually goes on there? Who were the people involved? Where were the networks? No one had ever done that. No one. I knew a woman who had the job of being a knowledge manager at American Express, a firm that does not have smart people and is just run by for money. But she got this job and she wanted to do something interesting. They had 14 data centers in American Express. It's a big place. It's a big thing. No one knew what was in any of them. People said, I think that's in Sri Lanka, the data center. But I'm not sure what they do know. So she spent four months and did, again, a map, a knowledge map of the data centers. After it came out a week later, she was the only person in her whole unit who ever got a note from the chairman of the board ever. He never left his office. And he said, this is really good work. Thank you. And she got a double promotion. Making knowledge visible. Do something small. Do something sharp. Low cost, high impact. What they call, probably the term is now famous, but Malaysia, once there are two projects there, they call it, go for the low hanging fruit. The mangoes you could just pick off. The low hanging fruit. Don't, I'm going to manage the knowledge of the whole enterprise. No one can. That's really setting yourself up to fail. I'm going to manage to do something low. Make a map. Have a forum where people tell stories. All these things were very, very successful. It really, so after a while, the US government called in the head of NASA and said, you know, we've been told you can't go back to the moon because nobody knows how to do it anymore, which was true. They didn't keep the records that well. Everyone retired. And they said it would take us two years to do it again. The government told NASA a bit of spectacular hypocrisy. You should manage your knowledge better. But the government didn't do it at all. It's remarkable. So the administrator had to say, yes, we should. Yes, we'll do it. And he turned to Ed and said, you have to be the chief knowledge officer for all of NASA. I don't want that. That job's the living death. As soon as people hear that I'm the chief knowledge officer, they're never going to work with me again because they'll think I want to control their knowledge that I'm big brother. You do this. You do that. What do you know? Now, and he was a friendly guy. People liked him. He had been there 30 years by then. He says, I don't want to do that. As soon as you say you're from headquarters, people, they don't want to talk to you. He said, you've got to do it. Our budget depends. We just have to do it. The president even wants you to do it. Once it's done, I should say. So he took the job. And the first thing he had to do, and this is, again, something used for those of you who work in organizations that are geographically dispersed, even a little bit. It's an important lesson. There are a number of models you can use. If you're trying to work with the knowledge in your organization, you need a governance structure. I told you that last time. Nothing happens without governance. Nothing. Everyone will say, oh, he'll do it. I'll do it tomorrow. Nothing happens at all. So what sort of governance structure works best? Well, there's not one model fits all. It depending on the country's culture, some of you mentioned this before, the region's culture, the sort of industry you're in. So we found there were four or five models of governance extant in the world, existing in the world. And I, because I like history of that, I gave them historical sort of names. The first was feudalism. There are models of knowledge management where there are lords, there's the king, and there are peasants. And there's the lord of knowledge. And she pays money to the king of knowledge, but the peasants just produce the knowledge and get nothing back. It's feudalism. Now that's a common model. There's enlightened despotism. Fancy word. Joseph the second, you had some enlightened despots in Austria. They helped build the city, actually. You have a very wise, smart person, but they were despot. They run the show. You can have unenlightened despots, just nasty people saying, I'm the knowledge officer. You do what I say. You can have pure autocracy, pure anarchy. Don't do anything. I have the job. I'm just going to take an apple that you managed to knowledge. These are different models. But the model that we thought was best for NASA, and I would defend this for a number of organizations, is the same model that Russia and the United States have for governance. Federation, the federated model. There's a coordinating effort in the central government, it's coordination. It's locally governed with the coordinating function. Now, sometimes this doesn't work so well in various countries at different times. It becomes unfederated and a despot takes over. But generally the principle, Ron was talking about, the principle is a good one. So NASA 13 centers each center at its own chief knowledge officer. And it happens, coordinates their work. He helps get budgets. He gives advice. He finds speakers or consultants. These guys are pretty busy. But he also gets to learn the ground knowledge of dispersed organizations. If you're going to manage knowledge, you don't just want the official documents, believe me. You want what the U.S. Army calls ground knowledge. The knowledge of the worker doing the work. That's really what you want to understand. Even if it's tedious to you, that's what you really need to do. You cannot ignore that. When you ignore that, you become vacuous. You just began talking words about words. It's just flighty and gaseous. You really want to know. So if you have knowledge officers working on the sites, working in those centers, they are much closer to the work. What do you know in Washington? I've seen many, many heads of organizations. You see it when they broadcast on the U.S. television. Hearings with senior people. I'll give you an example.  So we have a big bank in the United States, Wells Fargo. And it was run by thieves. It was run by people who were crooked. And they came on television, because Congress called them in, and they said, oh, we knew what was going on with the bank. We don't understand what happened. These are people who never, ever step into one of their banks. Never. They sit in the offices. They have offices. They have a nice life, and they talk to one another. That's all they do. And that happens to a lot of it. Hierarchical types of management. Knowing if you want to know what's going on, where you work, you have to be there. There's no substitute for being there. None. You've got to get out of your office and look how people do. So here's this federated model, and it's worked very, very well. I must say, it's the most successful knowledge project among government agencies. I don't know all of them. At least in the United States, it surely is. And it gets, because their budgets, they were scrutinized by Congress, but they get approved. Ed retired last year, and he and I do some projects together. He just got taught. 32 years working for government. Stay much longer.  But it still goes on. It's sustainable, and it works very well. So some of these lessons, again, I'm not telling you this because it's an interesting story, though it is an interesting story, but there are quite a few lessons here. You could learn things from. Big, complex, smart organizations that seems to be what most of you work in. What do you do? Everyone thinks they know everything. Everyone thinks they're very smart.  You're hurting cats who have high IQs. What do you do with these people?  Get out of here. What do you think you are? And that's really what people might say. You have to be, you have to have a good personality for doing this. I've interviewed people, sometimes firms ask me as a consultant, can you interview five candidates to be the chief knowledge officer of our company? And you meet people, and they went to this school or that school, they're smart, and I said, this person is never going to do it. They have the personality of a log or a tree. They're never going to give in to anything. They're just walking smarts, but they have no soul, no emotions. I said, forget it. You have to have a certain personality, persuasiveness, empathy, speaking with imagination and care. That's the sort of people you want for this job. Not all jobs need that, but I'd say working with knowledge, you surely, if you're going to try to persuade people to work with you. You can't demand someone's knowledge. You have to sort of persuade them. Please, we'd like to work together. The knowledge of the group is much greater than the knowledge of any individual. Much greater. It would make us all great. It would make everything much better. But you have to persuade them. You have to have certain personal attributes. Not everyone can do this. It doesn't matter. You also don't have to know about knowledge management to try it. You could learn it. I would say in a week I could teach anyone enough about knowledge management to do this. So could a lot of people. It's not that hard. It's doing it, the actual enacting it. So don't look for people who've done very experienced or done that. It might be useful, but I'm not sure it's that important. Don't give it to anyone who's less than 10 years in the organization. The networks won't be rich enough or strong enough. You want people who've been there, who have friends, who help them. You really want to be there for a while. Maybe not 10. I'm just saying that. But at least five. The idea of management consultant, I'm sort of guilty of this, is that we'll come into your organization. We don't know anything about the industry. We don't know you, but we'll solve your problems.  Life isn't like that. Really, to understand an organization, you have to be there. Not so much read about it, you have to be there. Or else, be a very good listener and understand what's going on. So let's see. I think those are the main points I wanted to make. I know it's sunny out. You want to go... Okay. Why don't you... Any comments or questions? We'll let you go a little bit. I'll let you go a little bit earlier. Anyone want to say anything? Any comments, questions? Anything you'd like to add to this? In the back. So, I like the NASA theme. I think that's really interesting and a great example to kind of use in nuclear. But where are they now? And you said the guy that was running it is retired and moved on. So what's happened since that? And have they managed to, I guess, keep going in a successful direction? They're announcing next week the next chief knowledge officer. They interviewed six of the sort of center knowledge officers for them applied for the job and another person. And they're going to announce it next week. They have a new person. And all of those people have 10 to 15 years' experience at NASA. And they meet these requirements. I think Ed was particularly good at this. But they'll meet the requirements. Yes, the program continued. If it didn't, it would be really tragic. It really would be. Yeah, they're continuing it. They really... Congress watches them. They want them to do it. The directors want them to do it. And it's done under the radar. I mean, they don't make a big deal about it. I said, why don't we write a book about this? But they don't really want to do that for reasons I don't want to go into here. But they don't want to write about it. They've talked at conferences. But yeah, it's still ongoing. And there are lessons for everyone here. Again, I didn't want to just talk about a story that is sewage and errors. It's true for good lessons that are fungible, that are transferable. And just a comment a bit out of line, but it came to my mind. And now in my organization, they are talking a lot about the knowledge illusion, because apparently overconfidence and thinking that you know something well but you don't know it, is the basic reason for accidents and these kinds of errors and mistakes. You know, one of you was talking before, I was, I shook, he's not here. He said something that's so true. There was a French philosopher named Montaigne who lived in the 17th century, a very wise man, a very wise man. He said, every man over 50 who's successful never listens to anyone again. That's one of the truest things I ever heard. Montaigne was a big influence on Shakespeare who also said things like that. But it's true when people, there's a success trap. You know, they're successful. They say, I don't have to listen to you. I'm successful.  We're all prone to these sort of things. I mean, it's not, I don't want to pick out people. So you have to be persuasive. It's tricky. I mean, there are things that, it strikes me, I think some of you would agree with me, that are really important for success in life that I never, ever mentioned in school. At least not now. Persuade, how to rhetoric. It used to be taught in schools in the 15th century. How do you frame an argument? How do you speak so others listen and read by your arguments? Rhetoric, gone subjects. I live in a town full of engineers. The whole town is full. I'm the only one who's not. Whole towns, like Engineerville there. Because they're near a big MIT laboratory. And the schools make everyone in the town, all the kids, take a year of calculus including my own two children and went to the school. Someone did a study and found that less than 0.001% will ever think about calculus for the rest of their lives. But they make it required. So I wrote a big piece for the school board and said, why don't you make calculus elective, not required, and make rhetoric required? Because they'll use it every day of their life. It was like speaking Greek to a chicken. Man, they thought I was crazy. They said calculus, it's STEM, it's really key. They said, well, it's key for some things. But most of us, I don't take a year of it. I don't even know if the word means anymore. I don't know, all my friends took it. It gave me a migraine headache and I had no idea whether I forgot it immediately after getting a C in it. I am not against that. Of course I'm not. Mathematics is crucial, but it's not for everyone. Rhetoric is what we use in life. How do you persuade people? How do you make a case? How do you say things? I mean, so it's really very, very, I mean this is getting off top. But though it's part of the elements of rhetoric, one of them was knowledge. This is in the, there were seven things. If you went to the University of Bologna in 1430, this is what you'd learn, rhetoric and knowledge.  It's truer now than it was then. That's it. Okay. Enjoy the sun. Enjoy whatever else you're doing. And we'll see you later. Okay, thank you.


Live from New York, it's theCUBE. Covering Big Data New York City 2016. Brought to you by headline sponsors, Cisco, IBM, NVIDIA, and our ecosystem sponsors. Now, here are your hosts, Dave Vellante and George Gilbert. Welcome back to New York City, everybody. This is theCUBE, the worldwide leader in live tech coverage. Chuck Yarbrough was here as the senior director of solutions, marketing, and management at Pentaho. Good to see you again, Chuck. Thanks for coming on theCUBE. Hey, thanks, I appreciate being here. It's always a pleasure. Yeah, so big week, everybody sort of aligns all their product announcements and a lot of marketing activity around this big data week, big data NYC strata plus a dupe world going right around the corner. What's new with Pentaho? Well, I guess the new thing is we did announce a big data enhancement release yesterday. So it went out, basically it includes a whole bunch of things that we've added into the Pentaho platform to make big data, particularly Hadoop easier. The, just some of the things, additional spark enhancements. We can talk a little more about what that is, things like Spark on SQL and really enabling that data pipeline that you and I have talked about so many times, easier, faster, better. We added some support, additional support around Kafka, our metadata injection, which is something I think we talked about the last time I was on, metadata injections, really about automating and making transformation processes, think about ETL type processes, making those highly dynamic. And we added probably the biggest thing is around security, Hadoop is a challenge when it comes to security. So we've added some additional functionality around Kerberos, which we continue to extend and make it better and also integrated with Apache Sentry. So some of the things that we've got going, we've also made it easier and more effective to ultimately get data into Hadoop. We've looked at Hadoop for a long time. Our customers use it, they love it, but it still tends to be hard. Well, the Pentaho story has always been about taking a lot of this complexity and building out a data pipeline that can be operationalized. That story hasn't changed, but what you're saying, I think is that you can, as the industry keeps coming out with new innovations, your challenge is, okay, which ones do we pick and include into that data pipeline, if you will. So how do you do that? How do you decide? How do you prioritize? Well, great question. Largely, it's customers, right? What are the customers demanding? What do they need to do? Spark, we've been working with Spark for a couple of years, several years. We've added different types of functionality and in the latest release, we're making it easier to bring in Spark on SQL, into that data pipeline. Now, why? Partly because all these new technologies that come in, they're great in and of themselves. They do think like Kafka, it's great pub sub kind of concept. Takes some skills to work with, but to productionalize that in an enterprise, that's where the challenge is. So bringing that into the data pipeline and allowing that to be another data source, another process that can be managed, orchestrated, and operationalized, that's what our customers are asking for. Help us make it easier. Spark on SQL is an example, right? It's easier in many ways than dealing with what some of our customers have been dealing with in the past, with Hadoop, MapReduce, things like that. So what are customers' choices generally? They could sort of become experts in all these different tool sets and build out their own. Some people do that. They could acquire a platform like yours. The cloud increasingly is becoming an option, although people play in the cloud as well. Help us understand the landscape of options customers have. Yeah, good question. We have supported cloud for cloud environments for years, continue to do that. We see a hybrid approach, right? So we're not seeing a whole lot of people doing everything in a cloud environment. They'll do some and keep some on premise and other third-party locations. I think the real goal and the thing that we're hearing most from our customers is help me get data into the data lake. Help me ingest it easier, faster, and do it in a production kind of way. Simplify that process. Give me greater access to the technology to manage that data going through the pipeline and help me secure it, because let's be honest, you know, that's always been a challenge within the Hadoop world. And it continues to be a challenge. It's not the easiest thing to manage. So we're trying to help there and then ultimately do this in a way that keeps your investments future-proofed, right? So what you're investing in today, let's leverage that into the future because things are going to change. Execution engines are going to continue to evolve, become better, faster, you know, with more functionality. That's what we see. So you mentioned security a few times. So what's the secret sauce to securing the data pipeline, right? Hadoop, by its very nature, is data's everywhere. And the data sources are many. So how do you, you can't just put a mode around it. It is everywhere. So how do you secure the data? Well, that's right. And so, you know, that's why we've invested a lot into what our customers are asking for, which is extended Kerberos support. One of the things that we've done is we've made it much easier to have multiple users accessing the Hadoop cluster and be able to recognize all of those users as opposed to what many organizations will do, which is, you know, just go down to one and only have one user hitting that. So little things like that, you know, it may not sound like the most incredible thing, but the reality is really hard to do. It's really difficult. It's a challenge. So, and then Apache Sentry, you know, being able to really control access to specific data assets is, that's what enterprises need. That's what they're asking for. One gets the impression, listening to how far the pipeline has gone, not in terms of what you've built, but in terms of what's being consumed by customers, that they're at the stage where they're sort of hydrating the data lake, you know, and then the next step comes to, let's do some analysis on it, and after that, let's operationalize that analysis. What are some of the barriers to getting to that analytics step right now? Yeah, so it's funny, you called it hydrating the lake, I like that. I'm actually presenting at the conference tomorrow a session entitled Filling the Data Lake, right? So it's all about, and this is a challenge we're seeing. It's all about getting data in. Getting data into the data lake, easy, right? You could do it probably 15 different ways. There's tools, there's code, there's all kinds of things you can do. What people are asking for is help me reduce the insanity, right? Help me get a handle on what I'm trying to do and make more sense out of it. Let me give you an example. So particularly in the financial services space, in fact, we called it out, one of our customers, US Abel, is an insurance company, and in our press release, we talked a little bit about that. They had a problem where they needed to onboard data into the data lake quickly and effectively, and you've got thousands of customers, you've got thousands of different data types, data sources. I've got a similar situation with a bank in Europe, couple of banks in Europe have the same situation. They literally have data sets that are as simple as CSVs. The problem is, every CSV is different. So if you think about the traditional way of onboarding data, you could do it through code, you could do it through a tool. If you use a tool, like a data integration tool, like Pentaho data integration, typically, you would have to create a transformation process for every file, and that's how we've always done it. But with what we call metadata injection, we actually allow the process to be intelligent, to interrogate that data set. Every data set being different, it will interrogate it, figure out where the metadata is, or if it's not in the file, it'll actually consume metadata from a third source and apply it to the transformation at execution time and land the data in exactly the format you need into Hadoop. Now, why is that a big deal? Again, loading data is pretty easy, but it's a big deal because when you have 100 of those, and you have to maintain all of those jobs, that's a pain. When you have 6,000, that's a huge pain, and that's what we've heard. And I can tell you, we've got one customer that says, it takes to do a simple ingest process, takes about a day to create it. So it's not that big of a deal. Times 6,000, that's a big deal. And it costs, and I think these numbers are a little low, but they described it as being $1,000 per, production-alized load process. That's real money. What happens with the wonderful thing about data warehouses were, they were so curated, it was like Louis XIV's garden, it was like beautiful. But at the same time, the data lake was, I'm going to put, it's the compost pile. Now, is there a way to marry the best of each, where the compost pile has everything I could possibly ever need, but I need to be able to discover it and navigate a little more easily. Is that something you help with, or is that something you partner with to make the data lake transition better? So we do that really well. Now, we will partner with others around some types of data quality management and stuff, but your point is really well taken, and I'll tell you, I talk to people all over, and I ask them about their data warehouse. I'm an old data warehouse guy. And so I ask the simple question, how perfect is your data warehouse? And usually there's a little bit of a chuckle, right? Because people are like, yeah, well, it's not always 100%, it should be, but it's not. That's the real world. But to your point, it is highly curated. It should be perfect. The data lake, by definition, what did we say when Hadoop started coming around? We said, hey, this thing's really good, you could build a data lake. And all you have to do is load all your data in the truck, back the truck up, and dump it in the lake, right? What did we create? A dump, right? I mean, we use those terms, I use those terms. It's like, yeah, just dump your data. In my mind, I always thought, well, I'm going to think logically about doing, I'm not just going to dump it and ignore it, I'm going to do some sort of management of it. Well, that's what we're seeing. That's why so many people are talking about data lakes, not always in a positive way, right? I think of a data lake as the clean, pure, pristine lake that I want to jump into. I can consume that data, perfect. Many people think of it as a swamp. And so Pentaho, with our capabilities to ingest, simplify that process with the metadata injection, make it highly dynamic and effective. So one transformation process can handle literally thousands of very disparate data sources. But at the same time, to be able to manage that data, to know more about it, you mentioned, okay, well, so we can get the data in and then we kind of ignore it or forget it or let it dump there. And many people want the source data to go in. And we're seeing that, lots of organizations. Let's say it's as simple as a CSV file. Copy it, put it in, piece of cake. The problem is oftentimes to make it more consumable, we want to convert that. We want to conform that into something that is more curated, right? So what we've seen is a lot of customers have adopted a process where they'll take that file, land it in the lake, and then take that data set and conform it into, change it into a Avro form. Avro or even Parquet. So depending on the use case, right? But these are things that Pentaho is supporting, part of what we're announcing in this big data enhancements release. And it's all about operationalizing that, making it easier for the enterprise, making it easier for the developers and the users. So it's not necessarily Louis XIV garden, but it's got some kind of structure to it that then can be turned into value. Is that what I'm hearing? Exactly, exactly. If you're not paying attention to what you're dumping, what you're putting into the data lake, you're going to get a swamp and you're not going to get the value out of it. We're out of time, Chuck, but I wanted to give you an opportunity that you have solutions in your title. So how does Pentaho think about solutions? Are they solutions to help people sort of organize the mess in the dump? Talk about that a little bit. Yeah, no, thank you. It's, I've got the best job at Pentaho, best job in the industry. My team looks at how customers use our products and how our products fit into the entire ecosystem. And then we look at what's repeatable. And in some cases, it's purely just a repeatable design pattern that Pentaho can enable, such as filling the data lake. That's something that we can deliver as a solution and customers can reap benefit quicker, faster, and cheaper than having to build it themselves. In other cases, we work with our parent. We were acquired by Hitachi Data Systems, or Hitachi Group. They have some very interesting data products that we can integrate into. Plus, there's third parties where we can build solutions to again, simplify, automate the data pipeline, give customers more value, easier, faster, cheaper, all of that. All right, Chuck, well thanks for stopping by theCUBE. It was great to see you again. Hey, thanks so much. I always enjoy it. Our pleasure. All right, keep it right there. Everybody, George and I went back with our next guest. This is theCUBE, we're live from New York City. Right back.


So Jane, Belt and Road has been described by many China watchers as very much linked to the sort of China dream. Do you think China's dream can become Australia's dream? Look, China's dream is fundamentally about the rejuvenation of the nation, and I guess ultimately returning China to what its leaders see as its rightful place at the centre of the world. I see that primarily in economic terms, not necessarily about it wanting to rule the world, but either way the idea that Australia and China can share exactly the same dream seems pretty unlikely to me. Because I mean, it raises the question of whether any country really has a sort of rightful place in the world. It tends to, these things tend to wax and wane. I would have thought that, you know, Belt and Road, although it's been described as a great big sort of geopolitical experiment, or a sort of transnational, even a transnational coalition, Belt and Road does look in many respects like a bit of a hodgepodge of different projects for sort of different purposes. And a lot of China watchers, I think, find it rather difficult to untangle precisely what Belt and Road is and what it's for. What do you think it's for? So let's think about the most important thing of the China dream. As I said, it's not about China ruling the world. It is about the Chinese government providing economic growth opportunities primarily for its own people. And what they see is the best way to do that is a grand or transnational development strategy that brings its own developmental experience to countries in neighbouring regions, offering them prospects for economic growth that then also trickle down back at home. So in the first instance, I've always thought of it as an economic strategy and it's one that makes really good sense again from China's perspective. Their whole of the last 40 years since the reform and opening up commenced under Deng Xiaoping has been about economic development and they've always used regional development strategies to promote development within China's own borders. They've also integrated very successfully into the global economy and the Belt and Road initiative has the potential to combine both of those two things, bringing what they call win-win economic development both for China's 1.4 billion people and essentially for the rest of the world as well. But of course other people see it in a different light. The most the starkest contrast of it being an economic development strategy is that it's purely geopolitical. That is that China is using this to gain power and influence in neighbouring regions and if you take that to extreme to possibly take over and control the world and all of the people in it. I think that's going way too far but there are elements of control and influence that come out of being the largest economy in the most influential economic actor in the region and particularly when you're laying down infrastructure and telecommunications networks that are linked to large Chinese enterprises, state owned or otherwise that are in turn linked in ways that we don't fully understand to the Communist Party of China. I mean I think it's really interesting you describe it as primarily an economic venture and I can see from the perspective of an economist that would be the case. Unfortunately I'm one of these nasty people as you know who's trained as a sort of geopolitician and one thing that strikes me is that there's never really been the expansion of economic influence by any type of major power whether it's the United States, whether it's Great Britain whether it's other European nations or whether it's China at the moment that doesn't come with it a hell of a lot of political influence. So I think from my perspective at least Belton Road is creating the building blocks for a sort of not domination of the world but certainly significant leverage that China has over a sphere of influence that's really quite large. One that spreads from basically Europe through to Central Asia through to the Middle East. The big question I guess is how much and to what extent China is able to project that within the sort of area that Australia occupies which traditionally has been a bit of a geostrategic backwater but suddenly becomes newly important because you have so much hydrocarbons flowing through from the Middle East the straits of Malacca and the sort of energy transit states around there. So the area towards Australia's north is becoming very interesting and that's potentially a site for Chinese leverage too. One of the things we've witnessed of course with the Belton Road loans is very much the approach of countries who are keen to sign up to it initially and then worry what happens afterwards. Will it create narrow development corridors or the types of benefits that Belton Road is supposed to generate flow on through to the rest of those societies? I think the answer on this is quite mixed. I think sometimes it has. I think many times particularly in Africa it has not done so but that doesn't really dampen the enthusiasm for many elites within just the general Eurasian region to get on board Belton Road mainly because it looks like investment that might be simply bilateral not really multilateral but investment that allows them to create jobs allows them to build infrastructure and allows them to solve many of the problems that they face. What comes next though is the big issue. I guess my question here would be to try and link this together what should Australia do? Should Australia sign up to the Belton Road? We've seen the Victorian government say that it was going to and sign an MOU should we be doing the same? Look what we need to do is understand much better than we do right now exactly what the Belton Road is about. So just to be clear even though I describe it as an economic strategy to a certain extent I see it absolutely as a geoeconomic strategy that is the use of economic tools to achieve geopolitical outcomes. It is still really unclear whether those geopolitical outcomes will be entirely benevolent as the Chinese government would like us to believe or whether it will have some malevolent attributes. Now a really good example of this is the discussion around the debt trap diplomacy it's had a lot of press. Our own former Foreign Minister Julie Bishop picked up on it and basically started talking about how Australia should compete with China in our sphere of influence already talking in very geoeconomic terms in the Pacific in order to provide infrastructure and she used the specific words roads that don't lead to nowhere. So the implication there or the insinuation is that the Belton Road is deliberately trying to trap countries into unsustainable debt and that Australia should come to the rescue. Do I think that's the right thing to do? Not in that particular instance. If you look at the research including research that's come out of the ANU of Donald Dornan and Rohan Fox they looked at all of the countries in the Pacific region to consider where their debt was coming from and how much China was to blame and they answered emphatically that debt trap diplomacy was an inaccurate assessment of China's engagement in the region. If that's the case then competing with China on infrastructure is the completely wrong policy response and that's why we really need to get the facts straight. If you know that money flowing in whether it's from China or anywhere else in the world as these two found is problematic because of how the host government responds and utilizes the funds not because of the fact that China is pouring it in then pouring more money in from another country is going to result in the same problems and there's an example of where you'd be much better off to cooperate with the host country and even to cooperate with China to make sure that any investment that went into the region found its way into positive efficient investments that could deliver positive economic growth to the region in the future. But in many respects it's not leading to positive long-term benefits in the Pacific isn't it? A lot of the times it's offered to regional elites to help them politically whether it's by building a new parliament building or building a new stadium or providing fast 5G Wi-Fi. Those are semi-infrastructure but they also come with it the expectation that those countries will tie themselves very closely to China. There's no suggestion for instance that as any part of Belt and Road that Chinese aid, Chinese loans don't have the expectations of warmer relations between those countries in China. So the Australian government by trying to pump equal amounts of money or large amounts of money back into the Pacific is in my view at least fighting with one hand tied behind its back because of course as a democracy we stress things like good governance outcomes in places in the Pacific where good governance outcomes are often not desired by the political leadership. So in many respects I think China has both the economic advantage in that it has more to spend but it also has the political advantage in that a lot of the nations in the Pacific region don't necessarily want the many strings attached development assistance that comes from Australia. And that's what puts China in such a powerful position and that's why we need to think very carefully about how best to use very limited funds our aid budget, declining over the last decade or so and use them in the way that's most effective for aiding development in the Pacific region. And so again if governance is the problem we channel our efforts into improving governance trying to stop China when they're the wealthier country far more powerful offering lots of money to people who really need it, we're just not going to succeed there I don't think. Oh no I completely agree with you mainly because regional trade architecture has kind of declined with the United States effectively abrogating its leadership of the trading space not just within our region but frankly globally. The interesting thing being of course like you know people say oh it's Trump's fault, it's Trump's fault, it's Trump's fault but let's face it had Hillary won had Bernie Sanders won they would have all pulled out of the Trans-Pacific partnership so effectively the type of open trade governance that we've been promoting for years and years and years since APEC and before is something that we have to spearhead ourselves with the assistance of perhaps Japan in many respects there therefore you know any deals we come up with a kind of TPP minus one with the minus one being the United States. Still better than no TPP at all. Still better than none at all, yeah. There are many who would say that support for the American alliance is hardwired into our DNA. Now that's a phrase I hate because it suggests that there is absolutely no time you ever swap best friends and it suggests that Australia will be wedded to the United States forever and a day no matter what the United States might do. Do you think Australia faces as Hugh White suggests a sort of China choice? Is it the fact that we are sometimes at some stage going to have to choose between our major strategic partner and our major trade partner? I mean I get the sense that the government or successive governments for a long time have tried not to have a choice. They've tried to make a series of little choices. But if it really push comes to shove do you think that necessarily Australia will be able should it even want to, to sign on as a complete enthusiastic supporter of Belt and Road without a hell of a lot of pushback from the United States? And on the other side of the equation do you think perhaps Australia can necessarily chart a path as a firm democratic ally of the Americans and not suffer some kind of punishment from the Chinese? How do we get that balance right? Well that's exactly the question that the foreign policy makers here in Canberra will be thinking about very deeply immediately after the election and I hope already now. I don't think Hugh White points to or forces Australia into making such a stark choice. He's really about how we steer that line to mitigate the line between our number one security ally and our number one economic trading partner as the relationship between those two superpowers becomes increasingly tense. It requires flexibility, it requires nuance, it requires sophistication and it requires a deeper knowledge of the complexities of both of those two countries. So as we move ahead that's the question that they're grappling with and I don't think they can make a black or white will do this all the time. We need to figure out where we need to compete with China, where we need to cooperate with them, where we should stand up and challenge them, figure out where that puts us vis-a-vis the United States and I would argue through that process carve out at least a slightly more independent foreign policy that enables us for example to stand up and defend free trade when our number one ally is crushing it to pieces. I look to be honest I couldn't agree with you more. Australian foreign security policy hasn't been particularly independent in my view whatsoever. What we have done however is we have in many respects locked ourselves into a series of preferences for the future. If you look at things like defence procurement for instance we're effectively locked in for the next 20 to 25 years. It's not an awful lot we can do. Where we can change the equation I think is where we make political choices. There was a famous story from about 2004 when Alexander Downer was foreign minister. You probably know this story when he was asked by the Chinese press what would Australia do in the event of a shooting war over Taiwan between the United States and China. Downer said basically the thing the newly minted foreign minister probably should say which was we would do nothing. We will be absolutely neutral. It was pointed out to him within 24 hours by the United States that Australians would be expected to fight and die under those circumstances. Now interestingly enough that has been very much the default setting of Australian foreign security policy community for a very long time. The fact that we're even having this discussion now and that we're raising the question well could Australia in fact be more of a sort of swing player? Because let's face it under the type of scenarios that are shaping out within our region as a middle power Australia should be able to make out like an absolute bandit. Middle powers tend to do that when you have a sort of bipolar configuration within your region you can play one major power off against one another and therefore avoid those hard choices. Whether we have the flexibility and whether we have the capacity really to think outside the square in the way that you're suggesting to be really independent in the types of choices we make I'm not quite sure. I tend to think that the alliance will be something that will be expected to uphold and possibly expected to do so at the detriment, financial detriment and trade detriment of Australians for a while yet. What I think we need to see and we're seeing it already here in Canberra is the people across the university I mean with China's rise just in the last few years there's been so many more conversations between security and foreign policy people like yourself and economists like me coming together and trying to understand and navigate and provide policy advice to government about how to operate foreign economic and security policy in this new era that we find ourselves in. What I'm talking about here is geo-economics and we both are. We're understanding the economics and security overlap in complex ways that none of us fully understand but we're sitting in exactly the right place to get that right in the years ahead.


Hello and welcome to this brief introduction to browsing C-Mort Portfolios through the new Open Register on the ALT site. First of all, you'll need to be logged in to the ALT main site in order to access the register. Once logged in, you'll see a link to the shared C-Mort Portfolios on the green menu on the left. Once you've reached the Portfolio Register, you can browse Portfolios by scrolling down the list, or you can filter by sector, for example HE, FE, School or Commercial, or search for Specialists as using the search box. To open a Portfolio, use the green open link on the right hand side. And you're free to start exploring C-Mort Portfolios. For more information about C-Mort accreditation and ALT membership, visit the C-Mort and Membership pages at www.alt.ac.uk.


So here we're creating the same cat struct we've created many times and we're defining two methods for cat and the way you define methods is it looks like a function definition but you put the so-called receiver of the method first in its own pair of parentheses before the method name. So this is defining a method sleep where the receiver is of type cat and inside the method will refer to the receiver as C though we're not actually using it in this particular method but we could. And then all the other parameters you put inside the parentheses after the name of the method but in this case we don't have any so we just leave that empty and the sleep method is just simply printing out zzzz and this method eat also has a receiver of type cat which we will call C and it has another parameter food which is a float32 and it's returning a float32. And when we call the eat method on a cat the method receives a copy of the cat in C and we're going to access the weight of that copy add food to it and that's the value returned. So down here in Maine we're using the colon equal syntax to declare a variable C and a type is implicit from what we assign to it because we're assigning a cat value to C here the compiler knows that this is a cat variable and here we're calling the method sleep on C this C is passed to C of sleep it gets a copy of the same cat be clear C here in Maine and C and the methods are totally unrelated they just happen to have the same name and this method called to sleep will simply just print out zzzz and here we're calling the eat method on C passing in also the float value 0.3 so C of Maine gets copied to C of the eat method and 0.3 gets copied to food and we take the weight value of this C in the eat method and add food to it and that's what we return so this should be 15.2 plus 0.3 that gives us 15.5 and that's what this returns down here when we use the reference operator on a cat variable what we get back is a pointer to cat so that's what the type of p is it's going to be a variable which is a pointer to cat and given a pointer to cat we can get back the cat at points to using the dereference operator and then we could call the sleep method on that cat and so that's actually what the syntax is doing the asterisk the dereference operator has a lower precedence than the dot so we need the parentheses here to make sure the dereference is done first and then we are calling the method sleep on the cat value returned by this expression but the go compiler as a convenience we don't have to actually explicitly dereference it'll just automatically do that for us so we could just write p dot sleep and the compiler will implicitly do this it'll dereference p get the cat value and then call sleep on that cat value which we got from dereferencing and same thing down here when we call eat we could explicitly dereference but we don't normally do so and go because the compiler will do it for us and this is also true if we want to access the fields not just methods like say we want to create a variable z here which is an int variable and assign the age of the cat in p so we could do dereference p dot age and that's getting the cat value pointed to getting this age and assigning that to new int variable z but we don't have to actually explicitly dereference we can just write this and the compiler will implicitly do the dereference same if we assign to a dereference so we could explicitly write p dot age equals nine but we don't have to explicitly do the dereference if we just left it like this the compiler would do the dereference implicitly again be clear strictly speaking a pointer to a cat is not something that actually has its own fields or methods but the compiler knows that and says okay you must mean to dereference and so it'll do the dereference for you implicitly the receiver of a method not only can be a struct type it can also be a pointer to struct type so here again we have the the same cat struct we just defined the same sleep method but now the eat method is defined to have a receiver of not type cat but pointer to cat and so when eat is called it's called not on a regular cat but on a pointer to cat and the rule is that a struct and a pointer to that struct share the same set of methods so having to find sleep on cat i can't define a sleep method for pointer to cat and having to find eat for pointer to cat i can't define a method on regular cat so if i tried to write c cat eat and it wouldn't matter what else the signature is like it could be the same parameters are different so i've just made like a and this returns a string or something totally different regardless because we already have eat defined on pointer to cat we can't also have eat defined for regular cat so the compiler would object to having both of those we could only have one and the reason for this will be evident when we look down here in main we're creating the same variable c which is a cat and we're calling the sleep method just like we did before everything's same so far but now when we call c.eat this is valid but the eat method is not expecting a regular cat it wants a pointer to cat so implicitly what the compiler is doing for us is we could write this explicitly but it just does this for us implicitly if we write c.eat it gets a pointer to c and that is what we're calling the eat method on and oops there should actually of course be the argument 0.3 in there and same down here now that's correct yes this is just shorthand for this over here the compiler knows this is not a pointer and it knows that only pointer to cat has an eat method not cat itself so it knows that we need to get a reference to c implicitly and down here we're again creating a variable p which is a pointer to cat which is holding a reference to the c variable and if we call p.sleep well again like before the compiler knows to implicitly dereference p because p is not a regular cat it's a pointer to cat it knows you need to dereference first and then it can call the method sleep but then down here when we call p.eat p is a pointer to cat and that's what the eat method is expecting as its receiver so so the value of p is simply copied to c directly with no dereference or or reference and inside the method we've changed things a little bit here when we access c.weight c is a pointer to cat and of course pointers to cats don't really have their own fields this is implicitly dereferencing c and then accessing the weight field of that and this assignment where we're taking the current value of weight and incrementing it by food because the c here in eat is now effectively a pointer to this variable c from main this assignment is modifying the cat value stored in c what was 15.2 here in c is now 15.5 anyway having modified c.weight when we then access it here in the return statement it's now 15.5 and that's what's returned from the method call and then back in main here after the call to eat when we access p.weight or in fact if we were to access c.weight it would be the same thing because p points to c we get the value 15.5 because the method call has effectively modified the cat that was passed in that's one reason why you would want the receiver to be a pointer rather than the cat type itself because when we receive a pointer we can modify the thing passed in if we just had a regular cat we wouldn't be modifying cat back in main we'd just be modifying the local cat inside the eat method and the change wouldn't be seen outside the method the reason we're not allowed to have a method of a particular name like say eat defined for both cat and pointer to cat but wouldn't create an ambiguity for the compiler but it would create scenarios where you you may end up accidentally changing how a method behaves because of the simplistic behavior where if you call a method on a pointer it'll automatically dereference or vice versa if you call a method a non pointer if necessary it'll get a reference to the thing if the method is expecting a pointer like imagine here if I could come and add a method on regular cat of eat and we'll just give it the same signature and now we just do something in there and now down here when we call c.eat well before it was implicitly getting a reference to see and calling this version but then if this were allowed you would expect this call to be calling this one instead so there would be a potential for creating new methods which would change what gets called from existing calls in a way that could be very unexpected and create problems so so because of this allows this convenience of automatically referencing and dereferencing when we call methods you wouldn't want to have methods defined for both cat and pointer to cat at the same time it would create accidents so if we can define methods on pointer types can those pointer types then also implement interfaces and the answer is yes and the rule governing this is a little strange the rule is that if you implement for an interface all of the methods of that interface for some type t for the non pointer type then automatically both t and pointer to t are considered to implement the interface but this doesn't go both ways if you implement all the methods of an interface on some pointer type t then only pointer type t implements the interface not regular t and in fact if you implement all the methods of an interface some on t and some on pointer to t is as soon as just one of them is implemented for pointer to t rather than t then only pointer to t will implement the interface so here a concrete example if we have this interface animal with three methods eat sleep and drink and our type cat a regular cat non pointer cat is implementing all the methods then not only does cat implement the interface but also pointer to cat will implement the interface animal and so down here in main if I create a variable of type animal I can create a variable of type a and assign a cat to it but it can also assign pointers to cat to it and that's also okay because both cat and pointer to cat implement the interface however as soon as any one of these like say sleepier if I make it have a receiver of pointer to cat instead of regular cat well now only pointer to cat implements the interface and this here would be a compile error regular cat we couldn't assign to a because it wouldn't be considered to implement the animal interface very strangely this doesn't affect what happens when given a cat or pointer to cat when we call these methods having defined all these methods we can call any one of them on a cat or pointer to cat and the go compiler will as appropriate either reference or dereference the thing as needed to call the method for the the cat or pointer to cat but it's a separate question of whether cat and or pointer to cat implement the interface and so as soon as any one of the methods is implemented on pointer to cat rather than the cat it could just be one it could be two of them could be all of them well then only pointer to cat the implements the interface and remember the rule having defined a method eat on pointer to cat we can't also define it on cat or vice versa given a particular method name it can only be implemented on either cat or pointer to cat not both so the only way to implement the method on a non-pointer type is to have all the methods implemented on the non-pointer type and this is the only way that cat will implement the interface but effectively whenever cat implements the interface and pointed cat will also always implement the interface why does asymmetry why does it not work both ways the answer for that is quite archaic if the rule did work both ways it would create scenarios where you might do certain things on accident it's a very archaic scenario but that's why the rules are this way to avoid those strange accidents so now the question is does this imply that you should always implement your methods on the non-pointer type so they're conveniently both a pointer and non-pointer type would implement the interface because that's only way to have both and the answer is well sometimes that's useful but sometimes it isn't and the trade-off is that sometimes you want your methods to have pointer receivers because you don't want to pass the full thing keep in mind with non-pointer parameters to a function or or non-pointer receivers for methods the thing itself is being copied and full and imagine you had some struck type that was very large you may not necessarily want to pay the cost of of copying that thing in full every time you call the method and so in those cases you would probably want to have a pointer receiver rather than a non-pointer receiver so I think what most go programs do is just on a case-by-case basis they just decide whether a method should have a pointer receiver or a non-pointer receiver and they don't really think about the implication of which implements the interface because when in doubt well at least the pointer type will implement the interface right so even though you have to have all non-pointer receivers to implement an interface for both t and pointer to t I wouldn't really let that stop you from implementing methods with pointer receivers sometimes you just need a pointer receiver not only can we implement methods on structs and pointer distructs but we can also implement methods on named types and pointers to named types and yes that means that a name type and a pointer to a name type can implement interfaces and the rules are exactly the same so here for example we have some named type called time which is defined as a float 64 and so we can have a method fly where the receiver is of type time and a method kill where the receiver is a pointer to time and both are valid methods we couldn't though have a method defined on float 64 itself even though time and float 64 are really the same thing the compiler just will not allow it it only allows us to find methods on named types and structs not for any other thing I think the rationale for that is that well the built-in types are used in all parts of code so like you have your program and you're bringing in a bunch of packages that other people have written to make up your one program and if we could give methods to built-in types in one package then that that in a sense would be like redefining this thing used in other packages in a way that could be kind of strange and unexpected named types however are things that we ourselves are defining and oh yes there's one very important rule I haven't mentioned when you define methods on a type you can only do so in the package where that type is defined so when you define a struct or you define a named type all the methods you define for that type have to be defined in the same package recall that an interface value what it actually represents is a reference to some concrete value of some implementer of the interface and also a reference to the type of that value so say for example if we have an animal interface and it's implemented by both dog and cat well if I create an animal variable I can assign to it dogs or cats both are acceptable and say I assign it a dog what that variable is going to store is a reference to the dog value and also reference to the dog type and so what we will want to do sometimes with interface values is get at the concrete value which it references and get it as its type to do so we use a type switch and here's the syntax we had in go pigeon where here's a function foo as a single parameter f of type fruit where fruit is an interface implemented by both banana orange and perhaps some other types as well and so to switch over this interface value right type switch an expression which gives us an interface value here and then we have cases for the different possibilities of what it might be it might be a banana might be an orange or it might be something else and we don't have to have default that's optional but if it's there it's at the end we don't have to have either banana or orange we can leave them out so we can just choose which cases we care about but what happens is that in the case that this fruit value here is referencing a banana then the banana case runs and in that banana case we access the banana value as b it's stored in this variable b that exists only in this body but then in the case it's not a banana and instead an orange then this orange case runs and the value stored in this variable o and if it's not a banana or an orange if none of the cases match then the default is executed and if we want to access the the value well we have it as the fruit value f so we just use that instead the equivalent in go is written with the word switch not type switch and then you have here's the interface value just some expression that gets us back in interface value in this case of fruit then you write dot and then in print you have the reserved word type it is a reserved word I don't know what's not highlighted here the editor should be highlighting it but it's not and then you have colon equals with a variable which you're assigning that value to and then you have the different cases notice there's no variable name here just have the type names and in the banana case if you want to access the banana it will be available as the variable x and in the orange case if you want to access the orange it'll be available as x and in the default case if you want to access the original interface value it's available as x so x is present in all of these different cases and the default but the strange thing is that it has the different type in the different cases on the default and in the banana case it'll be a banana in the orange case it'll be an orange and in the default case, it'll be the original interface type, in this case, fruit. Sometimes given an interface value, we just want to test if it's one specific type, not multiple types. And so in that case, it's generally more convenient to use what's called a type assertion rather than a type switch. And a type assertion is an operation where you have your interface value, and you write dot, and then in parenz, you put the concrete type name you want to assert which this thing is. And what we get back is two values, we get back, in this case, because we're certain that that f here, this fruit value is a banana, we get back a banana value, but we also always get back a boolean. And that boolean will be true if this interface value actually is a banana, if it's referencing a banana. Otherwise, if it's referencing some other type, like say an orange or mango or something, then okay, we'll be false. And regardless whether the interface value is actually referencing a banana, it could be something else, it could be an orange, could be something totally different. But regardless, we always get back a banana value, which is being assigned to be here. And of course, in the event that f is storing a banana, then we get back a copy of that banana value, the value which f is referencing. But in the event of something else, what we get back for this banana value here will be the default value, the so called zero value of the banana type. And so what we want to do generally after performing the type assertion is you want to look at the boolean and branch accordingly of like, okay, it was a banana. And so now we can use B as a banana. And so in here, the value of B will be useful. Whereas otherwise, in this else clause, the value of B is simply just the zero value for banana, and not really useful. So you'll want to branch accordingly after doing type assertions. And of course, we can use the convenient colon equals syntax here, we just use colon equals, and we wouldn't have to explicitly declare these variables. In fact, if I left these variable declarations here, the compiler would complain that we're redeclering being okay. And it wouldn't like that. So you'd want to get rid of these after using colon equals syntax. Now, sometimes when you do a type assertion, you might in a certain context be very confident that a particular interface value is referencing a value of a particular type. You might be really confident that this fruit value f here is really always going to be a banana. Because you've arranged it in your code that that's how the logic works. Every time foo is called the fruit value passed in is always banana. That'd be a strange thing to do. You might as well then just make the parameter banana, but just go along with the scenario here. So in those cases where you're absolutely confident that it's going to be a specific type, then you can use a so called single value context form, where we're not returning two values, we're just returning one. And so there's only one target of assignment here just the banana, there's no Boolean. Be careful about this though, because what will happen if f is not actually a banana in this single context form rather than a multi value context form? When this type assertion is performed at runtime, if this f here is not a banana, then you get a panic, you get a runtime error. And generally then that means your code will abort. So be careful only to use this single value context form of a type assertion in context where you're very, very confident that it's going to be that specific type and always going to be that specific type. If it's ever in doubt, then you should use the multi value context form, the form that also returns a Boolean, like here.


The President's budget proposal eliminates public media funding. Learn how you can help at lptv.org slash action. Well there are new housing developments coming to Brainerd after Crowland County Housing and Redevelopment Authority broke ground today on the first homes at Brainerd Oaks. After purchasing 113 lots between Brainerd Oaks, Serene Pines and Del Mar estates, Crowland County entered an agreement to develop on the land with Paxmar Brainerd. The three housing projects are expected to be completed within a three to nine year period as well as bring business and jobs to the Brainerd Lakes area. It's not only going to include the fact that we got homes here but we've got jobs created, construction jobs. As I was just talking to the developer, 40 to 60 percent of the individuals working on this project already are from the area and there will be more higher percentage as time goes on. The mayor also said this is one of the largest housing development projects that he's seen in Brainerd in over 40 years.


Big question about your future. All the success in Tampa Bay. You see yourself there next year, Chris?  You know, I would love to be back there. And obviously, you know, got a great chemistry with Mike and with a lot of guys on the team. You know, but we'll see how that kind of plays out. But I think, you know, just why I'm at like in my recovery and I'm off to a hot start. So it set me up pretty good to be back.


It's really about getting the right insights that are going to help them understand better what's going to motivate their consumers. It's not necessary to have a bunch of new products or brands. I think it's more about commercial innovation and making the most of what you have and putting them into new, exciting, engaging and entertaining programs. Regardless of what the economy is doing right now, you can come up with creative solutions to the program. It's just about thinking differently. Gen Y, more than any other generation, is very keen for authenticity and credibility and they can see through corporate speak. And so no better marketing discipline is set up to succeed in a marketplace like this than public relations and communications. This is our day. I think public relations agencies are perfectly primed to be successful in this marketplace. We're not about controlled messaging. We're not about 30-second spots. We are about conversation and we're about authentic, incredible conversation.


Hi, I'm Sergeant Wernicke with DPDTV on this episode. I'm riding along in Montbello in District 5 with Officer Brandon Morales. Some people after our fireworks enforcement campaign contacted the department and they weren't very happy. They felt like we were picking on kids with sparklers. But we'd like to give you the police perspective tonight behind the battle against fireworks. I've actually been assigned to District 5 for 8 years. I like it, it's a good place to work. There's a lot of diversity here. Well, for the most part, everybody's real nice. It's a good neighborhood, it's a good community. Whose house? Your house. And she comes outside and everyone's scattering. And she looks in the backyard and some of her brushes are on fire. So this is a good example. The owner of the house was saying there were people across the street lighting fireworks. I guess some of the debris came over here and cut her bushes and part of her house on fire. So I know there's a lot of people who say don't you guys have something better to do than enforce fireworks. But the reality of it is there's a lot of people out there who don't like the fireworks, who are afraid their houses are going to catch fire. Thanks for joining us this episode of DPDTV. I'm Sergeant Wernicke. Remember on the 4th of July, please leave the fireworks to the professionals.