Showing posts with label Thank. Show all posts
Showing posts with label Thank. Show all posts

Wednesday, 23 October 2024

Brad Smith Remarks at US Senate Judiciary Subcommittee 52417

Thank you, Chairman Graham, Ranking Member Whitehouse, Senator Hatch, it's my pleasure to be here on behalf of Microsoft this afternoon. Certainly, before I say anything else, I want to echo your thoughts, and the views of so many Americans, in expressing our condolences and our concerns to Mr. McGuinness and all of the people of the United Kingdom. Today's hearing gives us an opportunity to address related issues, the important need for law enforcement to work across borders to obtain information it needs, while avoiding conflicts with other countries laws. The issue is not new, governments have long turned to Mutual Legal Assistance Treaties, or MLATs, but the world has clearly changed. As a company responsible for storing and safeguarding citizens' most private information in the cloud, we long recognized that new laws are needed. I first want to underscore Microsoft's appreciation for last year's work to negotiate a bilateral agreement between the United States and the United Kingdom. This agreement is a positive step forward which we support. Second, I want to thank the Department of Justice for proposing a new framework for U.S. law. While we have important concerns with some aspects of this proposal, we have long urged the department to consider new legislation, and this is a welcomed step. Since Microsoft filed this lawsuit in 2013, we've stated repeatedly that new law is needed. We recognize that criminals sometimes use technology across borders, and that MLATs and legal principles designed for the 20th century simply have not kept pace. Unfortunately, while the use of extraterritorial search warrants in the short run have sometimes helped law enforcement, they have created their own set of problems. First, they've led the conflicts between laws, even among friends and allies, as countries seek to protect the privacy of their citizens. These conflicts put technology companies in impossible position of deciding whose law they will break. Second, the use of extraterritorial warrants undermines foreign confidence in American technology. They drive foreign customers to foreign products and put American jobs at risks. These concerns led to our lawsuit, objecting to extraterritorial search warrants to obtain information stored in our data center in Ireland. Last year's court of appeals decision, supporting Microsoft's position, makes clear that now is the time for congress to act. While important details remain, the DOJ's proposal opens the door to a new and constructive discussion. Importantly, the department proposes a new legal framework that would enable companies that have information in the United States responsive to a foreign warrant to turn that information over directly to a foreign government in specific, appropriate circumstances. It would do so in a way that both complies with foreign and U.S law, and in a manner, that protects privacy and civil liberties. Ultimately, we have one fundamental concern with the DOJ's proposal, a concern that can be addressed readily. The DOJ proposes a new standard for allied and friendly governments to obtain information located in the United States in a manner that respects U.S law, namely through this new framework, but the DOJ would not follow that framework itself. Instead, it wants to revert to extraterritorial search warrants despite all the problems these create. Put simply, this isn't going to work. One year from tomorrow, on May 25, 2018, the European General Data Protection Regulation will take effect. On that day, technology companies that comply with the DOJ'S proposed extraterritorial warrants for information stored in Europe are almost certain to violate European law. In fact, they will be subject to a fine of up to four percent of worldwide revenue. Instead the U.S. needs to consider the same framework for itself, and demonstrate respect for borders and reciprocity with allied and friendly nations. This isn't simple, but it's achievable. We have a year and a day to solve this. We'll need important work by the subcommittee, it will need to build on the DOJ proposal, and it will need to build on the sustained work of senators Hatch and Coons. It will also require a broad dialogue. Speaking for myself, and considering my colleagues across the tech sector, I believe we're willing and able to help. Thank you.

Monday, 21 October 2024

ASP NET Core Health Checks

