Let me record it. This session is from Daniel Kinsler about converting an extension to the new hook system. Hello everyone. Yeah. Doing a workshop with this setup is a little bit odd. I really like to just have everyone in the room and have a conversation while working on code. I hope we can make it work anyway. If you have any questions or comments, ideally write on Telegram. You can also write on IRC, and I'll see it just in the main hackathon channel. If you write on the YouTube chat, I should also get your message, but it will be copied over manually. So let me take a minute. Just for me to get any sense of who's here and how many people are attending, please just say hi using one of the channels that we have available within the next few minutes. So just so I get a sense, if there's new people or people I know, or people who are just dropping by, or what brings you here, that would be helpful for me. So this session is intended for people who maintain extensions and who are interested in converting their extension to the new hook system. The new hook system was introduced in MediaWiki 1.35, but we have not yet really started to convert extensions to it. We are getting to a point where this is becoming more interesting and more urgent, and the idea is to deprecate the old system and remove it in the not too far future, meaning one or two years, I suppose, until it is entirely gone. So far, I'm not seeing any messages from anyone, so I guess I'm just talking to myself. I will keep talking because this is recorded and perhaps it's going to be useful for someone in the future. If you have been working on extensions in the last, I don't know how many years, you have been using the extension.json system. If you will probably know that the way to register hook callbacks is to use the hook section in extension.json. The main idea of the new hook system is really to get away from static methods here, to non-static methods on an object instance. This has several advantages. It allows for dependency injection into the hook handler. It allows hook handlers to share a state in a clean way on the hook handler object, and it allows us to use proper interfaces to represent the signatures of hooks. I'm seeing the first hellos on the chat. That's nice. So I'm not entirely alone. Cool. Please do ask questions and interrupt me at any time. Today, the example I want to work on today is Category Tree. Category Tree is an extension that I originally wrote before I joined Wikimedia. I think there's still like an author notice from 2006 or something on there. I have not actually touched this extension in a long time. It has been maintained by other people since, and I don't actually know the code in detail anymore. This is really me coming in from the outside, just with the mindset of looking at how the hooks are defined and how they should be changed to use the new hook system without having deep knowledge of the code itself. There's two phases to this. In the first phase, we can blindly convert to the new system, which allows us to use a new system, but does not really allow us to benefit from it much. Once we have done that, we can start to see what converting away from static callbacks now allows us to change about the extension, change how the extension is written in general, moving it away from relying on global state. That's the idea. For the first phase, for just converting to the new system, we can simply... Well, first of all, if we move away from static methods towards instance methods, we have to create an instance. In order to do that, we introduce a new section into the extension.json file, which is called hook handlers. In most cases, we only have one hook handler, maybe two, maybe three, but not like a huge amount, not a different one for every hook that is not necessary. We have to name our hook handlers. Since we're just starting out with one, we call it main or default or my hooks. You can also call it Frank, nobody cares. So let's call it default. And the hook handler is defined as an object spec. So you give it a class name. That's the minimum we have to do. And the class name will just be the name of the place where all the hooks are currently. I mean, in typically in an extension, all the hooks, hook handlers, all the static methods for handling hooks would be in a single class. Maybe they're distributed over two classes. It really doesn't matter much, right? Okay, so once we have done this, we are ready to convert our first hook function. So the first hook function would be article from title and it implements the article from title hook. So what we do here is we will implement the respective hook handler interface, which is just the name of the hook with the word hooks attached to the end. And so my IDE is telling me, okay, we can do that, but now there's something missing, right? It's saying, oh, you're not actually implementing the methods that are in this interface. So let's look at what the article from title hook interface looks like. It has a single method, which is called on article from title. The name of the hook interface and the name of the method on that interface is always derived from the hook name and it's always derived in exactly the same way. You have for the interface, you have the word hook attached to the end and for the method name, you have the on attached to the front. The only exception is hook titles that contain columns. Sometimes the hook names contain columns, then they would be replaced by underscores. We will see that in a minute. Okay, so the method we have to implement is on article from title and I will copy the entire signature. Oh, maybe not yet. I will do that in a minute. So I know the method name now and the name that we actually had is article from title without the on, right? So I'll have to find that article from title and I'll just replace the name, right? Okay, so now again, the ID is complaining. Why is the ID complaining? It is complaining because this method signature here is much like the method signature here, but not exactly. Here we have three parameters with no type hints and here we have two parameters with type hints. The method signatures have to match exactly. So I will just copy what is here to end, of course. Oh yeah, it's still complaining that it's static, right? So it should not no longer be static, okay. Are there any questions so far? The reason that there are no type hints here is that as I explained in the presentation I gave two hours ago here, we are trying to move away from things like title and also we are trying to recover other old classes like article, which just exposed too much of the internals of Media Wiki. We want to convert hooks to only getting what they absolutely need, which makes it easier to change when and where they are called. It is easier to keep compatibility without having to replace the hook. And sometimes this means replacing the hook entirely, but if we don't have strict type hints and we know exactly how these hooks are used, we can sometimes get away with supplying a fake object here that just implements the methods that are actually used by extensions. That will, but of course that wouldn't work if we had a strict type hint here. Having the type declaration just in the dog block will still have the type enforced by IDEs and it will also have it enforced by our continuous integration tests via the fan utility. These will complain if you're using the wrong type. So there's still type safety here enforced when merging patches, but we don't have them enforced in at runtime, which gives us a flexibility to supply fakes for backwards compatibility in the future. Okay, all that being said, this is actually done, right? We are now properly implementing this interface. And now we can just say that instead of the method here, we just specify which hook handler to use. And we just give the name of the hook handler and then the new hook system will just look at this hook handler and look for the appropriate method on that hook handler and we'll call it. The method name will just be this name with on on the front. And all the hooks will all use the same instance, right? This instance here that is specified here will be created exactly once. Okay, so first hook down, next hook. Now here we have a hook that has columns in the name. We did that for some hooks in the past when we wanted to kind of have the class name in the hook name. That turns out to be a pretty bad idea for various reasons because it means that if we want to split up the class, the functionality of the class into multiple parts and now the hook gets called from somewhere else the name is completely misleading. Okay, anyway, so we have to put in the underscores here. We look at the hook interface. We have the method signature. Go back, look for the old method name which was on special whatever in progress. Okay, so this is the old signature. We put in the new one, remove the static. So when changing the method signature in this way, of course we have to make sure that we're not changing the parameter names so everything is still in place. The ID isn't complaining so I guess I didn't replace anything. So done, right? Next, this is a pretty boring process. There's not that much to do here. I may, I think I'll skip forward and skip to a most more interesting example. So we are sure to get to it. Copy signature, back on the unspecial. That's the one we already did. It's the other one. Based on the other signature, remove the static modifier. We're done. So the ID is complaining about these method names. This is not new. That was also the case before. They used the wrong casing. This way to spell getDB key is kind of sane, but it's wrong. So we have to change it to the less sane but correct spelling with capital DB and lower case key. I think I can just do that while I'm here. Trying to read the backlog on the chat. Am I reading this correctly that there's no comments so far? Yes, as far as I can see. No, no, not here. Okay, thank you. Everything is crystal clear. Yeah, so far it's kind of embarrassingly simple, right? It's kind of embarrassing. Yeah, it's not very, very complicated. Okay, let's skip forward because I want to actually, I want to demonstrate something. Let's look at the before page display one. So we do before page display hook message signature there. Note that this actually has the return type declared and we also have to declare that return type. Until some time in the past, hooks were generally expected to return a Boolean. This has changed already a couple of years ago. So only some hooks are supposed to return or are allowed to return false to avoid operation and prevent other implementations of the hook, other handlers of the hook from executing. This is only supported from some hooks and not for this one. So this declares the return type to be void and any handler trying to return a value will fail. So, okay, what's the old name? The old name here is add headers, completely unrelated to the actual hook. And I'm noting that the, there's actually two hooks using that. And in the old system, I could have two hooks using the same handler function. That is no longer possible. So what I do is I just create a new function, a new handler function here and I just call the other thing. I just calls self headers and I keep that static for now. It could, maybe this can also become an instance method in the future, but for now I'll just keep it static just to avoid any more confusing work, more complexity in this initial patch. Okay. Oh, I forgot to replace the up here. So, okay, we have now also done four page display. Now we move on to the next hook and we try to do the same thing as before, right? We put it up in here at the hook thing at the end and now the IDE doesn't find it. It's not there. And if I go to my code search and I try to find where this hook is actually called in core, right? It's not there. What happened? Well, this hook is not defined by core. It's defined by another extension and that extension is mobile frontend. And if I look at the mobile frontend extension there's actually two cases here but I don't unfortunately don't have an example for the second case. So, where am I? Okay, so if I look at mobile frontend I can see that this hook name is mentioned once in a place where this hook is called and it's called the hook call is the old style way, right? With hooks run. And there is no hook interface. So what now? And the answer to that is simply nothing. Just keep it a static method on the same class. No problem. You can still use static functions as hook handlers. It's not preferred but since mobile frontend is not offering a hook interface yet we will just keep it the old way. And that's it, right? We just do nothing and we'll keep working. We can have static handlers and instance method handlers on the same class. They don't, that doesn't hurt. Now, something that I can't demonstrate here right now is what if the hook interface is defined by another extension but the extension isn't there. What happens? In that case, you have to, let's pretend that is the case for a minute. I will undo this in a second. You have to create a separate handler class here like mobile frontend hook handler. And handlers, let's just call it that. And we'll also call the class this. And then in this other handler, you can use the hook handler interface defined by the other extension. The reason that this has to be in a separate class is that if that other extension isn't there, if it's not installed, then the interface will not be found. And if you put it on the main handler, creating the main handler, instantiating the main handler is going to fail because that interface is missing from this, because the extension isn't there. Now, if you have it separate, the hook system will only try to create the hook handler when the hook is called. But since the extension isn't there, the hook is never called, so that makes it safe. I suppose since most extensions are not converted to the new hook handler system yet, I'm not aware of any that is exposing handlers the new way. If someone can tell me about an extension that does, perhaps we can look at an example as well. But this is just to say that it is possible with the new system to register a handler for another extension that may or may not be here. Okay, we just found that we don't have to do anything here. This will just stay static. Since Jason doesn't allow comments, I can't make a comment here. Always found this a bit annoying, but okay. So let's do output page parser output as we did before. I can do this quite quickly, import, look at the signature, the signature, find the old implementation, which is just called parser output, and replace the signature. Note that we renamed the parameter, which is confusing, and now it's good. Yeah, what happens when the extension providing the hook is not installed? Well, if the extension that provides the hook is not installed, nothing will call the hook. And if nothing calls the hook, the handler system does not try to instantiate the hook handler, so nothing happens. Does that answer your question? I'm just looking through the chat whether I missed any other questions. Any warnings that you could help see the missing piece? I'm not sure what you mean by missing piece. So there's two cases here, I suppose. One is the other extension is an optional requirement. Well, if it's optional, there's no missing piece, right? If it's not there, it's not used, done. If it is a requirement, then that dependency should be declared, I think, also an extension JSON somewhere up here, right? And then the extension registry would complain. Yeah, so if the dependency is required, you will declare that, and the extension registry will complain. The other way, of course, to do that is you can just put the interface from the other extension on your main handler, and if the other extension isn't there, that will just explode, right? Now we get unrelated chatter about the work adventure in the chat. Okay, cool. Anyway, while I was looking for this method, I stumbled across the initialize method. There is a initialize function up here on the handler, and this is not mentioned here. This is not a hook handler, right? It is, let me find it. It's an extension function. Extension functions are like the ancient version of hook handlers. It's like the hook handler before hooks even existed. It's a callback function that is invoked after the setup phase is complete. And I will go on a little tangent here because this is something that might bite people. It is unrelated to the new hook system, but interesting, perhaps anyway. So one thing that is frequently done here is manipulate settings, maybe full in defaults that depend on other extensions or on other settings dynamically here. And this is problematic because this function is called when service instances in the main service container may already have been created. And so this is basically too late. Some service objects may not be picking up the changes you make here. Not a problem for category tree in particular, but it has turned out to be a problem for, oh, if I recall correctly, central auth. So one way we could fix this is we could make this a handler for the MediaWiki services hook. So what one thing we could do is we implement MediaWiki services hook, which is invoked immediately after the service container is created, which would be before nearly all service instances are created. There's two exceptions. There will be two services already created, which is the hook runner itself and the configuration factory. And everything else will be picking up on changes that you would make here. Okay, so MediaWiki services hook is on your hook. I'll copy the signature back. And we'll replace this. I could just, let's see if this is called anywhere directly. Nope. So I can just change the signature here to the new thing. And this means that we can remove the extension function up here and instead register a handler for the MediaWiki services hook would do. Okay, services. Wow, I've not seen that before. Okay, my ID just crashed. We will be back in a second with the regularly scheduled program. Sorry about that. Any questions in the meantime, comments, thoughts? No questions, but I have comments. You should read your notifications on MediaWiki because you have tons of notifications when you switch it up, I saw them. It's not a question, it's just to something that I recognize. Sorry, notifications on MediaWiki? Oh, yeah. Yeah. Yeah. We have a big backlog. Otherwise there is no questions on both channels. Be comfortable, I am following the channels. There is no questions yet. Okay, cool. Thank you. Yeah, I would actually be happy about questions, right? To me, a workshop works best when it's actually a conversation, more like me talking all the time. But I realized that that is difficult if we are not in a room together or at least in a shared video chat. Okay, how much did I lose? What happened? Are you asking me the time, you name it? No, I was just saying, my ID just crashed and I lost my last few edits but that's not terrible. I should still have like 20 minutes, right? Less than 20, but we are close. We'll put this in, copy the entire signature. That will work. In the future, we could look into a better system for manipulating configuration. This is under discussion, but for now it's important to at least do it at the correct time and no longer do it in the extension functions thing. So we can remove this and that should still work. If we do output page output, we did. So this can also be default. We have one that stays static and we still have three to go. I will do this quite quickly if I can. Signature, on skin, blah, maybe a quick side note about these reference parameters. Some of them are actually out parameters where you can modify the parameter add to a list for instance or replace an instance. Others used to be declared as reference parameters in the past because of historical reasons in PHP 3, objects would be copied if you didn't pass them by reference and that was absolutely terrible. But that has been fixed a long, long time ago. So we are no longer passing objects by reference just as a matter of course. And with the new hook interfaces, we fixed this in quite a few places. And so that's another change that you may see when you convert to the signature of the function in the hook interface. Okay, on skin side bar, it's done. Barser first call init is also somewhat interesting. We'll look at that in a second. Set hooks, okay. So we'll replace this. Now what this does is it sets our handlers for parser hooks or parser functions. And these again are static methods on this class. And we want to move away from global state. We want to move away from the static functions. We want to be able to use dependency injection on the instance and share a state on the instance. So I will just make them non-static, right? Instead of, I can just do this. And then I will look at where they are defined. Farser function is here. I'll just remove the static modifier. Right, here's the other one. When I do this, I should probably search whether there are direct callers elsewhere in this code. And okay, it turns out there are some, but they're in the same class. So since we are converting everything to be non-static, we can actually do this. I'm getting a lot of things here. Okay, yeah, Lukas likes the new system. Cool, very nice. Nestle, when you're copying things, could you copy them in the main channel? That way I don't have to switch channels. Thanks. That was I, okay. So this is still red, because we have not converted this method to non-static yet. And I think it's actually the last one left. Yes, this will go next, right? So in parser function, we already have it. We can just do this. Okay, do we have direct callers to this function? All right, so the next one will be lasso, lasso function. Okay, let's go. Output page, major category, links hook. I'm not finding it. Why am I not finding it? And this one actually I genuinely don't know. I expected to find that. Maybe I'm confused somehow, because I think that is in core and it should have an interface. Let's see what happens. Does exist. So either I got confused or my IDE got confused. Oh yeah, I mistyped that was all. Okay, fine. All right. This is something that I noticed working with PHP storm in this file. It is PHP storm is very smart about working with JSON and it will add and remove commas when you copy lines and insert stuff, which is kind of convenient. But for some reason it wants to add a comma at the very end of the file breaking everything. That's, I have no idea why that is happening. I noticed this yesterday. Okay, so this should still work. We have converted everything, I think. Nearly wait, default, default. Okay, let's see if it's still, of course, that is cached. And if we just do edit and preview, still have the category tree working on the page. If we go to category page, navigate up, I have the categories here to main zoom in so that seems to work, no exceptions. So this is basically the first step, quickly make a commit, sorry. And I will push this commit later and I'll clean it up, make sure. Well, actually I will push it now and I will make sure if it fails any tests or anything, I'll clean it up a little and I will paste, I can actually give you the link right now because why not? So I will paste it to the telegram. Whoops, books, workshop, much. No guarantees that this is 100% complete and correct, but it seemed to work. Now, we have like 10 minutes left. I would be happy to have a conversation about this or I could try and push on a little and have maybe get an idea of what this means, what this just freed us up to do. What would you like to do with the last 10 minutes? Oh yeah, good question, good question, Alex. Is there a situation when I want to use multiple hook handlers rather than one? Well, one situation, as I explained earlier is when I have a hook interface that comes from an optional dependency that may not be there sometimes. So then that has to be separated out. Another situation is, and we didn't really get into this. Now that everything on my hooks here are in instance methods, right? I could try and look at no longer using globals instead have config injected into the constructor. Similarly, I think we get a database somewhere. Yeah, so here, instead we could inject a load balancer, right? So we would have this, load balancer connection ref. And, oh, actually, yeah, that is actually a good point. I did not talk about this yet. So this is a load balancer. And we will want a constructor that actually takes, that initializes this, right? But we have to somehow tell the hook system to also supply this parameter. So we will have to specify which services to pass to the constructor here in the hook handler's specification in extension.json. And I will come back to your question, Alex, in just a second because there is a connection. And, oh yeah, with load balancer, typically the name of the service is just a class name, but here it's DB load balancer because load balancer itself is a very generic name. So this would make sure that we get the load balancer from the service container injected into the constructor here. Now, the more things I inject for the different handlers, the more cluttered the constructor gets. And if I notice that there is some things that are only used by one set of hook handlers and there's other services that are just used by another set, it makes sense to split the handler, right? Maybe I have one handler that does storage related stuff and that has like database connection and whatever storage manager is injected. And maybe the other one is for skin stuff. And so I have localization related things injected into that handler. And so I have all the skin related handlers grouped into one object and all these storage related handlers grouped into another. And yeah, just looking at what services and what configuration variables are used by which handler function will give you good guidance at what to group together. Does that answer your question? Okay, I'm reading through the comments but I only see unrelated chatter. Did I miss any questions? No, no you didn't miss. Yeah, but it's very good that this came up so I could actually show how dependency injection works here. We have still have like five minutes or so. Trying to think what else I could get into. One thing we could look at is how to inject configuration variables. There's actually two ways. Well, we can ask for the config object. We can just ask for it to be injected and remember it in a local variable added here. This is the main config. And just having the config here and accessing it directly is the easiest way, right? So, or something like here on Parasafras call in it, right? I want to know whether the category G allow tag is set. So I would do something like this, right? So that allows me to just access configuration variables without relying on globals. Having the full config object hanging around here is not super nice using a service options object as we do in other places is somewhat nicer. But yeah, I think getting into that here is a little bit overkill. Using the config object instead of global variables is already a big step forward. The same thing here, of course, we could now go through and convert all this access to global variables to the config. Any other questions? Oh yeah, I'm just looking at a bug, by the way. You may appreciate the fact that this is called sidebar up here. It's called sidebar down here. This is called bar. So the bug would be that this no longer works, right? As this got renamed, bug fixed. That's the kind of small thing that we'll have to pay attention to. It was especially tricky in this case. You know, I only noticed because of syntax highlighting on the environment was telling me that the variable was unused. So sometimes these kinds of hints can help. I am a, you know, if you can work with a full-fledged IDE, do it. It has so many advantages and it makes things so much faster and so much safer. Just give it a try for a week or so. And I don't know about other things but PHPStorm has, for instance, the mode that can emulate VI. If your fingers are totally stuck to the world of VI, you can just keep using all the weird key combos there. So highly recommended. Doesn't have to, I mean, PHPStorm probably is the best that I have used. But of course it's not open source. There is open source options. But yeah, it is way faster and safer than using. Just an editor. I'm not getting into editor post territory. I didn't recommend Emacs. And actually I keep, you know, I use VI for some stuff. For instance, I use it to write my commit messages. It's still for just logging in somewhere and quickly editing a file or two is my go-to thing for doing refactoring in an environment with like 15,000 files. Not so much. Okay. Any other questions? Brian says whatever editor works best for you is the best one. That is true, but it requires you to actually give you things a chance and actually take the time to try them out properly.   But, you know, I never look back to be honest. Ooh, I see chatter about pause and the chat. I never got into properly using it, but I think pause is absolutely awesome. I agree. I really need to play with it more. If there's no more questions, then I think I'll just stop here. Thank you all very much. Thank you. I hope. All right. Bye. Bye-bye.


