My name is Leot Hackman with CalTV Sports and I'm here at Haas Pavilion for the men's basketball game against Washington State. Tonight I'm going to be speaking with Marcus Lee. Marcus, first of all, super close game tonight. What are your thoughts on your team's performance? They played as hard as they can and that's all we can expect of them. They're battling hard and keep pushing through all the pain and all the things that are coming their way so we can't ask for anything anymore. Great. And so you guys beat Stanford last month which was a huge win. What are your thoughts on how you guys achieved that W? Well, it's a rivalry game so it gets the team pumped so there's no reason to pump them up for something like that. So once we were able to get in the game we were pumped and ready and the game just went with the flow. Awesome. And what are your goals for the rest of the season and your career goals in general? Just like every other day we're taking it day by day and trying to get better each day because we know it takes a while and we're not going to get it done in one day. Awesome. And for our Cal Bears to get to know you just a little bit better, who do you look up to in the NBA? Who do you kind of shape your style of play towards? I shape my play through a lot of people, mostly bigs. I really enjoy Carl on the Towns game especially since he's one of my best friends. Oh, let's go. It's cool joking around with him and kind of learning from each other. That's awesome. Well, that's all we have for tonight. Thank you so much, Marcus. And as always, go Bears! Go Bears!


Lady what is this? Hey, I built a tester for the seesaw rotary encoder So this is an iSquad C to rotary Encoder converter manager that uses a samd-09 and I'm using this metro express to run the swd Dap code that will program in this chip So I put it down here and I press the button it will program it and then that's how I know it's working It's all rainbowy and then when we go over here This is what it looks like when it's fully assembled as a rotary encoder and it's being driven by a metro mini and then The commands to control the rotary encoder in the neopixel are all done over iSquad C So you can see a stomach UT cable and you can even see there's a little interrupt Pin over here that whenever I twist it it goes high and low So that's me just testing out this new hardware that's coming to the Adafruit shop soon


Cedarcrest survives once again. Score remains 1-0 Stevenson. Six minutes gone in the second quarter. And another quick interception. Good dribbling on the left side. And what a shot! And finished there from Veronica Maaring. Maaring juggling that one in the air a little bit before settling. And an excellent shot from Maaring. That puts Stevenson on top 2-0 here in the second quarter. Excellent work there from the junior midfielder out of Tawny Town, Maryland.


All right, so that brings me to this last point. So this is the third part of our big shift on the core strategy, and that is, there is no place like production. So I talked about how sort of we de-emphasized running functional tests in the lab environment. At the same time, we understood that it has a place. It has a place in production in particular, because the production environment is very unique. You know, there is, first of all, the full breadth and sort of diversity of the environment that you have in production, you simply cannot replicate inside the lab, and you get real workload in production. That is also very hard to replicate in the lab. We used to do pretty significant effort in doing, for example, performance testing in the lab, and we found that most of the time, we were just dealing with results that were very noisy and it didn't really give us a good indicator of what the actual performance was going to be. We were sort of, we'll take some metrics and measures in the lab and then we'll extrapolate what that would look like in production. So I mean, it was not even a good system. So we rely in production. Now when we talk about production testing, you know, people sort of like, whoa, what do you mean? Like, literally you run test in production? And the answer is yes, we do run test in production, but testing in production is really two things. The first is a set of practices that we have that safeguards the production, you know, sort of these are the safe deployment practice and the exposure control, the feature flag, and some of the stuff that you heard in Buckstock and I will go into more detail. Those are just practices that allow us to deploy change in a progressively, you know, in progressive manner in production. We, that's part of production testing. Then you have telemetry. Telemetry is test results. You know, failures, exception, performance data, security, Buck talked about how we detect certain security issues in production. These things are, in a sense, you know, test running in production. So that's what I also include as part of the, what happens in production. Simulating failures. So the production environment is interesting. First of all, it's changing all the time and then you have failures happening all the time. So you take a service like VSTS, we got so many dependencies. We have SQL Azure and we have DNS. We have AD and we have storage. There are so many dependencies. Each of those dependencies give you three nines of availability. So if your system was designed such that if SQL Azure failed, you fail, well, you're never gonna get to three nines because, you know, when you combine the availability of all the other dependent system, you simply cannot achieve that. So that's why you build all the resiliency mechanisms in the product that Buck talked about. But how do you know those mechanisms would actually work? So you have to test the production environment. You need to see that the fallback mechanism you've designed actually works. You need to see that a failure that starts in one subsystem doesn't cascade and become a major catastrophe for the entire product. So these type of things that we do in production with what we call fault injection testing or, you know, sort of chaos monkey testing. I'll talk about that in a second. And yeah, like I said, yes, we do run test in production. These are L3 tests. And we run that to kind of help us with the service-compired testing, yeah. So what data do you use for L3? Is it like the engineering data or like fake data in production? We use some, I'll show you when I talk to the L3 that we use the test account to do that. So I'll show you in a second. So let's walk through an example of this fault injection testing that I talked about. Buck talked about circuit breakers. They have big roles to play in production. They're very important. But how do we know whether the circuit breakers they're put in place? They actually work. And there are two really questions we are going after. One is that does the fallback behavior works? So when the circuit breaker opens, you're supposed to go back to your fallback. Does it actually work? Does it fall back and does the fallback work? That's number one question. The second question is, does the circuit breaker open? Does it have the right sensitivity to open when it needs to open? So these are the two things we try to test. I'm gonna show you, you ask about a test in a demo. This is a PowerPoint demo, but I guess it gets a little bit close to what you're asking, but not for the L0 test, but something else. So let's do a case study of testing a Redis circuit breaker. Now, Redis is a non-critical dependency in the product. It's a distributed cast, which means if it's down, the system should continue to just work. It should just go back to the source. And we have a circuit breaker that's wrapping the Redis call. And so we wanna make sure that the circuit breaker works. So the hypothesis is that if the Redis goes down, the circuit breaker should just kick in and switch to the fallback and the fallback should take over. So that's the thing that we are trying to test. So here is how it would work. So you have the 380s, you have a Redis breaker wrapped, wrapping the calls to Redis, and the sequel is the fallback. So through, we'll do a config change and open the circuit breaker. Buck talked about how we use a config change to open or close circuit breaker. So that's what we do. Through a config change, force the circuit breaker to open, see that the call goes to sequel, the fallback, and once the, through another config change, reset the circuit breaker, and the call returns back to Redis, okay? So that test, that the fallback worked, but doesn't answer the other question, which is did the circuit breaker open? Because remember, we forced the change. We forced it to open. You actually want it to open with real failure. So this is where the fault injection comes into play, where through a fault agent, we can introduce a fault for that call going to Redis. So fault injector, Redis requests are blocked at this point, and then see that the fallback works. The circuit breaker opens, the fallback works, and then you take, remove the fault. Now the circuit breaker will send a test request to Redis, and if the test request passes, it, the call reverts back to Redis. So this is an example of the type of testing that we can only do with fault injection, because we can simulate the failures that would happen in real life, and be prepared for it when it actually happens. So, you know, through this, we've kind of found all kinds of problems. I actually think we can do lot more in this realm. We are sort of scratching the surface, but to the extent that we have done this, we have found all kinds of interesting issues with this. So, you know, things like the fallback doesn't work. You know, you introduce a fault and see that the service doesn't fall back to its fallback mechanism, or the circuit breaker doesn't open.   That's the kind of things you'll find, or there will be some other system timeouts that would interfere with the circuit breaker behavior. You know, we have found those kind of issues too. The point is that, and these are all real issues that we have found, the examples that I'm giving here, otherwise have become a real life-side issue. It could have become a one issue or self-zero issue, in some cases, that we were able to prevent by doing this kind of a testing in production. Again, it's very hard to do this type of testing in the lab, so kind of going back to what is the role of some of this integration end-to-end test in the lab. This is where it kind of has a diminished role in sort of, and this kind of testing in production is more favored. Yeah, I mean, there's some lessons here. Yes, do chaos engineering, but do it in your ring zero. I think ring zero concept was introduced. This is the ring that we run our own service, our own team's engineering system on. So if something fails and it goes haywire, then we are only hurting ourselves. We're not hurting customers to your kind of questions. Are you not doing this in production? Well, we do it, but we do it carefully. You want to automate these experiments.  I mean, these things are not easy to do the first time you do it, but I think you can, over time, by building the right tooling, the right automation, you can institutionalize this kind of testing throughout your organization. By the way, this is a whole, what should I say, practices around this, you can find more information at that link. All right, the other type of failover testing or failure testing we do in production is this thing called BCDR. I'm sure you all are familiar with, this is a business continuity and disaster recovery program that most companies have, and we have one too. It's very formal, where we track for each service, what is the importance of the business. If it's that service goes down, rank our services, we have formal disaster recovery plans, but one of the things that I've learned over the years is that just documenting a disaster recovery plan is never good enough. I'll give you a little bit of story. I was in my previous team where we had a major outage going on and this is advertising system for Bing, so you're thinking millions of dollars flowing through that and we were two hours into the outage and we have no solution in sight, so I looked to my ops team and I asked them, hey, let's just do the failover. And he looks back in my eyes and goes, no, I don't want to do the failover. I'm like, what do you mean you don't want to do the failover? We have the whole failover procedure. We've kind of built it and you just didn't want to do it. And it happened again, in the second outage happened, I would say let's do the failover and you wouldn't do it again. After that I learned that the reason you don't want to do it is because it was just formally documented. It was not exercised in recent times, so you just lack the confidence to go do it. So he said, no, it's better to fix the problem. Let's not do a failover. The key point here is that you want to test your failover procedures in real world and you want to, it's not just a documented plan but you want to do this in a regular drills.