thank you so I think I'm life yes you hopefully cool so let's start yeah I will talk about the asp.net core health checks today but first I will quickly introduce myself so my name is Sharon Gooch I'm from southern Germany I'm a Microsoft MVP for several years five years I think I'm blogging writing a lot leading it on a user group since years and speaking at several community events and meetups and I also started a stream on Twitch not regularly but from time to time and I'm a software engineer at the U in Basel so I'm working Switzerland living in in southern Germany hopefully the sound is good last turn last year the first 10 minutes were awful it's it's going well this time so I have a quick agenda oh I need to quickly close not close minimize Skype window as well I see two versions of the agenda currently so yeah I will quickly quickly introduce asp.net core health checks and then I will show a basic implementation of the health checks and there are also a lot of checks in the community so we'll have a quick look there and how to visualize the health of subsystems of an application and if it's some time left I will show you quickly on an enhanced scenario so I built something with docker containers to show how this could look like so all the sources I will show today are will be available on github so the repo already exists but I will push it afterwards so what's next exactly about the health checks what are the health checks so that health checks are kind of a framework inside of the ASP and framework to check the health of application subsystems maybe databases or services which are not inside the application or you can also check your your system you can check memory you can check your space of your hard drive whatever you want to check you can also handle the health of your subsystems we get a feedback and the checks give you the state of your subsystems and you can handle them we can show the states in your weekly application and you can provide an endpoint to show the information about the health of your current application and of the subsystems of the current application so the namespace is Microsoft add extensions that diagnostic start health checks you'll find all the stuff here and yeah a little bit of history so I'm was pretty much involved into health checks so the development started at 2016 I think I'm not sure when exactly but during the MVP summit in 2016 LAN Condren asked via Twitter if there's anyone who want to attend the asp.net hackathon and help him through write checks for the asp.net health checks the first version I think it was a draft at that time so Damien said yes I said yes and we met Glenn Conner in an Andhra nurse at the asp.net hackathon and started hacking some checks then it moved through some repositories until it makes it into the product so it is in the product still in speed on that code 2.2 I think what can you do with health checks you know maybe mention it it is monitoring the health of parts of your application or yours or subsystems of application imagine it databases some Web API is G RPC service is any other services or the environment of application you can check memory performance drive space and so on and you can provide the health state of your application including the health of the subsystems you want to check so you get an endpoint that that tells you about the health of the whole system the entire system I think yeah that's almost about the theory why should you use the health checks yeah you can handle unhealthy states in the application you can maybe provide information to the users that some of the subsystems or databases aren't available currently you can keep you a partially running in case of an unhealthy state of an subsystem maybe there's yeah a specific database not running and you can keep your application partially running without this database for example or you can tell the users about the unhealthy state and so on I can switch to alternative subsystems in case of an unhealthy state of this specific system subsystem maybe you have a different one and what I didn't mention here in the slide is you can provide a an end point I think it's the exactly same endpoint to the what is called Essure a load balancer thing as I can connect your Asia environment to this end point and the load billets I can is able to to switch the applications or they the switch between the instances of your application okay let's share some code and this section I will demo you a simple implementation of health checks so this is the kind of agenda of this section just created a spill don't care a SP donate core MVC application using the.net CLI I already did this then we will configure some basic simple health checks without any logic in it we will implement a custom health check and we will use the health health check service to to curl the checks and to to visualize the states of the subsystems this is the basic configuration of the startup of your SP donut corportation you can add the health checks services and the configure service method and you need to provide the the endpoint I mentioned this is the endpoint which provides the state of your application including the subsystems so we say abuse health checks is the mom exactly I will switch to the console hopefully the font size is okay we can increase it a little bit and I'll open yes code and go to the startup and this is common asp.net MVC application already added the health checks here I'll check your services and I added the endpoint this is a little different than in the slides because in asp.net core 3.0 we have the new endpoint routing and the middleware which provides routes are now registered here with map something map controller route or map health checks this is the endpoint I mentioned so this is the basic configuration just to add health checks or just to have the possibility to bad health checks so now I want to add a few health checks so this is a way to add the liquid based Orlando based health check pretty simple this doesn't add us nothing here it just outputs unhealthy state so we can say add check yeah I'm sum over I to you you can do it the delegate way or we can add an health check instance we don't see this later we can do it the generic way to add an health health check type here Oh as well with thee with a funk we get a health check result so we return the result that's that so that's one I can also return an unhealthy States or some options some things to return we can return healthy unhealthy or something but in between degrade it so we leave this and I have another quick sample which is more useful I think it is a check to ping a subsystem okay this one starts a ping oops wrong keys here I did you know that you can press windows start to add emojis here yeah what works okay we create a new ping I said send the ping to localhost because it's currently it's hard to find a service on Azure or somewhere which responds to a ping I think all the edges services don't respond so I can't ping dead confident nets are also kind of ping my own block and so on so I need to find find a host to ping so if it's not a success state then I will return unhealthy if this needs more than 100 milliseconds I think yes then it's degraded it's pretty slow then and if it's all fine I will return and healthy state so in case of errors I will also return an unhealthy state I think that's with the delegate a checks but we can also create more your more complex checks using classes so it's this one you can create an eye health check so I need to find the interface it's not implemented correctly so I need to get this one the cancellation token and now it's implemented so it's almost similar to their to the lambda expressions here so I in this so we will return a health check result and get a context and we get a cancellation token so this is more complex way we can check the state of something so this is just an example I set it to true so it's healthy and if it's if the subsystem is healthy or we return our healthy state and otherwise unhealthy state so here this line you can put your checks whatever you want to check I will show you a more useful sample later okay so we need to add this you say add check I'll use that generic way it's so I don't need to add a name next ups let's get be null I think and here we need to add some tax a different keyboard layout here so now it's working so I'm switching between German and US American layout okay so this should work but I this should work if I call the endpoint let's try it I press ofin the five also the language is switching between German and English I'll place only if something bad with the with a stream font size audio and so on okay if this should work buzzer OH open up in the wrong window so yeah yes so it's running if I press f5 um I see something's going on here and the end and wash think it's unhealthy yep it's unhealthy the complete application is unhealthy because of this here if I switch this to the healthy state I've said it okay I'm to restart it it will be healthy so this is the endpoint okay you can't extend the endpoint a little bit so I need to find the snippet for this yep there's some options we need to set and configure and we can have this lines here say predicated true say response writer s d-u-i response writer to find the using so this isn't there okay let's check the namespace check options response my turn okay let's remove this I was sure in the next day more than okay that's about the one endpoint but what about visualizing so to visualize the the health of the epic of your application now I can use their health check service and you can call all the checks on demand and display reserve and the results in your view so to do this I'll go to the home controller and inject the health check service so like this this is already in the DI container so I can use it wherever we want and I'm going to add a new view so I also need to add the views here so just copy the privacy and call it health and put some code in it so okay so we use the diagnostic self checks here our model is the health report and then we write out the the status of the models of the model is the health report we return this from the control action we can display the duration of all the checks and we can iterate through the checks and display the state of all the checks we have okay let's change this back to unhealthy turn a better message and restarted so paid there so we haven't created a link for the health I will do it so I think I did something wrong at the end point end point and if you do have the same URL so I will rename this end point no I'm wrong I did it wrong so I shouldn't have changed the the end point here it should be under home health exactly so that's it so the state is unhealthy yeah needed five milliseconds seconds or milliseconds than that so the foo is healthy the bar is not healthy healthy and we have the ping here you should have set the name and we have the simple health check so the ping is healthy don't we have a name here tag [Music] should be pink they don't see it yet I don't know why anyway so it's working we have the the health state of our sub substance here and we can also add an indicator to the page to see if the entire application is healthy or not so to do this open the layout see is HTML pennants injection here so you can do a dependency injection in your view I inject the health check service and I use it in our code block let's put it here so we await that check health async armed with this we get the health health state so I think this is a health state response our health result so as you can see it here this is a health report okay that we have the same in the layout and we can check the states here so as SATA background come current in case the state is unhealthy degraded or I don't set it in case it's all healthy so and I'm able to set it here and let's see what happens I need to repeal it I think yep so let's close this one now the head is red and unhealthy and if you changed this and let's say this is decorate it to rebuild it again it should be orange them or whatever set here orange yes so under and healthy state doesn't have a background color so it's it's white okay do we have any questions until yet if not that will continue with the slides out there and let's have a quick look into what the community did so what was expected after I had another look into the health checks health checks um a post playing around with the health checks for a year or so uh didn't had a look until this time this period and after had another look expected some health checks created by Microsoft but there are almost no health checks the reason is that it's pretty simple to implement some and the other reason is that the community already created a lot of health checks so if you see this slide yeah if you entered interested go to this repository that's better it's a burial I'll pronounce it right he created the asp.net core diagnostic health checks package or packages on the right side let me see a list of nougat packages available so you can check the system cat Network sequel server MongoDB and so on ready event store secret light a lot of other stuff also um Amazon Web Services can't be checked and fire a signal or and so on Kuban eighties and I think the list will increase a lot so this project is port from beat pulse and it also provides UI features so well show you in there more enhanced steam off so please have a look also you some of these packages to check sequel server or or Seco light and so on um also try to check circulate I think this doesn't work currently I need to check it again maybe I did something wrong and if not I will a pricing issue you also it wasn't possible to connect to and secure light database you know inside the docker container that's didn't work okay so about the health check your ISO also ends of this project they created a pretty nice health check UI so you can add it with with this service registration and with these middlewares here and this also provides another endpoint which is specific for this UI and it also provides health checks UI endpoint with them with a nice HTML UI so let's have a look what I did for this demonstration I created something like dummy weather statistics application downloaded a lot of weather data from Washington State I have implemented four different with the station spree mutton Cedar Lake and Monroe and a health monitoring app and what's missing currently so where the data visualization app but this is not important here and it's all running on docker I'll close this one here and go to the console this one oops openly is coached there so these are six applications this one doesn't count it's not implemented yet at at a common library to share classes also shared the the dbcontext this is this is the health monitoring app and we have the four different weather stations here I'll go through the f qor to connect to the secret light database so this is all wired together with docker compose this is the visualization of the health health visualization export some ports it depends on the day and therefore stations and also need to link the docker containers together it was talking it working stuff here and I created four different docker files per container one to run so so let's quickly look here this is the configure services of the of the check visualization app so I created the dummy foo health check just to check whether it's working or not and edit a database context check I think this is the only health check provided by Microsoft the only finished health check then added a check for URI so this is called your group it's in the URI package you can set your I want to check give a name like with the other ones you need to tack this or it make sense to tag this let me to filter it later on so I created for ping checks and for data checks there's this one for checks only check whether the services are available or not and the other one are really loading data and check whether there's a result or not so I also added the health checks UI and also set it to the to the after the apps here so this is the health checks this is what I wanted to show in the previous demo you need to define a different response writer and with this you can enhance your own endpoint to add some more information I will show it quickly and I need to add the hell check CIA middleware so I don't want to start it here with Mia's code I used the console one and run docker come powers up it's all compiled and it only needs to start so all the services are available so we see the name docker container here tennis here this one is the monitoring app and the other ones are the stations so it's called 5,000 that's not HTTP and it's running this one is just a single Web API application and this is our endpoint we extend it so now we get a JSON result we get this state here it's not a longer a simple text and we get a lot of more informations so the duration we get all the entries these are all the checks we have they have the checks I also provide it's an endpoint this is almost the same but needed for the for the UI so and this is the after checks UI provided by these guys by the community so and here we see all they all the services that are running so these are running in the docker container this is in the alternate docker container but in the end the visualization yep and this is our dummy justice to check so what happens if we kill one of these ok a little bit so here are the containers running so looks a little bit bad I will resize it all the way around so like this ok I want to kill one of them let's say the weather station in canvas well don't have container killer okay some it was the idea it's just darker kill it's it's not docker container kill really try to lift up your containers there you go yeah no it's killed thank you almost almost done let's just this last demo okay you can see now there that station in Kent was offline its offline and you see the checks are unhealthy no okay so that's pretty much it um I say thank you and hopefully you enjoyed it I thought I really liked seeing the level of community interaction here with the health checks you're right they're so simple to write and already so many of these that really help with those other integrations and services that we want to know the health of mm-hmm yeah absolutely there's a lot of implementation see a lot of documentation and from the community yep the user interface right we saw the same thing with the folks who do swagger stuff to have health checks you want yes it's something every user administrator is going to need yeah absolutely yeah I didn't know that I'm I definitely need to make sure I had that to my applications going forward thanks to thanks for hosting thanks for having me for champagne