Welcome, everyone. Thank you for joining us this afternoon. It's such a pleasure to see you here as we start to gather for more in-person events and also for those of you who are joining online. Welcome to our policy talks at the Ford School series and really just my great pleasure and delight to be with you here today. I'm Michael Barr. I'm the John and Sanford Wildean of the Gerald R. Ford School of Public Policy. Before handing things over to my colleague, Michigan Law School Dean Mark West for a formal introduction of today's guest speaker. I just want to say a few words of thanks to our partners, the University of Michigan Law School, poverty solutions, our new Center for Racial Justice here in the Ford School, and of course, thank you to our partners at Detroit Public Television that are streaming this event today. Our students here at the Ford School are deeply passionate about equity and social justice and Mr. Turner's lifetime of work dedicated to fairness and access to justice herides an inspirational example to all of them and to all of us. In his new role at the ABA, his work focuses on some of today's most pressing issues, challenges to legal services, helping refugees in Afghanistan and Ukraine, judicial reform, election integrity and more. And so I'm very grateful to have him here today. Following President Turner's address, we're gonna move right outside to the Great Hall for a reception where President Turner has graciously agreed to connect with students, with faculty and staff in a more intimate setting. So please save questions and a more informal interaction time for that time. I'm thrilled to be partnering on this event with my colleague, Mark West, Dean of the Law School. First of all, he is my Dean and one of the senior deans on campus. So with that, I'd like to welcome Dean Mark West. Thank you, Michael. I'm honored to be here today to introduce a distinguished Michigan law alumnus, a member of the class of 1987 and our friend Reggie Turner. And I can think of no one better suited to talk with this group about leadership in law and policy. Reggie's a lawyer and executive committee member at the law firm of Clark Hill in Detroit. He represents corporate and governmental clients in litigation regarding commercial, employment, labor, class action and public policy matters. And he's an accomplished government affairs advocate and strategic advisor. He also is the current president of the American Bar Association. He is the 145th president and the fourth person of color to hold the position. The ABA is the largest voluntary association of lawyers in the world with somewhere in the range, if you could correct me, 400,000 members.  And significantly it means the ABA is the national voice of the legal profession. Reggie became ABA president in August, 2021 having served the previous year as president-elect during which time another Michigan law alum also served as president. During his time on the board, the organization has faced no shortage of unique issues as a result of the pandemic and challenges to the rule of law. Under Reggie's leadership, the ABA is especially focused on issues including access to legal services, judicial reform, election integrity, the eviction crisis, and advancing the rule of law. Public service has long been a core part of the mission of the legal profession. Lawyers serve their clients, but we work for the larger community too. Reggie through his lifetime service embodies the soul of the profession and is made volunteering and service to others a hallmark of his career. From his earliest days in the profession as a law student when he served as the president of the law school student Senate, which I just learned, Reggie has served in the public and private sectors and has held many appointments. I won't mention all of them, but I wanna mention some of them because they are just so impressive. His presidential gubernatorial, mayoral, and county executive appointments include serving as a White House fellow, as an aide to housing and urban development secretary Henry Cisneros during the Clinton administration, representing Detroit Mayor Dennis Archer on the Detroit Board of Education and serving on the Michigan State Board of Education and the Wayne County Airport Authority. In the public sector, his service also includes a term as president of the National Bar Association, the nation's oldest and largest national network of predominantly African American attorneys. He served as chair of the Detroit Public Safety Foundation, served as vice chair of the Community Foundation for Southeast Michigan, and as a member of the boards of directors of the Hudson Webber Foundation and the United Way for Southeastern Michigan. And now in the private sector, he serves on the boards of directors of Masco Corporation and Comerica Inc. He helped broker the deal that saved the Detroit Institute of Arts from breaking up its collection amid the 2013 Detroit bankruptcy and he served as the executor of the Aretha Franklin estate. So that's about everything that a lawyer can do, and he has done it. Reggie, thank you so much for your service. Thank you for being with us today, and welcome home. Thank you, Dean West and Dean Barr. It is really a pleasure to be here. I see some of the students who were with me in the earlier, and I'm sorry that you're gonna have to hear many of the talking points that I gave earlier in today, but I am just so thrilled to be here, and particularly to have an opportunity to give some of the thoughts that I have about our legal profession to future lawyers and those who are interested in public policy as well. I think that the two professions are intertwined and are need to support the Constitution and laws of our great nation fall not only to those in the legal profession, but also to those who seek public office or serve in public office as those who have been hired as opposed to elected have an obligation to support the constitutions of our nation and our states to fulfill the goals of our great constitution and to support the rule of law and the health and safety of the public. My law school education in Ann Arbor shaped me in ways that I cannot even begin to enumerate, and the presence of the Ford School of Public Policy also provides tremendous scholarship, awareness, and influence regarding the great issues of our time for students at the University of Michigan today. I'm a proud Wolverine with our Association's Immediate Past President, Trish Refo, making us the first two ABA presidents in succession to hail from the University of Michigan. Trish is a respected lawyer, Trish is a respected lawyer in Phoenix and a wonderful person who led our association with incredible grace and gravitas, mainly from her kitchen with Zoom and a decent internet connection due to the pandemic. And I was sharing with earlier with some of the colleagues here that I was not expecting to become a bar groupie until I met Dennis Archer here at the University of Michigan when he was president of the State Bar of Mission. Michigan, he came and visited the law school. I was president of the Law School Student Senate and had the opportunity to introduce him, and I had heard of him because he was a friend of my father. I hadn't met him before, but he really got my attention with his gravitas and his concern for all people, and particularly for diversity and inclusion and for following the rule of law. And that has been a mentorship that continues to this day. After 30 years plus, I still call him from time to time when I have an important decision to make and talk it through with him before I make a final decision. And he's always willing to listen to me and to assist me with the issues that I bring up. I mentioned Trish Refo, and she's also had a tremendous impact on my growth and development in the Bar Association. And I will always be grateful to her for having me serve as her chair of rules and calendar in the ABA House of Delegates. And that's where we really, really bonded. So again, I think some of you have heard some of this before and I apologize, because I probably went a little longer in my remarks at the earlier meeting than I should have, but I do wanna thank Bob Hirshon again for giving me that time with you. And he has been a really wonderful mentor and began his service as ABA president in 2001, just one month before the world and the legal world changed forever after 9-11. I was grateful for the opportunity before this event to visit his class across the street in Hutchins Hall on legal ethics and professional responsibility, a subject that is core to the American Bar Association's programs and activities and who we are as a profession. Under our professional conduct codes, lawyers are officers of the court who have a duty of confidentiality to their clients affairs, avoidance of conflicts of interest, and numerous other responsibilities that enable us to provide full, frank, and unfettered representation, all of which are key elements in the rule of law and democratic societies. Bob Hirshon and Trish Riffo are both valued ABA colleagues and mentors to me as I mentioned. My primary mentor in the bar, Dennis Archer, as I said, continues to be a mentor for me to this day. But some of you may not know that Dennis Archer served as mayor of the city of Detroit and as a justice on the Michigan Supreme Court as well. He's a giant in Michigan and in the nation. So thanks to his guidance and to those of many of my other mentors, I've strived through my career to do justice. And as I mentioned earlier with some of the students who are here as well, I got involved in pro bono work when I was here at Michigan Law School. I had my first cases in the landlord tenant program here at the law school clinic, hoping to keep people in their homes when they were having difficulties with finances or other difficulties with their landlords. It was very gratifying to know that I had kept the roof over the heads of many people during that time. And it's been really interesting over the course of the last couple of years due to the pandemic that has been a really important, it's been a really important work to do for the American Bar Association. And I'm sure that there are students here at Michigan who have been working on some of those cases too. I don't know if, I guess I can be sure, but I'm confident that some of you, raise your hand if you've done some pro bono work while here at Michigan Law School. Okay, we had a couple of hands up. I hope all of you will consider doing that work. It is extremely fulfilling. It's the right thing to do. I often quote the lawyer's oath on this point. It says that I shall never reject from any consideration personal to myself the cause of a defenseless or oppressed or delay anyone's cause for a lucre or malice. And that's my favorite part of the oath. The biggest case, some of you've heard me mention this before, but the biggest case was the University of Michigan Affirmative Action Cases.  And I was at council table in the US Supreme Court. My one and only appearance in the US Supreme Court was on the Gratz and Grutter cases. What we call the split decision was actually what we believe is a victory because the rulings in those cases made it clear that the university could consider diversity, equity and inclusion in building that student body. And I look around the room and I see diversity in this room. It might not have been here had we not won that case. The role of the lawyer is to do justice. It's not the only profession for which that is an imperative. There are many others, but one of my favorite examples is Martin Luther King. He wasn't a lawyer, but he was deeply, deeply engaged in the quest for justice. And he showed us that doing justice is not reserved for the legal realm. It is much broader and much deeper, much more sacred. Quoting from scripture, he urged us all whether whatever our personal or professional calling that we should strive for the day when justice rolls down like waters and righteousness like a mighty stream. He reminded us of the need for persistence, prophesizing that the arc of the moral universe is long, but it bends toward justice. The First Amendment provides that we the people have the right to assemble peacefully and petition our government to redress grievances. We resolve our disputes peacefully most of the time based on facts and evidence with the guarantee of due process. Everyone deserves to be treated fairly. Might does not make right. This is justice and it is our charge, our calling as the prophet said, repeating for emphasis, justice, justice, justice you shall pursue. The ADA's motto is defending liberty, delivering justice. Our association is the largest organization of lawyers, judges and other professionals in the world. We promote the highest standards of ethical conduct and professional excellence. We advocate for equal justice under law and the principles of an independent legal profession and judiciary that are core to the democratic rule of law. We serve our members through educational programming, publications on the lettuce developments and numerous practice areas and opportunities to connect with colleagues and lead our profession on issues of law and justice with like-minded lawyers across the country and throughout the world. Our House of Delegates with more than 600 representatives of state and major metropolitan bar associations and other legal organizations develops detailed reports and resolutions for the ADA on a range of topics that intersect with law and policy, including criminal and civil justice, healthcare, housing, immigration and asylum, international law, human and civil rights and many other areas. The ADA has broadened my world as no other opportunity I've had. I grew up in Detroit in a working-class family. My father was a police officer and my mother was a library aide and that means I was heavily disciplined and I read a lot. I was brought up to believe that we are all in this life together and that each of us must treat everyone we encounter with dignity and respect. I have vivid memories of the 1967 Detroit riot, which like others across the nation devastated our community and we're stoked by poverty, lack of opportunity, injustice and police brutality. After the riot my parents sought ways to heal our troubled psyches and our minds and spirits and so they found a cultural exchange program called Focus Hope, which brought together city and suburban residents to break down racial barriers and my family came to have a close relationship with a wonderful Italian-American family from St. Clair Shores and it was transformative. They had six kids, there were four kids in my family. We had home and home visits, we went on picnics and my first trip up north in Michigan was as a guest of the Latancio families and we all jumped in their motor home, if you remember those. And we drove up north and camped out for a few days and it was a really interesting experience in a variety of ways for me because I had never used outdoor plumbing. But the real lesson, the more important lesson was that again we had so much in common in terms of our families and our goals and our ideals and our beliefs. And that was my first introduction to what we now call diversity equity and inclusion. And I tried over the course of time to fulfill the teachings that I learned from that Focus Hope program back in the late 1960s. Regrettably for much of his history the American Bar Association did not answer this calling. The ABA was founded in 1878. In 1912 the ABA rescinded the membership of a lawyer named William H. Lewis who was the first black assistant attorney general. That's an assistant attorney general and they told him he couldn't be a member of the American Bar Association because he was an African American. That was a long time ago. But the ABA has learned from its mistakes and has doubled down on diversity. I think many of you know about Dennis Archer if at least I've heard his name but I had the privilege of being his law clerk when he created the first diversity entity for the American Bar Association. At that time it was called the Commission on Opportunities for Diversity in the Legal Profession. And I was sitting in his office while he was talking to an ABA staffer named Rachel. Who was working with him on that program and it came to fruition. And today the ABA has the full panoply of diversity programs, not just for racial and ethnic diversity but for people who are differently abled for gender identity for women. The full panoply of diversity issues are being addressed by the ABA. And I think that those of you who are not yet ABA members as I mentioned a little earlier, it's free for students. And there are lots of resources that are available in the American Bar Association to address the important needs of our nation. Dennis of course was the first person of color to be president of the American Bar Association after creating that commission. And I'm pleased to say that diversity has followed him as well, not just with me, but there have been, now we're in our fourth, Deborah will be the fourth, I'm sorry, fifth African-American president of the ABA when she takes the gavel in August. So significant progress over the course of time and we've had Latino presidents and we are going to have our first Native American president to follow Deborah Enix Ross. Her name is Mary Smith and that will break yet another barrier. So we're very, very, very, very committed to diversity, equity and inclusion. And all these folks have been elected by the membership of the American Bar Association. So this is progress that has been long coming, unfortunately too long coming, but it's bearing wonderful fruit at this time. And so we just need to keep doing what we're doing. I mentioned the Michigan Affirmative Action Cases, but as you know, there will always be challenges. And I really wanna make sure that we understand how important it is to support organizations, even if you can't be directly involved in the litigation. It's important to help fund those organizations that are doing pro bono work to meet the needs of the public. And the State Bar of Michigan created a program that essentially invites every lawyer in the State Bar of Michigan to contribute to pro bono program. Can't mandate it because it's an integrated bar and membership is mandatory, but there's a lot of pressure to do that for those, because it's absolutely, absolutely important. So the oath we take as lawyers says I shall never reject from any consideration personal to myself the cause of the defense is so oppressed. And I repeat that often because it's so, it is just such an important thing. And sometimes we just, we get caught up into the cycle of our daily work, which is important, but don't forget to reach out and help someone as our oath. We all took the same, those of us who are lawyers all took that same oath. And it's sometimes it's easy to have it on the back seat, but I think it should always be at least in mind, if not in front of mind. The ABA also invests in the pipeline for diversity in this legal opportunity scholarship fund, which has been one of my favorite charities for quite a long time to ensure that there are diverse students who are getting the funds needed to go to law school. And those of you who are not lawyers, or not lawyers yet, but are thinking about becoming lawyers may want to check into that fund as well as you're thinking about, about going to law school. Our, just changing topics, our, aside from litigation on justice issues, there's also a need for reform of the criminal justice system to reduce bias and inadequacies in the system to decrease our nation's overall reliance on criminal fines and fees that disproportionately affect people of color and those in poverty to reduce the collateral consequences of criminal convictions, particularly those that limit eligibility for housing, employment, and life sustaining assistance programs. Our environmental justice task force is bringing ABA entities together to lead on legal issues, facing those who are in danger of having unhealthy environments and subsequent illness and or death as a result of toxic substances in their atmosphere. And so that is a really important piece of the work that the American Bar Association continues to do. I talk about Dr. King quite a bit. He used to say that injustice anywhere is a threat to justice everywhere. And one of my favorite quotes is, we are caught in an inescapable network of mutuality tied in a single garment of destiny. He wrote from his jail cell in Birmingham, Alabama. Whatever affects one directly affects all indirectly. Our members in the ABA are dedicated in many ways to the exercise of leadership for justice and the rule of law. This includes our education and advocacy on policy issues that not only involve the administration of justice, but are also essential to our basic rights and freedoms under law. Without question, the most fundamental of these basic rights and freedoms is the ability of all eligible individuals to exercise the right to vote freely and fairly. And we oppose any barriers to fair and open elections and subversion of the voting process. Unfounded attacks on our election systems, processes, and officials undermine trust in elections and our duly elected leaders. Through advocacy, education, and the policies adopted by our House of Delegates, the ABA continues to lead in this area. It just came back from a meeting in Washington where a group of our associations were meeting to address a full panoply of issues that they have for their members. And this is just a wide array of interests around the table. But there was common understanding of the need for us to meet in Washington, D.C., and to address issues at the highest level of government to ensure that our nation responds to the needs of our citizens across all of the issues that I've been talking about here this afternoon. And it was my first business trip to Washington, D.C., in a while because of the pandemic. Having real face-to-face meetings on Capitol Hill or with the agencies has been very difficult to do, and so things are open enough a bit. And I'm looking forward to getting back there soon. The ABA advocates in Washington for educational loan forgiveness, which is, again, one of the most important things that we need in order to ensure that the practice of law is open to all who have interest in the profession and have the skills to get here. I'm going to cut out a couple of these comments here. But one of the things I want to note is that stories of each of the lawyer presidents from John Adams through Barack Obama and Joe Biden are told in a delightful ABA book called Law Office to Oval Office. And I've had the privilege of spending a lot of time with both President Obama and with Joe Biden, who has, if any of you have ever met him, you know about his bear hugs. And he loves people. He's got just as hard as big as all outdoors and it's been fun to watch him doing his work as president of the United States. And of course, given where I stand right now, I have to note that Gerald Ford is just a wonderful leader, was a wonderful leader, and he stabilized his nation after Watergate. Most of you are too young to remember Watergate there. But he was a wonderful, calming influence in our nation after the lawlessness of his predecessor that had denied it, had divided the nation in a very polarized way. And I give him a great deal of credit and I understand why this school is named for him. He's a great Michigan during a great statesman. And with that, I'm going to stop and answer any questions. Yes. Justice, and moving towards justice. I was also thinking about upholding the rule of law as a non-lawyer. I'm wondering how much there can be attention there when you think of justice. I can imagine lawyers sort of having to uphold the rule of law in a way that actually enforces unjust laws, some of the laws that our team was fighting against, for example, or perhaps representing people that they might think are doing things that perhaps don't work towards justice but have a legal right to do. So I wonder how you think of a legal professor or a question sort of managing these common detention or maybe they really do. That's a very interesting question. Lawyers have to make decisions about what kind of work. An example of criminal defendants is probably one of the most poignant examples of when a lawyer is representing a person who the lawyer either knows is guilty or suspects is guilty, but our Constitution provides that individual the right to counsel. And accordingly, there's a role for lawyers to defend even those who may have committed a crime and embodied in our Constitution. And that's at the kind of extreme end, but everyone, in my view, I believe has the right to representation in litigation matters, whether it's in criminal litigation or landlord-tenant litigation or big corporate litigation or product recalls. I think that's what the justice system is for. I think we have one of the best justice systems in the world that addresses the full panoply of issues and tries to create a level playing field. And we know the playing field is not always going to be, well, not ever going to be completely level because some people have more resources, some programs in some states are weaker than others and some are really outstanding. So there will always be some differences with respect to the quality of legal services that are available. But I believe that where there is a legal issue at stake, whether the person is guilty or innocent or whether the corporation polluted or didn't pollute or whether the issue at hand, whatever the issue at hand, both sides deserve to have good representation. And that is clearly a part of our U.S. public policy. We just follow, at some point here, when they go into corporate law, they're representing corporations being sued for polluting and all of these other things. But in a lot of civil cases, there is no right to representation in the lieutenant cases or in other areas. So I'm just wondering, do you think the next, maybe progression in our legal system to, you know, defending our justice to the good way is to increase who has right to representation regardless of financial needs, means especially when we know that some corporations can't afford the long-term gains we offer? Yeah, I certainly understand that there are gaps, which is why the ABA has so many programs to draw lawyers into doing pro bono work. And I try to lead on those matters by example. It's just, there will, I hope this won't always be true, but I think it's probably always going to be true that there will be some people who don't get adequate legal counsel. And for a variety of reasons, resources, which is why, again, I donate to the programs that support free legal services for those who need them. Yes. Hi, my name's Zahraha Kutu, and you mentioned in your remarks that the ABA is kind of taking with how, obviously, an issue that means large for many of us law students, which is the cost of legal education. So what kinds of tools do you and the ABA have to, whether it's, you know, lobbying federal government officials to, you know, reform the process of student loan granting or try and incentivize schools to make legal education more affordable for students so that that isn't a huge financial barrier for people who want it. Yeah, we're working on, it's kind of all of the above. We, first of all, the ABA has its own scholarship programs for those in need. We advocate on Capitol Hill for more programs that have, that provide opportunities for people to come into the legal profession. So we're doing it both in terms of our own pockets, but also urging the government and others outside of the ABA to support these programs that give access to legal education. It's critically important. And I personally, I mean, I won't give you numbers, but I'm deeply engaged in that work. So Marcia and I were just talking about you. Yeah. It's good to see you. Oh, it's my privilege to be here. Yeah, applications of a judge, et cetera. And we particularly saw that, I think, in the last presidential administration. So I wonder if you could talk about how the ABA's music role, I suspect, is attendant among the membership in terms of what the role should be. Well, you know, let's just say we're a little more comfortable right now that the ABA will have a role, a usual role in the vetting of federal judges. And I think that the, both the Biden administration and the Senate Judiciary Committee as constituted now understands that the ABA has a nonpartisan role in this process. And it's one of the reasons why the ABA considers that lawyers who serve on the Standing Committee of the Federal Judiciary for the American Bar Association do not give any partisan, make any partisan political donations. We want it to be a neutral arbiter as to the qualifications of those who are seeking federal judgeships. And there's already a big buzz about the most recent Supreme Court nominee. And we are steering clear of making any pronunciations with respect to her nomination until after the Standing Committee on the Federal Judiciary does its thorough background check and the committee will present its findings to the Senate Judiciary Committee not on the basis of politics but rather on the basis of the qualifications that are needed to serve. Thank you, but also a member of the bar. One of her concerns as a young lawyer has been the lack of mentorship from older lawyers because it takes time and money. What is the ABA actively doing to ensure that new lawyers are properly supported by their more experienced colleagues? One of the things that helped me get into the American Bar Association was just the fact that I received a scholarship to the University of Michigan. I think I mentioned to some of the folks earlier, I worked my way through undergrad, loading trucks at night at night at parcel service. Both my parents were public servants as I mentioned earlier and they didn't have money to put four kids through both college and grad school. I actually worked two jobs, I loaded trucks at night and I worked in a drug store on the weekends to pay my tuition through Wayne State University and when I got that scholarship to the University of Michigan, I changed my life. That's one of the reasons why I have such a soft spot for this wonderful institution, the University of Michigan. There's always much to do and I think we all need to consider how we can help those who need help join this profession whether it's the legal profession or public policy generally just about, I mean there's always room to help this university make differences, quite positive differences in the lives of people who would benefit from the wonderful opportunities here on this campus. And it's all, and I know that not everybody's going to be in a position early in your careers to give a lot of money. I started giving money shortly after I graduated, very small amounts and they've grown over the course of time but I think it's up to all of us to ensure that the generations that come behind us especially those people who are in need have the same opportunities that we have. We've had a bit more work to do on advocating for violating the rule of law and I know that Rudy Giuliani was this part from the New York State bar. I was just wondering how does the ADA approach this type of question, especially when dealing with figures who are so public in their profile to get in comment at all? Yeah, we typically don't take sort of political kinds of positions. We do, we get involved in pro bono litigation from time to time but we are careful to kind of stay in our lane so to speak and there are public policy cases in which from time to time we will submit amicus briefs in order to help but they're not necessarily briefs that will always point to a specific result in the case but rather thoughtful issues often those briefs are composed with issues that we think the court may miss if they don't have an opportunity to receive the work that we do and sometimes they are more pointed than that and they actually do suggest a particular outcome but it's important to those amicus briefs are a very important part of what we do. I have worked, I've had two or three voting rights cases over the course of time as a pro bono lawyer and have been involved in programs that support voting rights from a proactive stance to make sure that people get to vote one of the things that I learned from Dennis Archer was the importance of making sure we have free and fair elections in the US so that's been a significant part of my career when I was my first law firm after leaving the clerkship in 1989 I went to a union side labor law firm called the sex nun Kate's Caduceus and Waldman in Detroit and it was a great firm one of the largest union side labor firms in the nation and they also had an orisa section within the firm so I learned how to do core labor law learned the orisa issues but they also were counseled to the Michigan Democratic Party and so I did my first voting rights work and redistricting work and I got that law firm and so it was a great experience I think it's very interesting work to do and it's a great way to do some pro bono work is to work on voting rights access to polls etc it's critically important it's one of the best rock of our constitution I encourage anyone and everyone to think about getting involved I was actually there's a group in southeast Michigan right now that's working diligently on voting rights for the upcoming election and they actually invited me to get involved but I had to say no which is not something I often do but I told them I explained to them I have three jobs right now I'm still doing client work at my law firm I am president of the American Bar Association and I'm doing meetings like this day in and day out I'm also the special personal representative for the Aretha Franklin estate that is a great honor her family chose me to help manage the estate through its closure I'm almost two years into that and we're getting close to the end but she was kind to me on the times that I interacted with her my favorite time that I interacted with her was when she and when I was president of the Wolverine Bar Association which is the African American local bar for southeast Michigan I invited her to the Barristers Ball and she came and stayed the whole night and that was really cool so that estates so we're getting three jobs going on right now and I don't have much room for doing a lot of things fortunately my wife and daughters still put up with me