How to Catch a Boggle, by Catherine Jinx. Birdie is ten and an orphan in Victoria, London, but she is very proud of the fact that she is an apprentice to Alfred Bunce Boggler. This is a much better job than being a ragpicker. Her job is to be bait and lure the boggle out of its hiding place so Alfred can capture and kill it. Alfred lost an apprentice to a boggle before and he's very worried about Birdie's safety, and this is the only way he knows how to catch boggles and kill them and save a lot of other children. But now some odd things are happening. Orphans are disappearing and Alfred and Birdie may be in more trouble than they know. How to Catch a Boggle, by Catherine Jinx.


Okay, let's look at how we write about our chemicals because that is relevant as well. First of all, any element is indicated by the letters on the periodic chart. So for example, the letter H is indicating a hydrogen atom. The letter C is carbon. And we think the letter O is oxygen. These three in particular are probably ones that you want to be familiar with. You want to be aware when a letter is representing an element. I'm going to give you another example of something called ATP. The next thing is adenosine triphosphate. Phosphate? Wow. Adenosine triphosphate is not an atom. It's actually a molecule, but it's not like a molecule of A, which I don't even think that exists. And T, yeah, those don't exist. T exists. It is a phosphorus atom. But this would be an example of a molecule that has its own little name. So you want to be sure that you know, like when are we talking about atoms? When are we talking about molecules? And when are we talking about something that has just its own name and acronym? Oh, and there'll be lots of those. So the letter comes from the periodic chart. If in doubt, ask. You don't have to memorize most of these things, but there are going to be some that you're going to memorize. If you put atoms together, then you get a molecule. I'm going to give you an example of a molecule. H2O is an example of a molecule. Tell me, talk to me, dog pounds. This is a molecule of what? You will know this one. It's a molecule of water. And tell me what's it made out of? Well, do you agree with this? It's made of one hydrogen atom. How many hydrogen atoms do you think? Two hydrogen atoms connected to what? One oxygen atom. In fact, that I just drew right there is a picture of a water molecule. What do you think this little line represents? It represents a chemical bond. A chemical bond, which is how we ended up with a molecule in the first place. That chemical, what is it? What is a chemical bond? I know, don't you love it? Those are shared electrons. And we'll learn about water and we'll see, like what kind of bond do you think it's a covalent bond? Do you think it's an ionic bond? Is it a polar covalent bond? We're actually going to look at exactly what kind of bond this is. So, if we wanted to show two water molecules, here's one water molecule. If I wanted to show you two water molecules, if I'm going to draw it this way, okay, do you agree that now I have two water molecules? And you tell me, do I write it like this now? How many hydrogens? Two, three, four. H, four. How many oxygens? O, two. Is that equal to two water molecules? I'm going to put a big old question mark because I want you to answer that question. Do you think that that is two water molecules? No, please. No, no, no. Do not be confused. You stopped watching the lecture right before that and you think that this is two water molecules. I'm not going to feel sorry for you when I take points away from you for saying something like that on a quiz or an exam. No, that you cannot.  I don't even know if this thing exists. That's actually H, H, H. I'm just going to make this up because you know I really don't think this thing exists. So O, O, and then we're going to form chemical bonds between these things. Okay, we'll put one there, we'll put one there, we'll put one here and here and here. Why not? Totally doesn't exist. However, that's what I just drew. There are all sorts of rules that you'll learn in chemistry for how to put atoms together. You could totally figure out what we would have to do in order to make that possible. I'm pretty sure that, well, I'm not even going to think about it, but if we want to say we have two water molecules, that's where we put in something called a coefficient. This is a subscript. The subscript tells me how many atoms are in the molecule. The coefficient tells me how many molecules we have. So in this case, we have two molecules of water. Hmm, I think we're good.  So watch. We can actually combine. This is a true story, my friends. A hydrogen ion. And how did you know that I made this into an ion? A hydroxide ion. Look, let's just make a notation of that too. This is the charge of the atom. So we know that we have a hydrogen atom, which means it has one proton, and we know that it doesn't have an electron at all. We stole it. Somebody stole it. And now it has a positive charge. Meanwhile, there's this other molecule called a hydroxide molecule, and it has a negative charge. So this whole thing, this whole molecule, has a negative charge because it has one extra electron. But guess what? What's going to happen if we combine a hydrogen and a hydroxide? Go ahead and take a wild guess. Dogs of a feather. We're going to get a water molecule. Two hydrogens and one oxygen combine to form water. And this little arrow right here, that tells you the direction of the reaction. So you can have this reaction proceed in the other direction, and it actually does. And an accurate depiction of this little system has arrows going both directions because the hydrogens and hydroxides combine to form water and the water splits to form hydrogens and hydroxides. Uh-oh, we're getting visited. Hello. I'm recording a lecture. That's okay, you're totally good. See ya. I'm not stopping, that's okay. The direction, we can go either way, that's awesome. What else do I have to tell you? I think that's it that I'm going to tell you. I think that's it that I was supposed to tell you. I should have just stopped it right before the janitor came in. That's great. All right, y'all. You now know all the chemical notation that you need to know, right? I hope so. Okay, I'll see you later. Bye.