Activating Civic Power for Social Impact

I just want to thank all of you for being here today and particularly thank the PopTech and Microsoft Envisioning teams for gathering us here. This is really, really juicy and I'm really appreciating what I'm learning already this morning. I wanted to say a word about the work that I do. My name is Eric Liu, I'm the founder of Citizen University, which is a non-profit. We're based in Seattle, but we do work all around the United States. Our work is fundamentally about trying to democratize understanding of how power works in civic life. We've got a variety of programs that do that and I'll describe some of them. But I want to say actually a word in the first place just about our world view. And this flows in part from the conversation we've already been participating in this morning, and some discussion we had last night, some of us over dinner. I think it's really striking how much resonance there already is between the presentations we've heard, and one of the things I want to name and just call out that's just a thread among all them and is core to our world view at Citizen University, is the ecosystemic view of things. Our work ... I wrote a book several years ago called, "The Gardens of Democracy" and the title of that book contains a bit of an argument. One that we've actually heard elements of this morning and the argument is this. That so much of the way we think about work, the economy, community, civic life is through the metaphor of a machine. Right? We're hearing [inaudible] from and others about this kind of obsession with efficiency and this mechanistic view of the purposes and the operations of all the ways that we work together and deal with one another in public or not in isolation. And the argument of this book was essentially that while that metaphor of the machine is useful in some ways, and it's illuminating, and when you actually start paying attention it's ubiquitous, right? We talk about the economy as a job creation machine, we talk about whether the Fed should tap the brakes on growth, we talk about priming the pump of economic growth. All these mechanistic metaphors and in politics as well, we talk about political machines and we talk about the ways that we relate to government in sort of the sense of a frustrated consumer who's put coins in a vending machine and then didn't get our candy bar, right? So we kick the machine. There is some utility to that metaphor. But I think this morning really underscores the ways in which that metaphor also blinds and it limits our sense of what's actually going on around us right now. And that it's properly understood. An economy, a workforce, a neighborhood, a community, a polity, these are gardens not machines. They're complex adaptive systems. They're networks that have organic life to them, that bloom and cascade in the ways that we're seeing images of all this morning. And the role of the worker, the role of the leader, the work of the manager and the work of, certainly of the citizen, is to be a gardener. Right? Gardens when left entirely to themselves will grow like gangbusters, they'll be awesome. And a laissez-faire approach to a garden, yields initially beautiful blooming growth. But then when you continue to be laissez-faire, it yields an opportunity for noxious weeds to take root and eventually take over and kill the garden and tip things over til they're all dead. Gardeners garden, gardeners weed, seed and feed. Right? And I think I wanted to kind of dive into that metaphor a little bit by way of opening because it seems like one of the ways that we segway from this conversation about networks in general and networks in workplaces and networks in a beautiful instant and yet evanescent polity like Burning Man, in all these cases, we're thinking ecosystemically and we're thinking and behaving like gardeners at our best. Right? So that is the spirit of our work at Citizen University. And one of the things that [inaudible] asked me to do here was to try to connect some of the dots between work and civic life. And the fundamental question before you here, which is the future of work, and I really like the way that Anton described this theme. That it's not about just enterprise workplaces and about context of work at your job, but just what it means in fact to, as my friend Howard Gardner at Harvard says, do good work. Howard has launched a thing called The Good Work Project that is looking at what is the meaning and the essence of good work in any domain. Whether it's a profession, whether it's your life as a citizen, whether it's in your life in family or faith, what is the essence of good work? In our work at Citizen University, I've learned several lessons that I wanted to share some reflections on today about the nature of networks and the way that networks in this day and age are activated for civic change. I think it goes without saying, I think we all recognize no matter how politically or civically engaged you might be personally, that we live in an age of citizen power. We live in an age of bottom up upheavals and that's not just the politics in the United States of the last year, it's the politics of the United States going back at least to 2010 and the arrival of the Tea Party, Occupy Wall Street and other such movements that have since bloomed here. But of course it's not just the United States, it's the Arab Spring, it's the Maidan revolution, it's the Umbrella revolution, it's all of these movements in which without permissions, without the authorization or even knowledge of hierarchies, citizens in self-organizing, spontaneous ways are forming networks, activating those networks, and changing the frame of the possible in their communities and societies. So we live in this age. And our work at Citizen University is about trying to capture the essence of what it means to exercise power in a time of bottom up upheaval like this. And we've learned three lessons in our work and I want to kind of describe each of these about what it is that makes a network particularly effective in civic life. The three things that I want to reflect are in the first place mutuality, secondly moral clarity, and then finally, imagination. So let me just say a word about each of these and give you a little bit of example of some of the stuff that we're doing. So mutuality. I think you know those classic slides about [inaudible] and the strength of weak ties and you know the triads and the rest, I think are such a great vivid reminder, not only of the dynamics that unfold that become mappable and visible when you do a network map, but about the underlying pulse of social norms that actually feed any kind of network. And the most central of those is a spirit of mutuality. Right? There is no Burning Man without mutuality. This idea of that the gifting, for instance, is done with this kind of unspoken sense of reciprocal mutual response. Right? So at Citizen University, one of our projects is something called the Civic Collaboratory. And what this is, on one level, is a network. It's a network of civic innovators drawn from all across the United States, all different silos of civic work, and from across the breadth of the political spectrum. Right? It's folks who run the gamut from co-founders of the Tea Party to co-creators of Black Lives Matter, to folks who are leading advocates among the Dreamers and undocumented immigrants to people who are working on voting rights, people who are working on civic tech, people who are working on civic education, people who are thinking about veterans and activating veterans as civic assets here at home, people who are thinking about civic work in all these different ways. And yet the reason why we created this Collaboratory was our perspective revealed to us that relatively few of these folks were busting out of their silos. That relatively few of these people in their domains had not only opportunity but any knowledge of opportunities to play with one another across the lines of their different domains. And so in 2011, we convened the first meeting of the Civic Collaboratory. And we learned a very interesting lesson here. We did it kind of the old-fashioned way. We had a big meeting, we called it actually at a place that's Microsoft descended in a way, and the Gates Foundation headquarters in Seattle. Bill Gates Sr., Microsoft Bill's father and Justice Sandra Day O'Connor, retired Supreme Court Justice, joined us as co-conveners of this and with two co-conveners like that everybody we invited came right? This great list of folks showed up, they wanted to be in the room with ... the rumor had happened with Bill Sr. And Justice O'Connor. And we had this great day and a half gathering and during much of the gathering all these people were meeting each other and learning about their respective kinds of work. Our intention as the curators of this gathering, was to say, "Okay folks before this day ends what are we going to do together, what are we going to commit to doing together," right? And at first, there was this high sense of purpose and energy and people were like, "Yeah what are we going to do together?" And then as the day went on, it started sinking in with people that wow we're coming up with all these interesting plans of how we're going to connect veterans and immigrant rights activists and how we're going to get Tea Partiers to work with people on the left, and we're going to do all these things. But it started to dawn on folks, I'm not getting paid to do any of this stuff, right? It started dawning on them that I don't have time to follow up on any of the commitments that I'm sort of making in front of Justice O'Connor and Bill Sr. here. It started dawning on folks as well that there's some of my competitors in the room here. I'm not sure it's totally in my self-interest to dive in and do this stuff in this way when other folks in the room might take advantage of my distraction or my non-focus on my core mission. And so by the end of the day, being attuned to that room, I sensed that there was this kind of sapping of commitment. People went through the motions still, and went through and kind of made a list of commitments but there was something less than fully satisfying about that first meeting. So, we went back after that first meeting of the Collaboratory and we said when we gathered it, we don't presume that there will be a second meeting. Right? We don't know. But we felt like there was enough there that there was something to with this, but that we needed to activate a different kind of energy. And what we identified was what we needed to do was to shift the terms of self-interest in that room. And to really make a set of rules and a set of norms that would unleash, that would invite and bring into the open, a sense of mutual self-interest. And indeed remind folks at the end of the day, that all self-interest is mutual self-interest. And so in the next meeting that we did, it's a couple months later, we devised a new format that we called a rotating credit club. And the rotating credit club is this very simple format that's in some ways adapted from processes that unfold in a lot of unbanked immigrant communities around the United States, where a circle of would-be entrepreneurs who don't have access to capital or traditional lenders, will put their savings into a pot and then they'll take turns getting the benefit of the entire pot in order to capitalize their small business, their dry cleaner, their restaurant, whatever it might be. We adapted that format so that every single time we meet at the Collaboratory, five or six members of the group will take turns in rotation. And they'll present to the rest of the group a project they're working on, an initiative they're trying to launch, a challenge they're facing. And the rest of the group has to offer not just commentary or critique, the rest of the group has to make hard commitments of capital. Social capital, ideas capital, relationship capital, in some cases because there are funders in the room, it's money capital, though it's not primarily about that. But this idea is that you will lean in and you will make those commitments of capital because in the best sense, what goes around comes around. Right? It's going to be your turn to be in rotation next quarter and you're going to want folks from this very disparate network of activists and catalysts and civic change makers to want to lean in and commit back to you. That's one big lesson that we've learned from our work at Citizen University is the power of mutuality. The second lesson here is about moral clarity. And I want to describe another project that we launched actually four days after the election. This is a project called Civic Saturdays. We launched this project as I say, right after the election, and what Civic Saturday is is essentially a civic analog to church. It's not church, it's not synagogue or mosque. It's not a traditional faith institution or gathering, but it is about American civic religion, about the norms, the values, the texts, the creed that those of us who live in the United States have both the right and the opportunity and the obligation to actually inhabit and revivify by our choices and by our deeds. And our gatherings have the arc of a faith gathering. So we get together and there are, there's song. We sing together. You turn to your neighbor, you talk about a common prompt in response to a question. There are readings of what you might think of as civic scripture, texts from the American tradition, well known and not well known. There are sermons that thus far in Seattle, I've been giving but others will be giving as well. And then afterwards, there's a social hour like you might have after church or something, which started out as just literally tea and cookies and the rest, but has evolved organically into sort of a self-organizing activism hour. Right? When we did this first one four days after the election, it was just out of the strong instinctive sense that there was this yearning, this need for people to try to make sense of this moment of upheaval. And we thought well, on four days notice it'll be great if 50 people show up at the basement of this bookstore that we booked for the event. And over 250 people came to that first one. And [00:14:00] we realized wow, we had tapped into something here. And what we tapped into was not just post-election need to make sense of things, because we've now done these periodic gatherings every month since then. What we tapped into was a desire that people had to be in a community where together they could seek moral clarity. Right? And so it's one thing to have a network of affinity and a network of shared skill or strategy or objective in public policy, and that is what connects Black Lives Matter to the Dreamers to the 15 dollars an hour movement to the Tea Party, they all have some purpose in which they are able to kind of use that purpose to organize in a seamless non-directed way. But what gives their networks life in an enduring way is moral clarity. Each of them has a strong moral point of view. You may not like their point of view, you may not agree with it at all, but there's no ambiguity about what Black Lives Matter stands for. It stands for the idea that black lives ought to matter in this country as much as non-black life. And that in our institutions, and in our criminal justice system, in our education system, and in employment, black life does not matter as much as non-black life does. And that is a strong moral point of view, right? The point of view of the Tea Party and the successor networks that have grown out of the Tea Party, organizations like Citizens for Self-Governance, is similarly a point of view that says this country was founded to overthrow tyranny. And that the federal government today is itself the source of tyranny and we need to unwind and rewind and scale back the reach and scope of the federal government. Again, like, dislike, agree, disagree, that's fine. But there's no ambiguity about the moral purpose that's driving that network and that feeds that network magnetically in a way that helps it grow. This brings me though to the third and final element that I wanted to say a word about and thinking about social civic networks and the ways in which they live and thrive. And that is this idea of imagination. Now you've got a good dose of that in both looking at images of and hearing talk about the beauty of Burning Man. But I think one essential element that is true at a Burning Man, that's true in pick your movement today of civic action in the United States that's effective, and that's certainly going to be crucial in any work place setting where leaders like you are thinking about how to form and activate networks that cohere and give people a sense of purpose, is this notion of play, of how do you awaken a spirit of imagination and creativity. [00:16:30] And I want to tell you about another project of ours at Citizen University that we launched last year called The Joy of Voting. And this is a simple project that recognized there used to be in the United States, a culture, around local elections in particular, that was about joyful, raucous, robust participation in voting and elections. It was about street theater, open air debates, dueling parades, bands, bonfires, the culture in which it wasn't just do your duty, eat your vegetables, cast a vote, but it was about join the club, join the party, join the tribe and participate in public in a joyful, creative way that expresses your ownership of the republic. Right? Screens, whether television initially or now you know our other screens have pretty much killed that culture of joyful engagement in voting. But our hypothesis was there's no good reason why we couldn't rekindle that, particularly at the local level. And so in working with the Knight Foundation, which as some of you know, operates in a couple of dozen cities around the United States where there are or used to be strong Knight [inaudible] newspapers. We partnered with them to catalyze Joy of Voting projects and they're very simple projects where in each of these cities that ran the gamut from Akron, Philly, Wichita, Miami, now St. Paul, Charlotte, Grand Forks, and other places around the country, big and small, blue and red, was we convened artists, activists, musicians, everyday citizens, neighbors, folks who were just engaged in the life of the community. We came and invited them to practice imagination. We invited them to think about what would it look like to have a project at a small scale, that you could create in election season that would awaken people's sense of belonging, that would awaken their desire to be part of something greater than themselves and would awaken most of all their spirit of imagination and play. In each of these communities, people brainstormed ideas, they went out to their networks and generated and harvested more ideas, and then over the course of weeks we ultimately chose in each of these cities, five projects and gave them micro-grants so about thirty five, thirty six hundred dollars. And we seeded all of these little projects around the country. And last year, in what was one of the least joyful, most grim election seasons in living memory, we were able to spark this spirit of imagination and creativity in civic life in these cities. And now we're expanding to a group of other cities in the United States. I tell you about this project because whether it's about voting or it's about showing up in other ways, when you think about what it means to activate a network, it's not just about mutual aid, it's not just about a sense of moral clarity, but there has to be activating the spirit of imagination and purposeful play. And that is certainly true in civic life, you think about the Women's March, you think about all the ways in which people have been figuring out, and the March for Science, ways in which to create this sense of spectacle this joyful sense that we're not getting beaten down by the threats and menaces to our democratic systems and institutions, we're going to revive them by expressing the full breadth of our humanity with spirit, purpose, play and joy. Right? And that is the spirit in which we've got to operate in applying everything that we do in one domain, in my case civic, to everything that we do in another, perhaps in your case the workplace. So the final word that I want to say is this. In thinking about networks, in thinking about the ways that we learn from each other in activating our networks both civic and workplace, one of the most basic lessons that we've learned at Citizen University and that I've tried to express personally. And it's actually in the book that the good folks were good enough to put in your gift bags, my new book "You're More Powerful than you Think," about this age of citizen power and how we practice citizen power, is this simple insight. Once you take stock the way that these images and slides today have shown us how to take stock, once you take stock of your network and your network of networks and the network capital that each of you has individually, collectively, institutionally. Once you have that assessment, you've made that visual map and you've taken that accounting, you face a pretty binary choice. The choice is this. Shall you hoard? Or shall you circulate? That's it. In civic life today, in the United States in this age of nearly unprecedented inequality and concentration of wealth and opportunity, we face this choice. Shall you hoard the power of your network? Or shall you circulate it? And I'm here today just to beg of you, as you think about how you're going to get smarter about networks, to make a personal and collective commitment to circulating your power. Thank you very much.