The unavoidable fate of the Narcissist. Narcissists always manage to escape blame, punishment and undesirable consequences, while you are left in a state of lasting shock, as a result of a disturbing experience. You are left stripped of your health, happiness and resources. And it looks like the Narcissist is riding off into the sunset. They're beginning a new happy life as if you never existed, as though what they did to you is not important. And it may make you believe that there is no God. There is no higher power watching over us, so bad people are able to run rampant and get what they want. They're being rewarded for their bad behaviour, while good people are being destroyed. It's like there is no karma. There is no good or bad luck resulting from our actions, because nothing bad seems to be happening to the Narcissist. While our lives have fallen apart, it may seem like a lack of fairness and justice. It may seem like a violation of our rights, but trust and believe that they are getting their karma. Karma never loses an address. Every action, whether intentional or not, comes back to you. Karma never forgives or forgets. And the Narcissist is getting their karma every day.  The Narcissist may have taken all of your money. They may be enjoying their new lifestyle, with their new partner at your expense. While you're left without anything, you may have lost your job, you may be alone, and you may think that karma doesn't exist, or you may think that it's not working, but money, relationships, and material things are not the source of our happiness. Happiness comes from within. Happiness comes from who we're being. It has nothing to do with what you have or don't have, which is how Narcissists can have a lot of money, yet still be lacking the means to provide for themselves, because they have no sense of being. They're not at peace with themselves. They're not grateful for their blessings. Because they're not grounded, compassionate or empathic, they have no true self. But you may feel unhappy as well. You may feel like you are lacking wealth and success. You may feel like you're not in the position that you desire to be in, but you have the ability to heal yourself. You can release your trauma so that you achieve a higher level of consciousness, so that whether you achieve something that is moderate and small or grand and impressive, you will deeply appreciate it. But the Narcissists will never have that, because they have no true sense of being. It's based on external sources, so they will never appreciate anything they have. They will always be stuck in an unpleasant situation that causes them a lot of suffering, because no matter what they get, it will eventually become normal to them. They will get bored of it. They will find something wrong with it, and they will need something better to replace it. They may think that they finally found something to fill their inner void, but then they realize that's not perfect either, and it just drives them insane. It's killing them inside. They may seem happy with their new partner house or car, but those things soon begin to lack vitality and excitement. They begin to irritate the Narcissists, because they're not attractive enough. They're not expensive enough. They're not impressive enough, because maybe someone else has something better, which makes the Narcissists feel like they're stuck in an unfortunate situation, and it is why they must constantly steal and use of other people's energy and resources. There are so many rich and famous people who are suffering from depression. They have drug addictions. They're suicidal, even though they have everything, because they've never found peace and happiness within themselves. They thought money and possessions would provide that to them, but they have no true self. They have no sense of being, and that is why they can't give out feelings of joy from the lives that they are living. But I have seen plenty of my clients find happiness in their lives. I have seen them taking the focus of what the Narcissist is doing. I have seen them taking the focus of what the Narcissist has, and I have seen them return to good physical and mental health. It all starts by taking back your power and leaving the Narcissist unable to affect you anymore. Many of my clients have done that, and they have seen the Narcissists get their karma. They have seen the Narcissists lose their new relationship partner. They have seen the Narcissists lose their money and power, because the Narcissist just ends up shooting themselves in the foot. They end up getting more than what they bargained for. If you give them enough rope, they will hang themselves.  Karma is real. So trust in its process. Whatever they think they have gotten away with, it will come back to them at some point in time. That same energy that they were given to you will eventually come back to them. My paper link is in the video description. Coaching Inquiries. You can email me at coaching.narcisfiver.uk. Thank you for watching, and I'll talk to you soon.