What's going on guys? Got Kyle and Donnie here with late sports cards and we're ripping a personal for Rashid G. Got one box of 2022 Top Star Wars Galaxy. Good luck here Rashid. Let's see what we got. Top's chrome galaxy I should say. Something big. Come on now. Good luck. Yeah no problem Thomas, no problem. Like I said it's not a perfect schedule or anything but for the most part it's mornings and a couple days ahead of time. Good luck Rashid. Galaxy. Refractor. Oh that's the variation. Yeah sketch variation there. Start us off and refractor. First one is didn't mean to intrude. C through PL. Refractor. There's a refractor variation card there again. Sketch variation and this one is Qui-Gon on the refractor. Qui-Gon Jinn. Nice one there. It's a good looking card. It's true. I have a very particular set of skills. There's a sketch there. Vintage Star Wars card and refractor is Chewie and Han and the carbonite Chewbacca's anguish refractor. Say refractor Anakin. Anakin and Luke there. That one is a Skywalker legacy and Salacious. Salacious B. Crumb. Donnie's Boy. A refractor that one is Cobb Vanth. Cobb Vanth refractor. Luck Rashid. Otto. There's a refractor of Darth. And Otto is Dr. Pershing. Dr. Pershing on the Otto there. Omid Abtahi as Dr. Pershing on the base Otto. There's a nice Darth Vader in front of it too. Flip these. There's a Jedi Starfighter video game card there and Chewbacca on the refractor. Chewbacca. A refractor. This one is X-Wing Starfighters. This one has some like roller lines or something on it. We'll send a box. I noticed that on another one too. Yeah. It's got some roller lines or something going on. Couple of these refractors. Yeah that's pretty major. We'll send a box with this one Rashid. Get these replaced for you. Roller line action. Something going on. Yeah you could actually feel it too. Texture. There's a refractor. Same thing on this one Hunter. Hunter refractor. Something going on there man. There's a sketch variation. That one is Kylo. And this one is going to be Galaxy's greatest scoundrel refractor. There's a refractor. This one is Lord Vader ready to ship. Lord Vader ready to ship. Looks like all these refractors had that same roller line unfortunately here Rashid. There is a sketch card AT-AT. And this one is Crosshair. Crosshair refractor. We got Wave. This one is Stormtrooper surveying the desert to 99 on the wave. It's a sweet looking wave there. Nice. And refractor. This one is base sketch variation. Vader base. It is atomic. That one is medical joy. Number 14 out of 150 on the atomic. Ironically I think I already have that one. There we go. And a bed. Bed Kenobi. You're that right bit on it. Green. This is green on the video game card. That is Empire Strikes Back. Nice. The video game there to 99. 81 of 99 or 61 of 99. And another refractor. That one is Darth Vader versus Obi-Wan. Boba Fett. Nice sketch there. And refractor. This one is Ewoks under attack. Two packs left. Good luck Rashid. There's a sketch variation. Got a refractor. It is Luke Skywalker in action. Last pack here. Got a refractor Han Solo. That one is Solo Investigates. And base on the back. Alrighty there Rashid. There was some roller damage on those refractors man. We will get sent a box with that. You can get in touch with Tops. Hopefully they'll get some replacements in there. Thank you so much Rashid. We'll get these right out to you.


Hello, my name's Fernando and I'm part of Developer Relations here at GitLab. Welcome to video one on my series of Principle of Lease Privileges. In this video, we will be going over what Principle of Lease Privileges is, its benefits and how it can be applied within GitLab. The definition of Principle of Lease Privilege is the concept in which a user's access rights should be limited to the bare minimum required for them to complete the tasks required within their respective role. Adhering to this principle provides many benefits, such as the reduction of the attack surface, meaning that if credentials are compromised, the breach will be limited to only the paths where the compromised account has access. There will be protection against human errors because you won't be able to perform functions that are not required for your role. Adherence to compliance, since many compliance frameworks require lease privilege and reduce downtime since roles will have limited access to critical parts of the software development lifecycle. You can enable Principle of Lease Privileges within GitLab using custom roles with granular security permissions, security policies, compliance frameworks and pipelines, and branch protections with code owners. In this series, there will be an episode on each of these features, its benefits, and how you can implement them. Episode two will be on custom roles and granular permissions, showing you how to create a new custom role and provide a limited set of permissions. In episode three, we will go over security policies, showing how we can force a scanner to run, regardless of the pipeline definition, with the scan execution policy, as well as preventing vulnerable code from making it to production without approval with the scan result policy. Episode four will go over how to implement protected branches, as well as code owners within your repository. And episode five will go over compliance frameworks, showing how to add a new compliance framework and assign it to run a custom pipeline configuration. Thanks for watching and I hope you enjoyed. To learn more about GitLab, visit about.gitlab.com and make sure to hit that subscribe button.