4 New Git Improvements in Visual Studio 2022

>> Everyone. Thank you so much for joining us as I share all of the latest updates for the Git tooling in 17.10GA as well as the 17.11 preview releases. Let's just jump into it. I've got some changes that I've made in this file and you can see that by the green indicator here. I'm ready to commit these changes. Now, you might have seen in previous releases we created this AI generated commit message. If I go ahead and give that a clip, what that's going to do is Copilot is going to take a look at all of the diffs that I've generated in the set of changes between my previous commit and my current one. It's going to describe those changes. Now we got a lot of feedback in the previous release that this description was a little tube verbose and maybe added some extra bullet points that we didn't need. We definitely took that feedback cleaned up the front and gave you better responses so that now you have a clear title and a description. Now with those changes, we actually increase the amount of people that were answering those suggestions and finding them helpful, so we're really proud of that change. I'll go ahead and commit that. Then if I go ahead and push it, what you'll see is an info bar showing up at the top coming in right here and that's going to let us know that we've got this option to create a pull request either in Visual Studio or in the browser. Now the create pull request page is not brand new, but we did make tons of updates based off of all of the feedback that we got from the Team. Now that we have the new pull request page, we're going to go ahead and add a title. You might have noticed a new update here is that I was able to get the template from my repo auto populated in here and these are going to be the default templates from either GitHub or Azure DevOps. This allows me to be consistent with my Team, be compliant with my Team's practices. If for example, my team doesn't have a template and I wanted to get a first draft of my pull request description, make sure I did miss any changes that are covered in this pull request. I could go ahead and use this AI generated PR description which works exactly the same as the comment description so it gives me a super easy starting point when I want to add that. Finally, I can also create these pull requests as a draft and these were another set of the highest level feedback that we got from the customers when we created this feature. Additionally, if you're using Azure DevOps, you'll see an additional area in the related item section that allows you to link those items so that you don't have to do that in the web. I won't show that here because this is a GitHub example but keep that in mind that was another highly requested feedback item. Now I'm done creating my pull request, and I'll go ahead and I'll switch branches to show you another new example. This feature is something I'm really excited about. If you're anything like me when you create a pull request item, it can be really annoying to actually address those comments. You have to open up Azure DevOps or GitHub in the browser and then you have to map all of the locations of those comments and changes back to the code. That is just a lot of time taken switching context between the two. But now, you can see this easy info bar that says show comments in files. If I click that, I actually get to see all of my pull request comments directly in the editor. This not only gives me the ability to cut out that context switching, but I get all of the benefits of being in my favorite IDE. For example, I'll share some really quick editor tips that are brand new. I'll show you I can use the new auto surround feature that allows me to just highlight a bit of text and then click on the quotation mark and that surrounds that text with the quotation and adds it on the beginning and the end. Previously, if I were to do that, it would have erased the text that I had highlighted. This is a super quality of life improvement. Then if I finish those off, I'll have addressed this comment by my colleague that mentioned that I didn't use the correct quotations and so it wasn't going to render correctly. Now I have that edit and I'm ready to resolve that comment. Now that I have resolved that comment, I can move on to my next one and it looks like I had the wrong png file here. I'll go ahead and I'll update that to be the correct file. Now, I have quickly resolved and acted on these two comments. I didn't have to map back and forth between the comments in the browser and in my editor. The last thing I wanted to share is an improvement to your Git history flow. For example, if folks didn't use our handy commit sage feature, they might not have included enough context in their commit to actually help you understand what happened in a given block of code. If I go ahead and open an example here, now I'm in the commit details view and code refactoring is helpful to know what happened. But if I don't want to go through all of the different files, I can actually click on this explained button and that's going to take the same algorithm that we use to grab all of the diffs and describe those, and give me a better description including references to the files that change the lines that change so that I can get a better overall view and I don't have to go through and understand exactly what happened by looking through the diffs by themselves. This just gives me a better overview and I get more information than I would have just from the code commit message by itself. Those were all of the features that I wanted to share. Thank you so much for joining us today. I hope you found some cool new Git tooling features that you're going to leverage in your everyday workflows.

Building Bots Part 1

it's about time we did a toolbox episode on BOTS hi welcome to visual studio toolbox I'm your host Robert green and jo...