Welcome to the first episode of Online Safety with Sango! I am Sango and today we will kick off our cybersecurity season by speaking about smartphones and tablets. The internet is a great place full of exciting adventures and great opportunities for you to develop your skills and interests. For example, we can do our homework online, learn a lot about dinosaurs, check our online register, communicate with our friends and stay connected to them, play video games, listen to music and watch TV series and movies appropriate to our ages. However the internet is also a place that hides many risks if we are not careful about our behavior when we surf the internet, play games and more. Today we are here to learn step by step how we can protect ourselves when we communicate, play and surf online. What can we see in this image? Well, the answer is really simple. It's a house. What about now? I'm sure you know what it is. It's a tablet.  Inside your house you can move around thanks to light that comes in from the roof and the windows or from artificial light. This light is the internet that illuminates the rooms and allows you to do what you want inside them like play, communicate and more. Without any light you wouldn't be able to know what you are doing. So what are the rooms in our digital house? See, the apps represent the rooms inside our house. Our digital house can have many rooms inside it where we can do a lot of fun things like reading, playing, listening to music and talking to our friends. But what do your parents do when they're not at home? They'll probably close the windows in the rooms and lock the door of the house with a key so that your home can be protected from dangers and threats. We have to remember to do the same thing with our devices. And what is the key to our smartphone? A password. A password is the key to our digital house. A password is meant to protect me, my home address, my age and my school. It is also meant to protect my family and their personal information or to protect their money. But a password is also meant to protect all the activities we get up to in our digital house like the games we play and the photos and videos we take. In our digital house, we have two kinds of keys that we can use. A password and a passcode. A passcode is the key to your smartphone or tablet. Without this code, any person can enter your smartphone or tablet without your permission and can access all your information including those inside your rooms and apps. In fact, the password of the apps are saved in your smartphone or tablet and you can access them without having to use their passwords every time. A password is instead the key to the doors of your rooms. So how can we use our digital key to protect our smartphones or tablets? Remember to set a combination or a code of at least six digits to block your smartphone or tablet and try to avoid using information about your date of birth or any number that can be easily associated with you. This information would be easy to guess.  Always lock your smartphone or tablet when you are not using it and never leave it around unattended. Instead, a password is the key to the doors of your rooms. Just like inside a real house, the key to every door is always unique. In this case, we have to create passwords that are easy to remember but difficult to guess. We should try and make them long and complicated using elements that only us and people close to us would know. We should also try to enrich them with different punctuation and numbers and by alternating between capital and lowercase letters. Remember that it has to be at least eight characters long. Often when we surf online, we can come across adverts or notifications that tell us we have won prizes. It's very important to never click on them as they are usually scans. All clear now? See you again soon for our next episode about privacy and personal information. Until then, stay safe, stay tuned and engage. Bye! Thanks for watching!