Welcome to this project briefing on bringing linked data into libraries via wiki data, the PCC wiki data pilot project at Texas State University. I am Mary Acoff, the Database and Metadata Management Librarian, and I am joined by Nicole Critchley, Assistant Archivist, University Archives. Amanda Scott, Whitleth Collections Cataloging Assistant. Just a quick outline, we will be discussing the problem of hidden metadata, an introduction to the various projects, their methodologies, impacts, and concluding with challenges and a summary. Years ago, there was much focus in librarianship on uncovering hidden collections, but discovery of metadata hidden in silos is also a significant issue. Considering how much time and limited financial resources libraries have invested to describe their collections, this includes legacy schemas and formats, such as your traditional mark format records, PDF finding aid, and especially authority records. These silos often require extensive training to use and have limited use and visibility. Pictured below is a screenshot of one of the authority records for our faculty. Such hidden data cannot be utilized to its full potential. Over the past decade, linked data has been proposed as a solution to provide context and connections in our metadata, but has proven elusive for most institutions to implement. Enter WikiData, which has caught the attention of many GLAM institutions as a relatively low entry barrier way to work with linked data. Pictured to the right is a screenshot of the first few properties for standard scenarios. The graphical interface enables editors to work without requiring knowledge of linked data concepts such as triples or RDF. It was created in 2012 as an initiative of the Wikimedia Foundation and runs on Wikipace, which is the same platform run by Wikipedia. Both the GLAM world and Wikidata believe in the importance of knowledge creation and creation. You can query using Sparkle and there are quite a few user-friendly ways to learn and perform queries. Last but not least, it is not a matter of building something and hoping that the search engines will find it. Wikidata is already used by Google and other agents such as Siri. In the summer of 2020, the program for cooperative cataloging issued calls for any GLAM institution, whether they were a PCC member or not, to participate in a Wikidata pilot project of their choosing. We committed to this pilot for all the reasons listed here. It provided both a learning experience and an avenue of participation in linked data that generated clear results in terms of increased visibility. Next, I will introduce the three pilot projects. All three projects, despite their diverse focus, share a key purpose of increasing visibility. First, included creating Wikidata items for faculty at our institution. The second one was an oral history collection and university archives. Finally, we strode to increase visibility of our special Whitleth collections by linking to PDF finding aids. In terms of the faculty project, we were very much interested in adopting an approach that's been getting traction lately. Identity management, as you might guess by its name, includes using identifiers instead of text strings to distinguish authors. Using the linked data parlance, linking to themes as opposed to strings is preferable. Second, linking to data outside library silos will facilitate the connections which linked data depends on so critically. Finally, identity management in the linked data environment empowers institutions, such as university libraries, in creating items for their own communities. In many ways, we are the most motivated and often best positioned to create such items. Speaking of identifiers, Wikidata is increasingly being known as a hub of identifiers. Here's a screenshot of just some of the identifiers found on one faculty record. Next, Nicole will speak about her project. For the university archives project, the goal is to bring attention to the oral histories and the rich demographical data that exists for these participants. The archives has bits and pieces of demographic data in several places, spreadsheets, not publicly available, the website, the collection, and the PDF finding aid, which is not easily searched. Wikidata was searched by more people and we wanted to go where they already were, and also help us connect our oral histories to other archival collections, either at Texas State or other institutions. The Whitleth collections project focus is primarily adding links to finding aids, creating a Wikidata item where none currently exist. The intent of the project is to generate more exposure for finding aids, associated collections, and the Whitleth collections as a whole. Raising awareness for Whitleth archival holdings and associated entities were ultimately creating a single base for all publicly available biographical data. And now I'll hand it over to Nicole to talk about methodologies. How we started. Our methods varied, but we shared some commonalities with each project. We worked independently according to expertise and we all researched and compiled data from multiple sources and created spreadsheets for our data. We also made data models specific to each project. The PCC pilot encouraged all participants to set up a Wikis project page, which proved extremely helpful for documentation purposes. For example, here is the data model on our Wikiproducts page for the oral history project with properties we wanted to make sure we included as well as users notes. The more data you add, the more likely it will be included in a query. Wikidata has a few properties of notes that are useful for special collections and archives. When we first started this project, there were two relevant properties has work in collection and archives at and through collaboration with the PCC pilot project. They proposed a new property in Wikidata oral history at which was approved with community support last spring. The Whitleth collections any of your archives use a combination of these properties. Archives at if it had a full finding aid at Texas State or another institution or has works and now oral histories at for oral histories and interviews within collections. Once we settled on a data model unique to each project, we started edit the items, either manually or using tools such as Open Refine or Quick Statements to both create or edit Wikidata items. The goals for each project are listed here. The Whitleth collections archives are approached as individuals, meaning 152 archives in the Southwestern writers collections must be analyzed separately to determine need for entry. Only seven of those 152 remain to be analyzed and once complete the project will then shift to the photographer portion of the Whitleth. Each entry will include a link to both the Whitleth collections and the university library's repository in an attempt to prevent loss of access during a time when finding aids are migrating to archive space. However, because archives are constantly being added to the collections and need for monitoring both sites for new holdings and newly added biographical data remains. Now Mary will talk about the impacts. So what impacts do we observe? For the faculty project we exceeded our goal of creating or enhancing 100 faculty items thanks to a number of staff including our music cataloger and we're still going strong. Pictured is a snippet of a query transformed to graph form. In addition, we also link faculty to any scholarly articles found on Wikidata through a tool called Author Disambiguator. Pictured here is a screenshot from yet another tool called Scolia, which provides an interface showing visualizations for various queries. In this case, the article is linked to a particular faculty. On a college campus, you often see news reports of faculty accomplishments and these notices provided another opportunity to investigate if they had or needed a Wikidata record. This one led to the enhancement of a record for a microbiologist at Texas State. So not only is this project helping us get the word out about their research, but also feel more integrated and informed about work going on at our university. Dr. Clay Green in the biology department was upstaged by shoes of the same name on an initial Google search before work was done on a Wikidata item. Two weeks after the Wikidata work, Dr. Clay Green became the first result, which also included a small knowledge panel to the right. Next, Nicole will speak about the impact of the oral history project. Only three of the oral history participants had Wikipedia or Wikidata entries when I initially surveyed. Now all 70 participants have entities on Wikidata with links to our oral history website and relevant collections at the university, as well as elsewhere, as well as to identifiers like NACO and SNAC. In addition to entries for participants, I also created other relevant pages like for the Piper Professional Award in order to be able to link to it. This has added visibility to Texas State University's website, as well as to our archive space instance. For example, with notable position Ruth Bain, we don't have a collection related to her besides her oral history interview, but Austin History Center does. So I added the archives app property with the finding aid link, as well as adding the has worked property with our interview. This links the materials on her together in one place. I do not have great statistics on the oral history website where I was actually linking to in the Wikidata record. But we can see an effect on our transcript item views on our digital collections platform, even though we were not linking directly to it. Links and data collections started in September 2020. I started to learn and create the data model in Wikidata in October, but the majority of the entries were created and edited in December through March. While item views went up, downloads went down, presumably because users were coming from the website page, which gives two options to view the transcript. A PDF on the digital collection site, or a view on another HTML page. We suspect users upon finding out that they had to download to view the PDF went back to the website in order to view it. Because of the difficulty in measuring impacts on the end user, the Whitleth collections project analyzes impacts on the technical user. In order to maintain accuracy and availability, entries are being revisited to assess the need for additional data. Impacting the time allotted for analyzing new collections. Furthermore, highly visible and popular aspects of the collections are being assessed to add value to current entities such as adding more cast member properties to loan some doves Wikidata page. At the forefront of impacts on the technical user is the recognition that there is a need to create more linked data to yield high returns and inspire wide data creation that benefits all users. The inclusiveness of Whitleth collections and Wikidata sparks creating even more access points. Recently, the project began incorporating the addition of info boxes in Wikipedia for individuals having existing pages. Also upon discovering errors in Wikipedia pages for Whitleth collections references, editing Wikipedia pages became an additional aspect of the project. Rather than focusing simply on Whitleth entities, as was the instance at the project's beginning, the project is now also linking existing pages to newly created pages for Whitleth entities, such as the existing Andy Adams Encyclopedia entry authored by a Whitleth archive holding of Wilson M. Hudson, who lacked a Wikidata page. Creating the individuals page allowed the two to be linked as author to notable work and vice versa. The incorporation of editing existing pages into the project allows for the discovery and correction of bot data errors also, such as with author Christopher Cook, whose Twitter data previously belonged to an actor of the same name. Additionally, although publicly available, author Christopher Cook's page lacked the spouse property, even though the spouse had an individual page. Cook's Twitter data was corrected and a spouse property was added to both Cook's and Penisoba's individual pages. For a visual of the Whitleth project's contribution to Wikidata in comparison with all U.S. participants, here's a recent sparkle query limited only to those pages having an archive set property. But as Nicole mentioned, the project often uses the has works in the collection property rather than archive set. Now for the challenges and conclusions. A major concern for Texas State University's project participants is the learning curve. For example, defining properties is often confusing and provided definitions can be unclear, leading to the usage of incorrect properties and flag data. Additionally, headings valid in collections are often not defined as such in Wikidata. As an example, the Texas Institute of Letters has been defined in finding aids as both a society and an award, but Wikidata defines it as only a society. Therefore, while Wikidata allows for the heading to be included in the award's received property, the heading gets flagged for potential issues. Skills have proved to develop over time. However, this leads to a need to revisit earlier created pages to apply these skills. And now Nicole will share more conclusions and challenges. Data maintenance is not a new thing. We have to do that in our silos, too. And with Wikidata, we have to keep up with the changes. For example, we recently launched our instance of archive space, and now we have to go back and edit the finding aid link. The regional finding in aggregated tarot has also moved platforms and the redirect links will only be good for so long. Finally, the differences can be seen as both a strength and a challenge. For instance, we can't do it all, so it's great to see that others can enhance our records. But that's a double-edged sword, as you can't restrict the data added, even if you would prefer for personal identifier information or for privacy reasons. We deliberately decided not to add birth dates to our faculty items on records, even though they appear in the authority data. However, our particular bot did not get that memo, which led it to retrieve the birth date from BIAF and inserted it into the Wikidata record. This type of change is representative of the complexity of working with a large cooperative platform. Addressing questions of sustainability, it can be difficult to find time in an existing workflow to do this work. However, library silo systems also aren't sustainable and are also relatively invisible. What makes the most sense to put our efforts towards? Wikidata exposes our data to the public, and others can build upon it, breaking down these silos, and that's what makes Wikidata a good resource. Some further avenues include adding citations to Wikidata, whether they be books or articles. The library community would also ideally come with how to assess Wikidata work, so we can have evidence that this work is valuable and should continue. What kind of best practices can we develop? We'll also have to contend with maintenance on our links as we migrate platforms. Editing a Wikipedia, whether through info boxes or editing articles, seems like the next logical step in order to make some of the work in Wikidata. Wikidata is being populated in Wikipedia. Finally, a question that's been percolating is how to make the enhancements of Wikidata benefit our databases and make the information round-trip, so to speak. In conclusion, while the learning curve is steep and the work can be time-consuming with the rabbit hole of possibilities, Wikidata can increase visibility for our collections and our faculty members. It allows us to be a part of a forward-thinking data initiative instead of accepting the status quo. And ultimately, doing this work allows us to insert our institutions better. The next few slides have resources pertinent to this project and reading in an information list on Wikidata. Let us know if you have any questions.


In this video, I will tell you why I would never, never buy cryptocurrency on Robinhood. You guys keep asking me the same question about where I trade my cryptocurrency. I personally trade on Binance, and no, that's not a brain deal. By the way, Binance, if you're listening, I would love to support. But anyways, I'm trading on Binance for different reasons. I think the most important factor for me is that if I bought cryptocurrency on Robinhood that I do not own the coins. I would merely issue IOUs, which basically stands for IOU a specific coin. And that's also the reason why you can trade cryptocurrency for free on there. Well, no fees sounds interesting, doesn't it? It does sound interesting, but at the same time, it's not compelling enough for me to put $100,000 into Bitcoin and then just leave it in Robinhood because I can't do anything else but sell. I want to be in control over my Bitcoin. I want to be able to move it anywhere I want. I want to sell it. I want to get interest on it. Whenever I decide, I want to be able to do it within a second.  And on Robinhood, I can't do that. And for that reason, I'm out.  So now how can I get the interest on my Bitcoin? Here's what you have to do. Number one, you have to sell your cryptocurrency within Robinhood and if there's a capital gain, you have to pay taxes on that. Now you have the money in your Robinhood account. Now you have to withdraw that money, put it in your bank account. Now you make a new account with either Binance, Coinbase, whatever you decide to work with. Then deposit the money into your new account, purchase new Bitcoin, new cryptocurrency, create another account with the company that pays your interest and then because you have a wallet here and a wallet there, you send that Bitcoin or that cryptocurrency into your new wallet and then you get interest. Now I hope you understand why I personally do not buy cryptocurrency on Robinhood. But what if I'm a day trader and I don't want to move my cryptocurrency? Well, I would still not use Robinhood for a very specific reason. Another issue that I have with Robinhood is that sometimes it just don't let you sell your cryptocurrency because of a technical issue, because of an outage, because too many people want to sell or buy, something crashes. Now I'm not saying that other companies are completely immune to technical issues or outages, but I've been using other platforms for over four years now and I've never had an issue moving my Bitcoin anywhere or selling it within a couple of minutes. With Robinhood, I've heard horror stories though. Let me share this beautiful story of a friend of mine. So a friend of mine, who by the way is way smarter when it comes to identifying new trends within the crypto market, bought Dogecoin and had within a couple of hours a 300% gain. He was very happy about that, was like, oh my God, I'm a genius, I'm gonna sell that. He placed his sell order on Robinhood and I think millions of other people wanted to do the same thing and then the app crashed. So his sell order did not go through. So obviously he got nervous because he wanted to sell his coins, but the app crashed and he wasn't able to see anything, which is the black screen. After five minutes, he was able to log into his account again and check Dogecoin. Now you might be like, five minutes, that's very fast for like a huge app. Yeah, but Dogecoin didn't care about those five minutes. So within five minutes, he lost 120% of his 300% gain. So he was still left with 180%, which was great. So I understand it's huge, 180% in a couple of hours. There'll be a crybaby, take the profit, celebrate yourself, be happy. But if you see a 300% gain and then because of an outage, you can sell, that hurts. When I see the Doge millionaire holding all of his investment within Robinhood, I have very mixed feelings about that. He looks like a really cool dude. And I hope, I pray for him that whenever he decides to sell his Doge, $1.250, whatever he decides, I hope for him and pray for him that not 99% of the Robinhood users who also hold Dogecoin want to sell at the same time because that would just create a massive crash again and he might lose some money. But back to the day trading. I have another issue with Robinhood. The charts, they only allow five indicators if you want to day trade in there. Again, I understand I'm not a professional trader, but that's exactly the reason why I need my indicators that I understand. I need every single indicator that might help me make a better move within the crypto market. So that's the reason why I use Binance over Robinhood. If you want to see what indicators I use, click up here, I made a video about it. Yeah, on Robinhood I can't do that and that's another reason why I'm out. By the way, this might be a surprise for a lot of you guys, but I am not a financial advisor. I'm a random dude on YouTube who makes videos about cryptocurrency because he loves it a lot. This video is for entertainment purposes only, please.  I said anybody on this platform with your money. Do your own research every single time. If you've made it this far in the video, thank you. If you want to get more insights into my financial moves, make sure to join my Patreon. I post my day trades in cryptocurrency, my dividend investment portfolio, my growth portfolio, and my weekly options trading. Everything in there, I'll be basically naked, financially naked for you. Also, if you liked this video, please help me out with the YouTube algorithm. You know how it goes. Comment, like, and subscribe. Thank you so much. I'll see you next time.