Hi, my name is Terry Dolan, and I have the honor of serving as the President of the American College of Dentists. And today we're honoring a very special recipient of the William J. Geys Award, the highest honor offered by the American College of Dentists. Dr. Leo Rouse has been committed to the dental profession since the third grade, when his family dentist became his role model. Since then, his energies have been devoted to the profession. Dr. Rouse has contributed in many ways, as a clinician, an educator, a mentor, an Army officer, a leader, and a strong voice for the profession. His experience of having a strong role model instilled in Dr. Rouse the importance of mentorship and taking time to instill in others the joy of dentistry and helping others. When Dr. Rouse speaks, people listen. He has used this gift to advocate for dentistry, whether in the armed services, dental education, or the profession as a whole. Dr. Rouse's career started in the military, first as a captain in the Army Dental Corps. Eventually he rose to the rank of colonel and served in several leadership positions, including Commander-in-Chief Operating Officer of the U.S. Dental Command. His service has been recognized by his many awards, including the Legion of Merit, the Meritorious Service Medal, the Army Achievement Medal, the National Defense Medical Award, the Army Service Medal, and Army Overseas Medal. After leading in the armed services, Dr. Rouse joined Howard University, where he served as Associate Dean for Clinical Affairs and Chair of Clinical Dentistry. He was appointed as the Interim Dean of Howard University College of Dentistry in 2003 and was then awarded the deanship in 2004. Dr. Rouse retired in 2015, and his distinguished service to Howard University was recognized by the awarding of Emeritus Dean status. Dr. Rouse is a leader among leaders. His leadership acumen is widely recognized throughout the dental community. He was recognized by his peers with his election as Chairman of the Board of Directors for the American Dental Education Association, an organization which serves as the voice for more than 25,000 dental and allied dental education students, faculty, and staff. He also served as President of this organization, a leadership position which is the pinnacle leadership position of our profession. His exemplary service to the profession has been recognized by numerous awards, including the IDEA Distinguished Service Award, the ADA Distinguished Service Award, the Legend and Trailblazer Awards from the National Dental Association, and an honorary Doctor of Humane Letters from Western University of Health Sciences. Dr. Rouse has positively impacted the lives and careers of thousands of dental students, dentists, and allied dental professionals. He is most deserving of this Distinguished Award. And so it's my pleasure, Dr. Rouse, to present you with this distinguished honor. If you would please step up. Yes ma'am, you gave me water. To my dear colleague, friend, favorite Jersey City native, and someone who's contributed so much to the profession over the years, Dr. Leo Rouse. Thank you, Terry. And I'll take this and please share some words with us. Oh, boy. Thank you very much, Terry. Wow. I am humbled, first of all, and those of you who know me personally, I don't like to be recognized, I always use the term of expression when I get an award presented to me. Everyone in the room are my credentials, which means what? I stand on the shoulders of giants. And this board has been one of my most memorable assignments in terms of what I've done for the ACD for many, many years. And to look at all these wonderful faces, all friends. And to really, Robert Lam, I'm sorry, I missed your meeting in Houston, but thank you for your leadership. And Terry again, my home girl. I'm humbled. Why? Because those of you who know me, I spend a lot of time thinking about the profession of dentistry. I'm basically very much in tune to how we can integrate all healthcare in primary healthcare. That's what I like to do. When I was president of ADEA, I essentially succeeded Sandra Andrew. Some of you may know Sandra. And we got into this discussion about IP and collaborative practice. And that's what I spend a lot of my time doing now and reading. This is a great board. You know, and I want to again welcome Mike, Graham here. Mike, I've known you for a few moons. But more importantly, the leadership in this room is just awesome. And I can tell you when you nominate fellows for the future, look at your colleagues in your regencies. And really give them a good look over. Because you want to have folks that understand the values of the American college. Ethics, professionalism, leadership. You want talented men and women to be a part of this organization. And so I've been blessed to lead a distinguished group of wonderful men and women. Colleagues, as I refer to you as. All of you, please forgive me, I'm standing here. I left my WD-40 in the car. I wanted to give a little skk to my right hip. But the weather is interesting.  And two years ago, or whatever it was, three years ago. And I remember Robert Lamb kind of dragging me out of the auditorium here in Rockfield, get where it was, Susan, to get me back to the hotel and getting bed because I'm falling apart. And more importantly, I'm humble, Terry. I really didn't have a prepared speech, but I do know we need to continue to work for the profession. So important. And, you know, don't take it lightly. This college means a lot. The conscious of dentistry. At Adir, we were the voice of dental education.  So let's keep it moving. Thank you so much for an opportunity to receive this award. Susan, where are you? There you are, way back. Thank you, Susan, for really just, shh. You make sure you get there, Dr. Rouse. OK? As you know, Susan, we've been buddies for a long time. But I wish you all a wonderful meeting. I have to get downtown a little bit. I want to hear Veronica's presentation and her award. I just met her today, another home girl from New Jersey. And a wonderful spouse, a wonderful partner. That's how you meet people, events like this. And to hear their stories. And so I'm very privileged and proud. And especially to have you and Robert Lam here and the rest of this board. I appreciate it. Thank you very much, Paul. Thank you. Leo, first of all, very much congratulations to you. And it's a wonderful award. And it's very much deserved. And we're all very proud of you and proud to know you and thankful for your work through your career. So thank you very much. Thank you. Now it's my pleasure to honor and recognize Dr. Veronica Bakovsky. She is here to receive the ACD Outstanding Service Award. We're very honored that she would come. Dr. Veronica Bakovsky, inspired by doctors Justin Stone and Sidney Whitman during her residency program at Newark Beth Israel Medical Center, that's called NBIMC, began devoting her Thursdays to providing operating room dentistry for special needs patients. That was only the beginning. By 1983, Dr. Bakovsky was appointed to the position of principal clinician and directing partner of the Beth Dental Group, a successful urban practice group funded by a grant from the Robert Wood Johnson Foundation. In this role, Dr. Bakovsky was responsible for the operating room dentistry at NBIMC. Over the course of the next four decades, Dr. Bakovsky provided dental care for many of New Jersey's underserved and special needs patients, two groups who are tragically neglected in our society, as we know. Not only did Dr. Bakovsky provide life-changing oral health care for this population, as Dr. Clifford Lisman wrote in his letter supporting Dr. Bakovsky's nomination, she simultaneously supervised and trained scores of dental residents in the procedures she performed. Dr. Bakovsky has effectively created a cadre of well-prepared dental providers with the knowledge, heart, and will to serve these populations. In 1983, Dr. Bakovsky was awarded the Dentist of the Year Award at the New Jersey State Annual Session. Dr. Bakovsky continues her service to the special needs patients today, 40 years later. While this ongoing service would be more than deserving of this recognition, Dr. Bakovsky also set up an onsite dental health care facility to provide oral health care, sorry, for the residents of Lester Senior Housing. At the other end of the age spectrum, she has also been actively involved in the dental screenings and treatment of the Newark preschools children. Dr. Bakovsky's work is not confined to the United States. On five different service tours, she has provided dental care for the Free Children's Clinic in Jerusalem, Israel. This outstanding body of work has not gone unnoticed. Dr. Bakovsky has been recognized with the New Jersey Dentist of the Year Award, Dr. Rebecca Freelander Award, President George Bush's Point of Light, the New Jersey Governor's Jefferson Award for Public Service, and the Presidential Lifetime Achievement Award from the New Jersey Dental Association for Community Service. In 1983, as ADA President Burton Press awarded Dr. Bakovsky for her amazing work, he said, and I quote, her compassion has enriched the lives of many special people. Her compassion concerning commitment reflects the highest ethical and humanitarian standards of the dental profession, end quote. Dr. Veronica Bakovsky is most deserving of recognition for her outstanding service by the American College of Dentists. Congratulations, Dr. Bakovsky. I can't dance the way I did. Maybe we won't ask you to dance. Maybe, you never know. I feel so honored to be here amongst so many people that have done so much for the industry. And it is an honor to be with my trusty partner here to be accepting of this award. Thank you for honoring me for the American College of Dentists Outstanding Service Award. On a personal level, it has been very gratifying to treat all the children and adults that I've treated. To see it in person, I want to thank Dr. Bakovsky and the adults that I've treated. To see the light in their eyes. To know that someone cares for them has been very, very much stirring to me. I feel as though I accomplished my life's ambition to do service. And that's what I thought I did. Raising children is not easy. But having children with special needs is particularly gratifying and challenging. I accept this honor and honor it for myself but all the special needs children that I've treated. And thank you all. Thank you. Congratulations, we're honored to have the opportunity to honor you, Dr. Bakovsky. Thank you. Thank you all very much.