What's up guys, Evildeer here and today I want to speak about a Mikulmo again because that's the only thing happening in this world But before I do I wanted to show you something very special Look what a rocked up in the mail today is the past one at the set of all. I've been waiting years years years for this to rock up I'm actually quite happy about it because look what's on the back. It's a Mikulmo. How funny is that? Look at it. Oh, it's magic.  Well, there you go It's right on the back cover. It told you what to do. So that is a really good achievement for us Now I want to speak about the second most exciting thing that's happening right now Chuck, Judith and Neil are all heading off to the polyglot gathering and they're gonna test Multilingual support for a Mikulmo, which means you're about to find people based on language more How exciting is that most people don't know about this But apparently we have a room there at the polyglot gathering called a Mikulmo And they'll even be they'll also be doing like a panel on a Mikulmo and other stuff I don't know. I'm like, I don't do anything important in this company. I just know that they're doing stuff Which is good, but on the flip side now Because I like making these these hand movements. I need your help. Okay, so I made a video yesterday Yesterday or the day before my memory is terrible and I basically called it operation Start mate or missy or start mate, but it didn't blow up like I expected So there's gonna be some throat cutting happening soon I need you guys to go to Twitter go to Twitter and go at start mate I heard a Mikulmo was signing up or signed up. You've got to check them out.  That's it I'm not asking for much for your blood or your babies and then all honesty I wouldn't want your baby except if I'm really hungry. Just hit the Twitter if you don't have a Twitter account Ask your grandma if you can use hers. I don't know find a freaking Twitter account It's not that hard people but basically the reason why you want to do that Okay, the core reason is that if we get accepted into start mate, they give us $75,000 we put that in a Mikulmo We hire more Esperantists and more Esperantists get happy jobs. We all work and love together and stuff like that It's all a big group hug. So just go do it So that is all if you've liked this video give it a like, share it with your friends up to the channel if you haven't already I'll see you all in the next video and if you're not there Oh bash you to death with a passport at the start of all.  That's some real philosophical questions


Let's keep it going for John Schleffler, Schneffler, I don't, Schmeffler, got it, I got it, nailed it, nailed it in one. Before we start, this is the last talk of the conference and I just want to say I'm so happy to see all of you nice people here.  That is more than half, that's amazing. Can we have a round of applause for the new people? And I also want to say weren't all of the talks great? Just great this year, so good. I'll try to not screw that up now. And also in the spirit of gratuitous pandering I want to show this thematic picture of Jonan. In his constructioneering onesie, as you can see. Now to the matter at hand, in the course of my career such as it is I have made a number of observations about software and based on these it is my conclusion that it fails a lot. Therefore I have written this talk which I am now giving to you the subject of which is, but why? And like all good talks do, I'm going to begin this with defining some terms because that's fun. We're going to be talking about how our software is defined by the processes we use. And how the processes that we use to build our software are defined and governed by our culture. And so I want to go ahead and start by defining culture because it's a word that has been used and misused a lot. And I want to be clear that I don't mean brofists and beers after work.  What I mean is the set of behaviors and beliefs and values that we share as a group of people. And then because this is a talk about the quality of software, I also want to talk about quality. Quality is not for me, generally speaking, an ethical problem. Software isn't good or bad. It's just valuable to someone. And since we're talking about failure, I want to define failure as well. And I define failure as a difference between what we expect and what we observe. So failure is a particular kind of change, and it's specifically the kind that we don't like. And before I proceed, I'm going to show you this picture that Amy lovingly drew for me. And I'm going to show it to you for 30 seconds. And I want you to try to remember as many significant details as you can about this picture. And you will be literally quizzed on it later. Significant details like it is adorable. So what I want to start talking to you about today is a concept that I call process patterns, that Gerald Weinberg calls subcultural patterns. And these are ideas that we share within our culture about how software should be built, about what we value when it comes to building software, about how we define our processes. And there's no one process that's followed by all organizations. And that's fine because different organizations face different trade-offs and different challenges. But we can identify some common patterns, and we can start to talk about those. And we can start to see that if you need to increase your capability as an organization, sometimes you have to reach for new patterns. And so Gerald Weinberg wrote a book called How Software is Built, where he talks about these software subcultural patterns. And I recommend you read it in all of the other books in this series. There are, I think, six of them. And they're available on Lean Pub in a really nice bundle that you should go check out. And so the first pattern, or in fact the zero with pattern we're going to talk about, is the oblivious pattern. And this is the pattern where we don't actually know that we're performing a process. How many of you have written some sort of small program shell script for yourself on your own machine? You didn't check it into version control. You didn't open up. You didn't create a ticket system for it. You just wrote a thing and you use it and you're done. You were following an oblivious process. You were following no process at all, the null process. And it's not that following an oblivious process is bad. It's good for certain things, but not so good for other things. If you need a more capable system, you're going to naturally sort of evolve out from this into a new pattern. But if you want to know when this oblivious pattern can be successful, you need a few things. You need to be capable of solving your own problem because that problem isn't too big for you to handle and you need to know exactly what you want to build. So you're the source of the requirements, you're the person building, and you're the person using it. The next pattern, which is the first pattern in the software... Anyway, so Phil Crosby, who was a management consultant, wrote about his own version of these subcultural patterns and he started with the pattern that I'm about to show you and then Gerald Weinberg added this zero pattern. The first pattern or second pattern depending on how you're indexing is this variable pattern, which is one where we just do what we want to do in the moment. And this pattern is characterized by poor adherence to plans and processes and by dependence on the performance of individuals. It's also the first one where people are aware that they're performing a process and since it's the first pattern that separates the developer from the user, it's also the first pattern where blaming appears as a significant software development activity. This pattern is especially common among small young companies that build software products for microprocessors. In order for this pattern to be successful, you need to have a good enough relationship with your customer that the requirements process isn't garbage. You need to be a group of very competent professionals so that because we're dependent on individual performance, you can have some expectation of individual performance. And you need to be solving a problem that isn't too big for your team that doesn't require any additional effort to solve. And there is a myth that variable organizations use when they try to figure out how can they be successful as an organization and it's the rockstar programmer myth. They put out ads for rockstar programmers because hiring a rockstar is the only hope they have of shipping a successful product, so they believe. And because performance of their software depends on the performance of their rockstars, the software quality is about as variable as human performance is, which spoiler alert is quite variable. And so when you have these people, these organizations who need to look for specific rockstars to, by the way, the managers, generally speaking, aren't actually capable of selecting from among their funnel of hires. They don't know what to look for. And so even though they need to find rockstars, they also can't find rockstars. And the other problem with this organization is that if they have processes, they only follow them when it's convenient. During a crisis, they're not followed at all. And the best indicator of success for a software project is which programmer happens to do it. And that means that the programmers get all the credit, but they also get all the blame. So the next pattern is what Jerry called the routine pattern. The routine pattern is one where there's a lot of emphasis made on having a plan. If we can just come up with a plan, that'll solve all of our problems. So let's figure out what our plan is and then force everyone to do exactly that no matter what happens. So if the first step in statistical control is to achieve predictability of schedules and costs, for organizations where this variable pattern isn't achieving that for them anymore, for teams that need to coordinate with other groups so that they need to have some defined process for doing that, they start to move into this routine pattern. And it's no longer sufficient to just lock the programmers in the closet and wait and see what they do. So routine organizations depend on plans and on managers to carry out those plans, but they struggle to deal with the actual changing requirements of software development and the weird things that happen that are exceptional that throw off plans.  They have to be able to use their routine process to solve the problem. They have to get the developers to follow the process and they have to magically not run into any exceptional circumstances that invalidate the process and the plan. And these organizations have a different myth. Their myth is the rockstar manager. If we can just hire the right manager, that manager will make sure that the developers follow the plan and everything will be fine. And he looks like that. Organizations that are characterized by this belief in a rockstar manager can achieve a repeatable level of control and quality by very rigorously managing commitments and costs and schedules and changes. But the problem with that is that the key word there is repeatable and not repeated. Routine organizations don't always know what they know how to do, usually because they don't understand why they're doing it. Without understanding the principles and the reasons that underlie a process following it blindly is generally not successful in exceptional circumstances and routine managers in crisis tend to make things worse rather than better. Routine organizations also believe in what anthropologists call name magic and name magic is where you believe that just by saying the name of a thing you gain all of the power of that thing, whether it's agile or behavior-driven development or lean or hexagonal architecture, there are a bunch of names that we think can view us with power if we just say them enough. And we all know, on the other hand, we know that there aren't silver bullets that offer magical improvements to the quality of our software, so why do we keep investing in name magic? So the next pattern is what Jerry calls the steering pattern. And this is really the pattern where you start to gain control over the quality of the software that you're building and you choose the processes that you want to use to build that software based on the results you have already gotten from using them. So these managers, these steering managers of these steering organizations they don't depend on magic, they depend on understanding. And while routine organization managers often come from a successful programming background but they have no particular talent training or interest in management, steering managers have usually had some management training. And I know, for me personally, moving from an individual contributor or programmer position into more management, it's what was Jonah saying before about how you can't just assume that because you know how to write a program, you know how to manage people, I see that a lot in especially new managers. So the processes in these steering organizations are not always super well defined, but there's always a shared understanding of what the goals are and why the processes were chosen. And even if the process doesn't work, there will be a way to recover from that because of this understanding. And that's also why steering managers and steering teams can take on harder, more challenging, more risky projects. And so if you're finding yourself in what you would characterize as a routine organization and you're having trouble solving harder problems or shipping software to more or more demanding customers, then maybe leveling up like this is what you need. So steering organizations are for problems that are too hard for a simple routine to work.  They need to have control over some control over externalities. And they also need to be able to reject arbitrary schedules and constraints. Now there are two more patterns that Jerry talks about in his book. And I'm not going to cover them and here's why.  And by the way, I'm not a fan of the term maturity model because I don't think that when I wrote that shell script I was being immature, I just thought it was the thing that solved my problem at the time. So I'm not going to call them maturity models, but they didn't end the survey. So this survey found that 85% of projects were at the lowest level of maturity, what we're calling variable. 14% were at level two, what we're calling routine. And only 1% was at level three. And there were no projects or organizations in levels four or five. So I'm not going to waste your time talking about unicorns. And we're going to move on. So how do you conduct a steering organization? What is the thing that you do that separates it from a routine organization? And that is the concept of cybernetic control, which is the concept of taking in feedback and using that feedback to make good choices, as Ernie would tell us, that will affect the system and then taking in new feedback, new observations about what your changes did to the system and then making new choices and then doing it again iteratively. So how many of you remember, or maybe probably, okay, maybe some of you do, AAA used to have these tryptics. And before there were Google Maps, you would go to AAA and you would say, I need to get from here to here. And they'd compile you this spiral-bound book. And what it would do is it would list out the route and it would list out some landmarks along the way, but it wouldn't list out anything else. And it didn't give you the context that you would need. If you turned off of the route, you didn't have the context to recalculate and figure out where you were supposed to go. You'd have to backtrack to get back onto the plan and then keep going. So this one is actually not a AAA tryptic. This one is from 1789 in an atlas called a Survey of Roads in the United States. So this is a pretty old idea. And the tryptic is limited by that lack of context and understanding and by its single purpose. And you either follow that plan or you get lost. If you take a wrong turn, you can't figure out where to go forward, you just have to go backwards. So in our modern era of Google Maps, we have access to a complete map which provides both context and understanding of the route. And we also have nice robot controllers to help us recalculate if we get off throughout. And so that is the essence of a cybernetic system. Your GPS figures out that you went wrong and then it figures out what course corrections you need to get back on track. So that's a cybernetic system. And you can look at different effect models or diagrams to think about this. And the basic one would be a system that has no controller. You start out with just a simple model of the inputs and outputs of a system. And so for a system that produces software, the outputs are software, but also other effects, other outputs, which include things that aren't the direct goal of the system, but might be things like greater staff confidence with the programming language that you're using. Thousands of failure reports from your customers. A general sense of anger towards management. So the inputs are the three R's. Requirements, resources, and randomness. And when I say randomness, what I mean are all the sort of unpredictable things that would tend to set you adrift. It's the entropy in the system, the things you can't plan for. So this is the entire model of software development as understood by variable organizations. They have no concept of the controller in such a system. There's no opportunity to exert control. And what you find is that requirements go in and software comes out and you can't explain that. So for routine organizations, and if we want to exert control over the system, we need to connect that system to a controller. And the controller represents all of our efforts to keep software on track. Managers, developers, everyone has the chance to exert some level of control to keep the software on track. And at this level of control, however, the controller doesn't get to make observations, so it's pretty limited. It can just say, no, no, no, you need to stick to the plan, but it doesn't know how far off of the plan you really are. So to get to the next level, to the steering organization, you need to start taking in feedback from the state of the system itself and from its outputs so that you can use that feedback to change the requirements and to exert some control over the system. And so an effective method of limiting productivity losses due to sickness is to send staff home when they start exhibiting signs of illness, but you can't do that if you don't notice that they're sick. Right? So the routine pattern controller that we just looked at can't do this because they're not taking in observations. And a more versatile and effective model of control is this feedback model. And because you can take in measurements and observations of the system, it allows you to make a prediction or to make an expectation about how you desire the system to be. And then as long as you have the ability to actually observe the actual state of the system and the ability to compare the desired with the actual and the ability to act on the system to bring it into convergence with what you intend, then you can start to exert cybernetic control. And cybernetic is a big word for the domain of science that talks about this stuff. It's actually fascinating, and there are a bunch of books that I guess generally don't even talk about software, so the human body is a cybernetic system. And when the human body's internal systems fail, we go see a doctor, and so that larger system is also a cybernetic system, so they're all over the place. We just happen to have a few of them here in software land. One of the problems with working with cybernetic systems is that many of these systems are nonlinear. And what I mean by nonlinear is a nonlinear system is one where the inputs don't always correlate to the outputs. Sometimes when you put in the input, you get this output, but sometimes you get a different output. And for our purposes, that's a close enough definition of nonlinear that we can work with it. So at the beginning of the talk, I showed you Amy's picture, and I want you to try to, in your mind, remember how many cats were in it. Don't call it out or do. Just try to remember it, and now I want you to tell me if you were correct. Now, how many of you notice that this is not the same picture I showed you first? A lot of you didn't, and we can talk about why that is. Some of it is change blindness, inattentive blindness, but that's another talk, and I don't have time for it. What I actually want to show you is that what we have here is a Spot the Difference game that maybe some of you played when you were kids. And Spot the Difference is failure detection in a nutshell, right? We're trying to find, we have an expectation on the left, and we have something we're given on the right, and we're trying to find where they don't match up. And so if I had you all play this game right now and record all the differences you found, and we graphed how many differences you found over time, what do you think that graph would look like? Would it be a straight line? Allow me to show you my highly technical data visualization that took me at least 30 seconds to describe the actual behavior of that system.  The rate at which you notice differences decreases over time, and this is a nonlinear system. So why does that happen? Why is it not linear? Well, there are two simple answers. One is that once you've found some differences, fewer differences remain, and the other is that you start out by noticing the easy differences because they're easy, and then the only differences that are left are the hard differences because they're hard. And so if you pick a spot in your progress and you make a mark and you say, well, I've noticed 10 differences in two minutes or whatever it may be, if that's the only information you have about the system and you try to make a guess about how long it'll take you to finish spotting all the differences, you're going to end up with a prediction that looks like this, and it's very different from how long it will actually take you. And humans are really good at doing that thing and really bad at understanding this part. We are really good at making predictions about linear systems.  We can do a lot of... Our brains are good at linear systems, but they just fall apart when we have to deal with nonlinear systems, especially when we don't bother to try to understand what is causing the nonlinear behavior. And if you think about this, when you're looking at a spot-the-difference game, you don't have a selection mechanism that you can employ to say, no, I want to find this sort of difference first. You see them as you see them. But if you think about which features should I work on first, if you think about which bugs should we fix first, you can employ a selection mechanism. And the first duty that you have when you're making selections is you have to be better than random chance, which sounds obvious, but it's actually hard to do in some of these cases. And if you are fixing bugs, a natural bias would be to fix the easy bugs first because they're easy and save the hard bugs until later because they're hard. But what does that do to the amount of risk in your system over time? Do we want to work on systems that are inherently more risky over time because we picked a faulty selection mechanism for sorting out our bugs? Think about if you picked the riskiest bugs first, and that's all you did. Do you think that working in a system that became less risky over time would be better for the overall outcome of your project? And I'm not saying that risk alone is the only factor to consider, but it's better than random chance and the opposite is not. So requirements gathering, feature development, bug fixing, everywhere you look you can find these nonlinear systems and you can find managers using bad, and programmers using bad linear models of those systems and getting bad results. And it gets even worse because not only are some of these systems nonlinear but the complexity of the interactions of the entire system makes it nonlinear as well. And so this is an example of the composition fallacy, which is the idea that the composite system is never more complex than the sum complexity of its components. But it turns out that the interaction between those components causes increased complexity. And then while we're here, I should also mention the decomposition fallacy, which is that if all of the subsystems work, then necessarily the entire system must also work. Just in case that's useful. So we ignore interactions between these systems at our own peril. So I want to talk a little bit about how we can deal with nonlinear systems. How can we prevent our plans from going awry because of unexpected events or poorly understood systems? And there are a few things that I can recommend. The first is to introduce governing actions into your feedback models. So if you make choices that regulate the add-on effects of positive feedback loops, if you prioritize work that's risky first, for instance, then the system is still nonlinear, but we've inserted a governor into it that prevents the explosion that you might otherwise get. It prevents it from running away with itself. And another idea is to act early, small, and often. Because the earlier the act to correct a system, the smaller the change you need to make. Smaller changes are less risky, and it's easier to predict the consequences of smaller changes. And the more frequently you make corrections, the more chances you have to catch problems before they become too big to solve or too risky to solve well. So these small corrections, these small choices that we make when we're trying to understand and correct our systems, these are the fuel of this engine of cybernetic control that I'm talking about. But in order to find problems, you have to see them. They have to be visible. If you are unaware of a problem, then you're not going to be able to see it and fix it. Controllers need feedback to operate effectively. So anything that you can't see or measure can't be taken into account.  I think that's a good model. And GitHub likes to stress that this is the place to hold conversations. And I agree, and that's super valuable. But I also just think the fact that it makes work products visible when they wouldn't have otherwise been is very valuable because managers can't fix a problem with work they can't see. And you'll be less effective in controlling the system that's producing the work if you can't see the work being produced. And that leads to the next point, which is if you can't understand it, you can't fix it. If you don't have a model of the system you're trying to work with that is sufficient so that you can make predictions that are somewhat accurate, then you can't make good choices and you don't know what the result of that choice will be and you're just driving blind. It's a random walk. And so let's talk about models for a while. Each of these cultural patterns use models to guide their thinking whether those models are implicit or explicit. Models support the need for understanding and for clear, correct communication. Explicit models also supplement the vehicle of words with these diagrammatic pictorial things that are dynamic and possibly nonlinear, and they can help show problems and show interactions that words alone struggle with. So Frederick Books, how many of you are familiar with Frederick Books? He wrote this book, The Mythical Man Month, it's decent. It's one of the best software books I've ever written. So he said, more software projects have gone awry for lack of calendar time than for all other causes combined. Now do we really think that the actual problem was they ran out of time? No, neither does him, neither does Brooks. So what he's doing is he's presenting a particular model that people use to understand why their software failed. We ran out of time, right? He's making a model explicit so we can examine it. Because most of the time, of course, calendar time isn't the root cause, it's just the symptom of the underlying problem. It's really the result of a bunch of other failures in your process that led to you not having enough time. And so, of course, Brooks knew this and so he spent basically the rest of the book providing you with better models than that one. And if we don't make our models of the system explicit, then when someone asks why the project failed, we won't understand the real sources of failure better, well enough to say anything other than well, I guess we didn't have enough time. So managers use models to govern their management decisions, whether those models are implicit or explicit, and if you make your models explicit and you share them, then everyone can gain understanding of those. And they become open to criticism and improvement. So here are some examples of some implicit models that managers often have. Let's talk about this one for a second. So managers like to think that if you input 10 units of pressure, you get 10 units of increased productivity out. They like to think that there's a nice linear system there. How do you think it really looks? Allow me to present you with another finely crafted intro diagram here. But that's not the whole story because not only is there this nonlinear effect, but there's also burnout.  So here are some more models. Okay, only there's actually the one. So implicit models are a characteristic of variable organizations. Organizations, so this one in particular, I know how to identify the best programmers is characteristic of variable organizations. Variable organizations need to find rock stars because otherwise they won't succeed, so they have a lot of incentive to believe that they can in fact find rock stars. You won't find a lot of managers of variable organizations saying, I mean we sure don't know how to pick good engineers. Because the entire premise of your success is based on picking good engineers. And unfortunately for them, there's very little evidence to support their belief that they can in fact pick good engineers. So to sum this up, because I want you all to go have some drinks or not, as is your choice, we need these feedback control systems, these cybernetic systems at all levels. They should inform the way we write our tests and they should inform the way we make strategic project or product decisions. And with these models, we gain the ability to think and observe our systems in terms of our understanding of nonlinear effects. And so I guess that's really all I have for you. I hope I've sort of convinced you to spend more time thinking about how you understand and guide your software and your processes and your culture. And the last idea that I want to leave you with is if software is governed by process and process is governed by culture, well, culture is governed by people. And if you really want to make better software, we need to spend more time thinking about people. So that's all I have for you. Okay, I have one more thing. I also have this gif of Vader and a little girl. No, no, no. No, still no. Okay, good talk everyone.