Well, thank you for coming back from part two, and yeah, it's been an exciting day. I just got the news this morning, so it's very nice to be able to be here and share it with a lot of friends.  And I'll tell you about another process that nature uses for exploring novel biological functions, and that's by recombination. Before I do that though, I'll reintroduce the same character, which is my favorite model system. It turns out to be a very practically useful model system in addition to being a fascinating protein, and that's my friend the cytochrome P450 enzyme, which I like because it can do extremely difficult chemistry events, activation of unactivated CH1s, and oxygen insertion is one of the reactions, so it's a mono-oxygenase. Does it cost of NADPH cofactors, and it does it very, very well under mild conditions. It's also extremely versatile because it can do a number of other oxidation reactions as well, so there's a long list, and my vision is that we could actually generate a general CH activation platform just from this one great discovery that nature made. The mechanism I'm not going to go into, this is an enzymology seminar, but rather than a biological design, I'll point out that it's a pretty amazing little molecular machine. It has two substrates, one is your hydrochloric substrate, and it gets oxidized, and when that binds, it enables the first electron transfer for reduction of the iron, second substrate, which is molecular, oxygen can come in, and it undergoes a second electron transfer, so we've got two electrons being delivered one at a time in this catalytic cycle, and the highly vacuum oxygen species is generated, and then the catalytic cycle, when the product is released to release the product, can go through the catalytic cycle. And I'll just point out that there's a little shunt of the action, which will be important for today's lecture, in which all of these finely tuned electron transfer steps, and I had to show the structure, it's just the human structure, but these finely tuned electron transfer steps can be bypassed in the presence of a peroxide, so hydrogen peroxide, for example, can deliver the oxygen in processory oxidation as well, so you can actually undergo the catalytic cycle via this hydrogen peroxide shunt pathway, and that had been noted many, many years ago, and of course again, since I don't particularly like that pathway, it usually shuts down after a couple of turnovers, but it certainly had been noted. And I'll also point out that it is a wonderful life of a machine, a lot of the work is done by a prosthetic group, the porphyrin, and so a number of people think of the P450 as being all this protein going surrounding the porphyrin, and the work is done by the heme, and the protein serves the role of providing an active site, a substrate mining site that allows such a commitment. Obviously that's a gross and unfair simplification, because we realize that this finely tuned electron transfer has to take place, and also as I showed you in the movie yesterday, the active site was opened up when the FGUAC is moved apart, and when they close it down over the substrate, water is excluded from the active site, so it's unfair to think of this as just protein blue that provides an extra shape, that would be biomedic, magnetic catalyst designers would call it protein blue, and biochemists would appreciate it from the complex machinery that it is. And let me just say that making biomedics from hems is singularly unsuccessful in providing the same kind of chemistry that the P450 can do, so it's really a wonderful object that nature has made. In fact, the heme domain responsible for catalysis, where the work goes on in substrate oxidation, is just this little green section, and there's a large part of the machinery in the reductase, a highly interactive complex that is responsible for the catalysis. As I mentioned, a fascinating thing about the P450 is that it comprises a very large family of enzymes that can be found in a wide range of organisms from humans to microbes, and if you look at all their capabilities over all of evolution, at least those capabilities that exist in 2008 and probably a few years before, and those things were submitted to the databases, we see that it's a part of the building to accept a very wide range of substrates and do this versatile chemistry on such a wide range of substrates. Humans, may interest in number, if you have more than 50 of the cytochrome P450s, were there responsible for a first-lander defense of the xenobiotic breakdown, so we'll find them in drug metabolism, but we also find them in biosynthetic roles in stereosynthesis, and diastropocytosis, and biosynthesis, and a number of other places as well. What I'm going to point out about the natural evolution of these P450s today, that's important for this lecture, yesterday I pointed out that somebody discovered one a long time ago, and over the process of Darwinian evolution, that is the creation of mutations, and then they're sorting out through the process of natural selection, this family of proteins that exist today was generated, and I pointed out last time there could be a very large number of amino acids that are changing during this process, such that two P450s that exist today can differ in more than 85% of their sequence. This is out of 450 amino acids, more than 350 changes, so there's a lot of mutation that goes on. Yet, the three-dimensional structures don't change very much, so biochemistry students learned this early on. If you look at the families of proteins that are related by evolution, we see that the sequence can vary a great deal. The function also varies, but maybe not as much. All of these are oxidative enzymes, mono-oxygenases, as well as the other chemistry that they can do. But what doesn't change rapidly over evolution is the fold, so in fact the retention of fold is often a very good indicator of evolutionary relatedness. This is important for today's lecture because I'm going to remind you of how evolution can be used as a forward engineering algorithm to make new proteins in the laboratory, and then we'll talk about how this sequence diverges and the retention of fold can also be used. So yesterday I mentioned that we can make new versions in the laboratory by just essentially mimicking this Darwinian evolution, but now applying a breeding pressure. I decide who lives and who dies, I decide which ones go on to the next generation, and that's easy to do because I feel a little compulsion about flushing my bacteria down the drain, and I can take the gene and the codes of people that exist today, rapidly make many versions of that and express those themselves, select the screen for the ones I want, and when I find improvements I can repeat the process thereby creating evolved proteins with new properties, for example, I can make the more stable or more active on the natural substrates and look for the activities that I know could exist in the natural world and recreate them in the laboratory. And so the good news is that this forwarded evolution works. I hope that I convinced you of that with yesterday's talk, but perhaps I also frightened you because on the order of one new graduate student is required for evolution on one new substrate. It's a labor-intensive process. I think I described this in my 20th, the accumulation of 23 mutations to make an appropriate amount of oxygenase, and if you bothered to look at the dates on some of those publications, this has been a almost tenured project. So if I want to explore the entire functional diversity of the P450 family, this is back last year, I think it was only 4,000 sequences in the database, maybe 4,000 in substrates, so it doesn't scale particularly well because in my middle age I'm getting greedy. I would actually like to be able to make P450s that could perhaps cover the entire range of the natural activities of these enzymes, so I don't really want to follow this experiment 4,000 times, and I doubt that the 4,000 graduate student would be terribly thrilled about signing up for my group. All right, so given that, I'd like to talk about a second, very important diversity-generating mechanism in natural evolution, and that's recombination, basically molecular sex. So if we can take the products of evolution that exist today, that encode for these evolutionarily related proteins, they all share pretty much the same three-dimensional structure, but they're very, very different in sequence. And what we've learned over the years from a very large number of laboratories and biochemical experiments is that if you make chimeras of proteins such that the crossovers between the genes say we take one segment, the green segment for the green protein and the blue segment for the blue protein and retain the order of the amino acids, many of these chimera proteins are functional. You can retain the fold-in function of proteins if you choose these crossover sites carefully. So often they retain the structure, yet they diversify the sequence very significantly. So chimerogenesis has been used to study, for example, to ask questions about what parts of the protein are conferring which function. You can use this in the laboratory, though, as a diversity-generating mechanism by making large families of these chimeric proteins all at once, and so that would be the subject of today's lecture. In fact, it's interesting to ask this question, just how conservative would the mutations be? The idea is that you can make chimerics because the mutations that have accumulated in natural proteins, the work of natural evolution is embedded in those sequences, are compatible with the three emotional structures of those proteins. Therefore, if you mix them naturally from different sources, they will be more conservative mutations than mutations you can make at random. So we can ask it actually in the laboratory now, because there's so many great methods available. We can actually ask this experiment, ask this question in a high-throughput fashion, and say, just how conservative are these mutations, because we can make, for example, we have 13 crossovers between two genes that make 16,000 sequences, and if you choose the right genes, such as a valactinase, that confers antibiotic resistance, you can rapidly screen to identify which sequences that retain function for that activity. Now, just three or four years ago, when this work was done actually five years ago, it was actually a little bit of work to assemble these. You can buy the oligos from your favorite supplier and assemble them combinatorially to make all 16,308 more sequences, and that took about four weeks. And of course, the technology has changed so much that you can actually just go and have these genes synthesized for an unreasonable price by companies. It's amazing how things have changed even over five years. But Michelle took her oligos, synthesized genes, made all those possible sequences and put them back into bacteria and said, which of these encodes a functional valactinase? And the first thing that she found is that in fact, your combination is much more conservative than random mutations. Yesterday I showed you that as you accumulate mutations randomly in our protein, the fraction that retains a function drops exponentially with the number of mutations. We see that kind of behavior. With recombination, however, we can go up into very large numbers of substitutions. And because both of the parents are functional, we know that this curve has to go down and then back up again. And so we can actually quantify using the valactinase experiment where this curve lies. So these are the actual data from Michelle's experiment to calculate the effects of recombination. And I'll just tell you, as you go out to 60 to 90 amino acids substitutions where this exponential decline takes you down to a very low number, we find many orders of magnitude improvement in the probability of retaining a function. This is a highly conservative operation. So if we look at the fitness landscape on average, here we're plotting the probability of folding as we accumulate random mutations so this is no longer on a logarithmic scale, it's just the exponential decline from end of mutation drops down and essentially goes to very low numbers. With chimerogenesis, you have this ridge on average in a fitness landscape. So it's a very special part of sequence space that's rich in folding and function. However, if one is actually doing the experiment in the laboratory and you're trying to accumulate as many mutations as possible, we'll talk about whether that's interesting or not. But if we want to create chimeros that are out here at 100 amino acid substitutions, the probability still drops down below what I'd want to work with. Because if you imagine the way that I do these experiments, I don't actually do them. If students do these experiments, we have to screen through each individual mutant one at a time and determine which ones fold and then from those, most of them require something that's still functions. So a probability that drops to one in a thousand is not very much one because every thousand might find one that still folds and maybe every folded one, there'd be one in a thousand that has an interesting function so that's really important to me. So what I'd really like to do is create large numbers of proteins that have large numbers of amino acid substitutions and I'm going to do that by recombination. But I'm going to do everything I possibly can to bring this probability up much closer to one. And here's how I'm going to do that. I'm going to contaminate my beautiful experiment with some thought. And so I'm going to say kind of plot as we used yesterday to argue that you really want to keep mutation level flow going to the actual structure base. These are the kinds of fundamental questions when you ask with these experiments when this recombination happened that's not disruptive to the three-dimensional structure. That's a prerequisite for folding the function. You want to keep the structure but accumulate large number of mutations. If we accumulate large number of mutations what kind of functional diversity do we find? And in particular, if you take evolutionarily related sequences most of the mutations happen pretty much on the surface of the protein until you get up to very high levels of mutation. So the mutations that are happening in these sorts of experiments are going to talk about 50% identity and say those mutations are happening largely outside the active site of the enzyme. So now what you're doing is you're accumulating lots of mutations and shuffling those around by recombination but they're mostly outside the active site. So it's an interesting question. What kind of functional diversity can you get in an operation like that? And finally, if you're creating thousands of proteins to the life of a person that fold and function and have hundreds of amino acid substitutions what do you have? You have a synthetic family of proteins. So if you've got the synthetic family of proteins and they're not just sequences in a database they're actually things you have in your hot little hand. What can you do with that and can we discern, for example, sequence function relationships from those proteins? So let's take the first question. The first question is when is recombination not disruptive to the structure? And for this I can go to work that was stolen out of biochemistry actually out of genetics and take it into computer science, genetic algorithms and take it right back into biochemistry. And in computer science it was recognized that if recombination is used as an operation and an optimization or a software involvement then you can use recombination. Recombination gives you solutions in which things that interact with each other favorable in the solution are retained. So favorable interactions are not broken by recombination. It's effective. So there will be some partition of your object into pieces that breaks the fewest interaction. If you have the wrong partition you're not going to be able to build up the object from that. And so if we think of a three-dimensional protein structure and these are not domains or anything like that this is a three-dimensional structure of the cytochrome P450 what I'm proposing is there will be some decomposition of this protein into elements that become softable from which you can take from different colored parents for example and rebuild this P450 and still retain its three-dimensional structure. Why don't we look at this it was a nice experiment that was done fairly recently by a master in Hernandez who just took two related proteins from a thermophilic source and a mesophilic source so this one's less stable than that one and they recognized that these two proteins even though they're single domain proteins they're small compact elements they shared an interface so both of the proteins shared amino acids across this interface and when you swap these pieces of the structure so if you swap red into the blue protein or blue into the red protein this interface does not get disrupted and so therefore that swap is perfectly compatible with the three-dimensional structure they showed not only it's compatible you can make these kind of red proteins but the effect of these swaps is perfectly adequate so that if you measure the delta-delta G for this mutation and the delta-delta G for that mutation they're exactly the same as the other side of the thermodynamic thermodynamic cycle so these effects are adequate even though they're happening over many mutations this is exactly a very nice demonstration of what we've been able to play several years before in the scheme of a combination of the one that Chris Boyd did when he was joint-studied with me and Steve Mayo and the basic idea was to identify this partitioning of the protein where we're going to recombine elements and many proteins can be 3 and be 20 so it doesn't really matter but we're going to do it in such a way that we choose the crossovers to break the fewest number of interactions upon recombination so the question is what are those elements that break the fewest number of interactions and we're going to define the interactions in a very very simple way this is where the contamination of the experiment with some thought comes in only the fun is very simplistic because yesterday I said details matter they matter a lot but I don't understand the details so I'm going to describe the protein as something very simple and that is interactions from a contact matrix and then an identity sequence identity among the parents so the seed function is just the context that people are thinking of me and just look at one another and we'll just give it a cutoff and so you can draw this protein like this and it's a one-dimensional chain where interactions are these connectors between the interactions so there's lots of long-range interactions and there's proteins lots of short-range interactions and then some of the others and then you can also draw the same thing in the form of contact matrix so there's a one if there's interaction otherwise it's zero then the doubting function tells you what sequence identity the parents share and that's really critical for this because remember that we said conserved interface that makes it so there's lots of interactions between those two pieces of the protein so if we think of a crossover between the sequence of parent one and parent two to make this particular chimera this interaction in the chimera M to A existed in one of the parents so that interaction cannot be broken that's an interaction that was not broken so that don't get a delta function of zero there whereas this particular contact in the three-dimensional structure A did not exist in any of the parents and therefore is a new contact or represents one that's broken so when you sum these up over all possible contacts we can score each chimera by the E value and then the design becomes a dual optimization where you're trying to minimize disruption for a certain level of mutation and this is a dual optimization public and actually we can get the global optimal solution by dynamic programming which Jeffrey Eindhoven did a few years ago as I said the details matter we don't know anything about the details so we don't know much about what mutation level is required to obtain new functions so I'm going to try to maximize that just for fun this is a very simple model of scoring broken interactions by one dollar so it's going to cost you $1 every time you break the interaction and I'm not going to give you any credit for making new interactions because I don't know what those provide and so does that tell me anything about who's likely to fold and who's not so listen back to the data lack of mixes because that's such an easy system Rake of Mind 3 that's shared between 37 and 42% sequence identity so these are not terribly unidentical there's a lot of mutations there make all the possible sequences which for three segments or seven possible this is more than 6,500 chimeras and this is a historical slide this we for technical reasons went to a new method for constructing a library in the same year this was a lot of work to make exactly what you can order on the internet now in synthetic genes so we don't make this using complicated methods anymore we just get synthetic genes in these chimeras so you can make all 6,561 sequences you can sequence them very rapidly because there's only one possibility at each of the 8 blocks I'm sorry 3 possibilities at each of the 8 blocks is either going to come from the blue parent or the red parent or the green parent so if you have a probe a sequence probe for each parent so if it's got 8,1 there it's going to light up for the green probe and so you can actually do this the treatment of the eight will well place and you can put that way when you do that you found that somebody made a ruboo in the library construction left out red for position number 4 but otherwise it was okay so we know like the unselected library looks like and we know that we can in principle be looking through all the possibilities for swapping fragments from each of the parents so here's some of the ways of making a data lactamase by recombination from this library first of all looking at 553 sequences we found 111 that folded that means that 20% so not 1 in 1,000 now 2 in 10 will fold the function at this very high level of mutation up to 86 amino acid substitutions so I don't know too many people who can accumulate 86 amino acid substitutions in hundreds and hundreds of proteins at the same time there's a lot of data lactamases they have pretty high levels of mutations that can be the most mutated ones there's lots of crossovers so you can find crossovers in multiple locations that lead to functional proteins and in this set on average there's 4 to 4 amino acid substitutions with respect to the closest parent so is there any correlation between this scoring function that I described to which is an incredibly simple one this E value, this disruption value and whether the enzyme folds and functions or not and the way we look at this is we know that mutation is disruptive so of course things that have low levels of mutation are probably going to have a high level of function so we expect to see an active enzyme down here but out here at high mutation levels it's very clear that the ones that have low disruption that make mutations that do not disrupt the interactions are the ones that tend to be active so we know that this scoring function gives us some information for recombination if that's the case we'll go and make a moment to P450's that way so let's take P450's that are related to one another fairly closely related we can take the cellus medicurium one that I introduced to you the other day yesterday and it's close relatives from the cellus samplis 102A2 and 102A3 these all share about 60% sequence identity and therefore differ about 150 amino acids because this is a much longer protein these are the blocks if we decide to cut it into 8 segments this corresponds to 8 blocks that are color coded here and I'll show you those in a little more detail in a minute and once again this gives us 6561 possible sequences this corresponds structurally to sequence elements that are more complicated than secondary structures for example we're not just swapping in and out of the helix with a machine by forcing crossover at 7 positions and also saying you can't have very small segments of structure the algorithm chooses the crossovers to occur at these points and you'll see interesting things like a crossover being placed in the midst of an alpha helix so it's not even choosing the end of the alpha helix it's actually saying you get the least disruption from putting it in the middle you get long meandering sequences that go through there that probably don't care where you're really cutting you get more complex combinations of data sheets and alpha helical regions and this is the corresponding space filling model and you can see there's plenty of interaction surface between and just looking at pearls on the string and cutting for the string ends there's lots of interaction between these elements but these are ones that have the most conservative interfaces it is interesting however to look at how the domains or what do we call a swap of the elements identified using this algorithm compare to some domains in this protein that we know from things like molecular dynamic simulations by looking for example on pieces of the protein that move in a correlated fashion you can identify some domains in the cytosome people are 50 that have these correlated motions they're spread out along the primary sequence such that we have orange interacting with orange over here so recombination couldn't quite capture these boundaries but if you look at where the schema recombination points come out to be we have points that maybe these very very well as well as you possibly can such that block 1 and 7 together make up this sub-domain blocks 4 and 5 make up this sub-domain block 6 and 8 make up that one so it's trying its darndest to capture those even though there's no dynamic information put in there but so ever it's all structural so there is clearly some attempt to identify structural domains alright, what do these proteins do? that's the fun part with a sample from before 50's it's easy to assay for who folds actually that's actually pretty hard to do for a lot of proteins this one we have a good folding assay because it won't bind the heap and allow it to persist me unless it's properly folding and in fact it's a nice call because you'll only get the different spectrum the carbon and oxide different spectrum at 450 nanometers if it is properly folding but if it's slightly misfolded you'll get a peak at 420 and you can distinguish those so in a 384 ball plate we can array out the clums for all the different variants and see very rapidly who folds and who doesn't with a certain particular color so here are the results for the P450 family we did a random sampling of 628 we found it nearly half encode folded proteins this represents that a 10,000 fold increase in the probability of folding by using the schema algorithm is our estimate they have an average once you have the folding one 72 of the isosubstitutions so these are really significantly different they are habitably different from one another that's a measure of different bite they may be different but they are at a sequence low significantly different at 47% 6,560 sequences that means there's more than 3,000 folded P450s when I first came out with this result the entire database of P450s was only where it was 3,000 so this had doubled the number of functional folded P450s that were now very wide range of mutation levels up to 109 amino acid substitutions they really are quite different from one another and the difference between my P450s and the ones that were in the database in 2005 is that mine are all sitting in place in my refrigerator and I can do things with them I don't have to synthesize them I don't have to clone them they're already old done and so I can start asking interesting questions about the ones that are folded and I'd like the ones that you find in nature because you may think that those are not interesting but if there are done computational analyses it's really nice to have real decoy sequences these are the ones that are gone for the same operation but did not encode a folded P450 so if you think you're good at predicting what makes a pretty fold or not I will offer you my sequences to play with so let's ask a functional question and this is a really interesting and simple question I know that it interests some of you in the audience so let's talk about how these different blocks contribute just to the stability of the protein, the conformational stability a cytokine P450 does not undergo reversible unfolding so we're going to be looking at irreversible unfolding we'll measure it just for the purposes of this talk by looking at the temperature at which half of it unfolds and it's no longer binding carbon monoxide so you can ramp up the temperature see where the carbon monoxide peak is and come up with a nice current like this and then come up with the T50 here are T50 values for about 200 of the folded chimeras and there are a couple things to note from this first of all parents distribute over this range from about 44 to 55 degrees centigrade so they are not terribly stable proteins but they are easy to work with still and the chimeric proteins distribute such that most of the chimeras are within the parents so most of the children are functional half of the children are functional of the functional children most lie within the parents capabilities but there are outliers there are some children that are less functional than the parents and even more interesting there's a nice tail out here where the children are better than the parents so this recombination operation has the possibility of giving chimeric proteins that are more stable than the ones that she started with in fact some of the most stable B450s that have been recorded well, gosh, we've got 190 sequences, we've measured their disabilities, what can we do with this how can we think about these why don't we start with the simplest possible model the simplest possible model for correlating the stability of the sequence is just to assume that the effects of the different blocks are additive so that means with three parents and eight blocks there are 24 possible sub-elements that are being swapped among all these proteins and if we do a linear model that means we've got most 24 parameters but it happens we can use one as a reference so we only have 17 possible parameters in here, a0 and a16 of these elements where each fragment xij is contributing aij in terms of stability that means you can take a chimeric protein and just sum up the stability of each fragment if stability is additive in this system so why not let's give it a try we looked at the data for that and we're stunned to see a really good correlation for this simple model so if you predict the T50 by fitting all of the 100 and actually just 204 points to the measured 50 you do the model you find a fit and then you predict then and you find a really nice correlation in fact the correlation is so good that when we went and looked at the worst outliers and went back and sequenced them they had sequencing errors so all the other ones were perfect, all the blue ones the sequences were perfect but we found quite a few patients in these in sequencing errors from the pro-hybrid which has a 3% error rate in the worst outliers so that was pretty good all right, if it's a good model then you can predict things that you did not know before so what you'd like to do now if you have a good model for the linear fit for what the contributions of the different sequence elements are you should be able to predict the disabilities of new proteins of new pyres that we had not previously tested so in fact we went then in fact 20 new sequences just pulled them out of the soup and constructed with you including the predicted most stable kind of and found your equally good fit for those predicted disabilities in fact the most stable P450 has this fully on 65 degrees centigrade wow, that's pretty remarkable what that means then is if your model is good we should be able to take a small sampling of all 6561 take a sampling experimentally measure those and predict all of the disabilities of all proteins in that set and the most interesting ones of course are the several hundred here that are more stable than the most stable parent so if we're so smart we should be able to measure this, predict the most stable ones synthesize those which we did and construct them and test their disabilities so we took the 44 they were predicted to be the most stable I'm sorry 44 of the most stable from the 300 that were predicted were more stable than parent A1 so these are their sequences you can see that there's consensus here that parent number 2 should be at position 1 and that there's little less height and other positions and while we synthesized them every single one of the 44 was more stable than the most stable parent in September but we have now 44 highly thermostabilized side-by-side protein for 50s whose stability range from the T1 to about 55, 56 to 65 can be generated so that just shows that the schema algorithm was able to capture the interfaces capture the cut points that allow these pieces to be swamped and not only that then allow these pieces to contribute in additive fashion this is just a demonstration of the sequence diversity that's available we can put this on a turnery diagram where the sequence of A1, A2, and A3 are the vertices of this diagram and then the sequences of the unit and sum or the camera is lying between and this is just to show that the sequences are different from one another in a significant way as well they're not 44 of the same protein or 625 of the same protein these are all significantly different from the parents and from each other so who cares about stability stability's great but it's only interesting in the context of what a protein does having a stable rock is not as interesting so what do these do in terms of their characteristic activities and let me tell you just a little bit about that in the last few minutes as I mentioned yesterday that a BN3 in fact all of the parents for this experiment have very nice properties in terms of their biotechnological properties they're well characterized, they express well they collide all the work that's done in a single polypeptide but they have this fatty acid hydroxylase activity that is of marginal interest to me it's very fast but it doesn't do anything particularly interesting and so what I like to do is be able to screen them to find out whether these new recombined proteins that have many amino acid substitutions have acquired new catalytic activities and for this I'm going to make use of this peroxide shunt because remember I believe done this in the heme domain of the P450 I don't have reductases attached to these and so instead of using a mono oxygenase activity I'm going to feed them hydrogen peroxide and drive the reaction to the peroxide shunt and there's a particular mutation that had been reported to increase that activity many fold and that mutation was made in all of the parents so they all should if they are active have this peroxide denace activity so how do you find out what's the range of activities it has well you have to go and measure it and so like a 64 question type of game I'm not going to tell you what they do unless you have a way of asking the right questions and the answer there in that library or the energy crisis but if you have it asked it it's not going to come out and tell you that so that just means you have to knock them under and develop high throughput screens and give you a nice color metric output or a four metric output for these activities and we have those that's exactly what we've been doing for the last 10 years with a random genesis so we have activities on fatty acids like some straights and we measure it with 1920s German analytical chemistry we've got our demethylation acids when you make formaldehyde then you get a nice purple color and we combine all this we've got alkene epoxidation acids so we just collected all the acids we developed over the years and started asking each of these kind of proteins you've got the heave in there what can you catalyze the reaction on and I'll summarize that it worked just my kind of most of the ones that fold also function so that little bit about the protein go around the human vein is valid if you have the heave if you've got a heave properly inserted into the protein it will be active on something to reverse the approximation what exactly is on you've got to find it out but it will be active on something which is a nice thing for the cyber company for 50s so you have to knock them under so we took 14 of the best express cameras as well as the parents 1 and 2 the heave domain of parent tree is not functional all by itself it requires its reductives to be functional on any of these substrates but we can measure the activities on the substrates now I'm going to go through this data because it's mind-blowingly boring to look at these kinds of plots but I will tell you the conclusion that's important for this lecture on the substrates that we studied and none of these spoke much like padiacens there's at least one of these chimeras in 14 that's more active than either of the parents so just by checking 14 chimeras we found something for every substrates that's more active than 1 and 2 furthermore you can find substrates that on which the parents don't have any activities so 2, 3, 7 there's very little activity or no measurable activity in the parents and sometimes multiple cases where you can find activity so you can find new activities from these chimerated enzymes for example, if I introduce you to some of the chimeras 2, 1, 1, 1, 3, 3, 1, 2 which looks like this is active on zoxazoline that's a good drug and it's a substrate for the human B450-6182 6182 takes about everything and this chimera will make the identical human metabolite made by the human enzyme they make the same product and if you just plot where the amino acid substitutions are this one is 98 different from its closest current which is green and the 98 amino acid substitutions as I told you are lying all on the surface of protein there's nothing near the active site versus new activity 2, 1, 3, 1, 3, 3, 1, 3 which looks like this guy permethylate is permethylated sugar so I introduced that reaction yesterday and this is one of the culprits that does it it's differing from its closest parent to 85 amino acids once again primarily on the surface of protein all over here and this will take the one position and do a selective demethylation on that and finally there's one more example 2, 1, 3, 1, 2, 3, 3, 2 which looks like this one is different from its current at 84 amino acid substitutions and yet this will take the rapamil and make the authentic human a single authentic human metabolite so it will demethylate it will de-alkylate the other position here to create these two products and that's an identical reaction made by the rat liver chromosomes so these are functional enzymes and they're actually pretty good so these are also part of the ones that have gone into the connexus sip sip so let's finish with one last little functional thing and then remember we're only looking at the heath domain I've made these recombinants of the heath domain yet we know when the whole inside complex it's interacting with the reductants so if I would like to reconstitute the monoboxygenase how can I do that which of the three possible reductases should I use or do I have to recombine the reductases so we went and made all the parents and 14 of the active primaris the ones that we studied before and reconstituted them with all three reductase domains and asked which of these will be functional and what's interesting is that every single one of the functions work as hollow enzymes and why is that? I bet you can tell me why not all of the interfaces are conserved all of the key interactions between the heath domain and the reductase domain are conserved among the parents so are almost completely conserved so the blue ones are conserved in all three parents and the red ones are conserved in two out of the three parents so these key interactions across hydrogen bonds male right interaction or no sorry water interaction are conserved among all three parents so that when you swamp them it doesn't really care so here's something these reductases differ at 50% of their sequence yet they retain this ability to interact across the domain that was those were a retain during evolution and therefore did retain when you do the swapping so let me summarize some of the points I've tried to make the first question was when is recombination not disruptive to the structure well that happens when blocks are defined by these maximally conserved interfaces and the schema scoring function allows you to identify those computationally in a very rapid way and so that when you combine these blocks from different parents you can make proteins they're highly mutated yet still full of function so we can make 4,000 or 3,000 from people of 50s in a single experiment but a functional diversity is accessible well I've just shown you that in a very superficial way but I hope that I've told you that there is functional diversity there they exhibit features of stability that are outside of our ancient parents and catalytic activities that are both better than the parents and allow you to have catalytic activity on substrates that are not accepted by the parents and notably these bacterial people of 50s can acquire activities of the human enzymes and finally the last question was can we discern sequence function relationships with this synthetic protein family made at the laboratory and I hope I've shown you that I did not discuss this here but it's been published we can find actually specificity determining features of one of the parents that were not known before what I did show you was that the stability contributions are additive in this system and therefore the stability of unknown sequences with a high level of accuracy using this what we're proving now a minimum of very small number of sequences this means that even in the absence of a high throughput screen if you can look at even 30 sequences then you can make a large set of proteins and accurately predict highly stable sequences from that and I didn't have a chance to tell you about sequence analysis but I know that some people here are interested in that these consensus energies that you can calculate from sequence analysis can also be calculated in these non-natural protein families and this allows you to predict stability just from folding data alone you don't even have to measure the stability so you can accurately predict stability just from the sequences of folded proteins and if people are interested in that they can go to the paper that was published in September so for that I want to quit I think I'll thank you the people who did all this work and I'll thank you for your attention I was hoping that you could elaborate on the schema kind of stuff in the active site and one side of these that's where you wouldn't want to disrupt the active site must be a very important schema but the other would be that it would probably highly conserved so that you actually could swap in the active site and you could clarify for that for me and were there any crossovers in the active site area and one might argue that that would maybe give you more functional diversity the only way to get mutations by recombinations is if mutations exist in the parents and so it can take proteins that are 50% identical that's a very high level of identity very rarely will there be mutations in the active site so since they don't exist in the parents they're not going to exist in the congruence they're homologous and there are high levels of identity so 50% now that's high from an evolutionary point of view but it's very low from a protein engineer's point of view because you still get very high levels of mutations but you don't get them in the active site so this experiment shows that mutations outside the active site can infer these in some states that's the best whether that's a special feature of people with proteins I don't know yet in some cases homologous proteins that are functionally different so then one wonders what would happen is that a way to get a lot more functional diversity even though they want to offset the prosody of this sort of process that's an interesting so as you go to more sequence divergence you can actually find things that have now diverged in function or maybe converged so they're not homologous right now we're still limited to about 30% 30% identity is the lowest that we've gone so even in 30% identity evolution there are a couple of bold people in the group who'd like to test what you're talking about not homologous but as you know the mutational still matters and as you go to 20% and 15% identity the structural divergence has now gotten so large it goes up exponentially to see what's urgent so then there's a lot of disruption I wonder if there's other fragments and then just focus then on the fragmented domain that's important or the subset of domains that are important for the agrocytes to be the rest of the same yes, so that's another way but then you don't get very many proteins that way so if you just choose one fragment yes, you can swap in a structurally homologous fragment from another protein but you just make one from a protein I would make 4,000 so I'd have to find 4,000 all these fragments to put in so I don't get the common and plural I guess that's what I'm asking you about the fragments you certainly can you certainly can now that we have gene synthesis you could just as easily make that library as synthesizing all of these genes so it becomes more practical to do that we wouldn't even have thought of doing that a few years ago because you'd have to make each one of those one by one because I could just make all 6,000 at once with the methods we were using before but yes, we should go back and look at that the mutation level is not going to be as high we get hundreds of mutations because we're swapping lots of fragments at once if you're just swapping in one fragment then you'll have a lower mutation level but I think that's interesting yes, the calculations all the gene calculations are available on my website what is more difficult to do is the RAS algorithm that does the calculation of the optimal crossovers but anybody who's ever asked us to help with that we're happy to do actually I think there may be a RAS Python code on the website now the substrates that you chose to look at so you chose a subset of compounds it seems like really anything is possible those compounds the ones of the 14 you know why? because it's really hard to measure whether a steroid has been hydroxylated whereas if you hydroxylate an aromatic you can use these color metric reagents if someone pays enough I'll go and look at a steroid but that's why Phinexes has these proteins because I really don't want to do that that takes LC and GC and it's not fun I think the statistic where the actively polluted proteins are active and that you show the now the functions of 14 of these so do you measure the closest parent functions as well oh yeah so the parent functions most of the substrates the parents have very low function on so we know the parent functions on those substrates and usually we choose things that parents are not active towards but then do they still confer the parent parental activity for the other substrates? oh for the other substrates we haven't looked at the fatty acid activity for the chimerics we did that for the PMO that I described yesterday but we haven't done it for the chimerics it's really interesting have you thought about doing this with the sort of point of experience and you've taken the same increase in interest so as you go to higher and higher stability there are going to be pure possible sequences that are more stable than those it certainly would be interesting to find those two possible sequences because I think the temperature and the stability of proteins is dictated not by the physical chemistry but by other biological requirements I think it is possible to make even more stable proteins than we have now so it's not going to be as easy to stabilize a thermophilic protein than it is to stabilize the protein sort of along those lines of increasing stabilization of the protein if you run through multiple rounds you expect that you'll get another increase or the blocks that you're using are the same blocks that you used before so presumably that would go yeah you wouldn't do another round of recombination like this but what you really want to do is take those stable ones and find some other ways to increase their stability through point mutation for example or making more crossovers another would be to say instead of using several crossovers make 23 crossovers but then the combinatorial explosion goes out and finding the linear model the linear fit would take a lot more experimentation so I think the better thing to do would be you've got a nice starting point of 44 new sequences and it has an interesting activity in stabilize that you've got you've got a bunch of mutations out there that were affecting the substrate's specificity have you determined for any one of those whether or not it's a single domain swap that confers that the initial activity or is it the combination of those 75 or 80 mutations that give you just that right fit to confirm that so basically you're asking what's the minimal number of mutations required that I have and we don't have enough data to say to do a machine learning you'd like to find us a structure activity relationship but you actually need a lot of data for that I think it's extremely powerful looking at this it's easily going to mess with the active side of the mutations but once you get out to that secondary shell it seems extremely extremely powerful


okay here we here we go Royal Hibachi Grill and buffet Roof 46 West in Saddlebrook, New Jersey. I'm James P. Madonna of the Facebook group. Everything is food. Oh hold on let me get another plate. That plate had something on it. Anyway I'm going straight for the roast duck and as you can see I have a good amount of succulent duck. No jabroni took all the duck for me which is good. I'm in luck. I'm in luck with the duck. Okay all right in honor of the creator Mario Petrus. All right give a shout out to Mr. Salvatore Mercurio, Anthony Laura, Mick Von Raven, Natalia Rodriguez, my near-dear Natalia of San Diego, Nathan Bates, Donald Boos of Dumont, New Jersey now living in San Diego. Give a shout out to all of you. All right now let's see now let me check out now potato soup. Now I don't I don't do potato and I don't do chicken when I'm out. I can have that anytime. Let me check out and see if they got lamb. Let's see you got any hardcore sushi here? No no hardcore sushi yet. Oh oh there's one. That's white tuna that was delicious last week. Okay see what we got going here. All right beef tenderloin. What's this? I don't know what kind of fish this is. I don't think it doesn't look like tilapia. It's too... I don't know. I'll try it. I'll give it a shot. I'm not sure what it is. It's flaking. It might be it might be scrod cod which is would be a great thing actually. I don't see any lamb. Here's the Mongolian barbecue. All right we've got over here. Stuffed shells, chicken teriyaki, sausage, yeah chicken now in the past. I don't do chicken like I said. I go I go for the good stuff. Here's a platanos maduros. I guess the fry calamari is coming later. Alrighty this shrimp is very good by the way. It's not greasy. This fried shrimp. I say that every week. Every week I grab it. Don't crimp the shrimp as Red Fox said on Sanford and Son. Remember that? Don't crimp. Pat Merida was Achu on Sanford and Son. This shrimp is good. It's not greasy. Duck. Roast duck. But I was looking for lamb. I like lamb but they don't have any right now. Not today. Not yet. At least see what we got going here. Chinese food. All right. Let me guess. Oh you know what I better do. Better find something good to put the lemons in this time. If I can carry it all. You know what? Let me check the yellow soup bowl for lemons. Yellow for lemon. Metal rock lemon. Remember the Harlem Globe Triders? Metal rock lemon. I wonder if he's still alive. All right. Here we go. Get the lemons. Roll grape leaves. I'll come back for that. Here's the lemons. Whoa. That's some nice seeds going here. Potential lemon trees which I know how to grow by the way from thanks to YouTube YouTube educational videos. Not everything on YouTube is the truth but a lot of it is. You know. There are also experts on YouTube. All right. So slim pickings here for the lemons. For now. For now. Let me see how I'm gonna do this. How am I gonna do this without having an accident? You know what I'm gonna have to do? I'm gonna have to display what I have here and then end round one of the lunch buffet here. It's Friday afternoon. Okay. I got very good. Yeah I know. There's not that many left. Okay. I got plenty of lemons. Fried shrimp. Succulent raw stock. A decent amount. And filet of fish that seems to look like Skrodka because it's flaky. But I don't know because there was no sign there. You see how I always get interrupted, right? I was ready to do this and then the lady made me move because she wanted lemons. Everybody bothers James P. Madonna. And annoys him too. Okay. It's round two. James P. Madonna. Facebook group. Everything is food. I'm gonna get some of this white tuna I believe. Remember this from last week? Delicious white tuna. I love it. I love it so much. This is the white tuna. White tuna. All right. Thank you. Gracias. All right. I'm gonna put the dish.  All right. Some wasabi here. Should be enough. Some pickled ginger. And it got the seaweed salad over there. Got some kimchi. Maybe I'll get some kimchi but I don't want to drip. Gonna figure out a way to do this. Kimchi, white tuna, and soy sauce. I can have any root room for roll grape leaves this time but that's okay. I enjoyed the sushi and sashimi better than just a lot of things you know. I also love the lamb but I don't I don't know if there's any lamb out today but I know I will keep my eyes open for the fried calamari of course. There you go. Got the soy sauce. Got the wasabi. Got kimchi and a white tuna sashimi. As you can see now I'm gonna just double-check see if there's any lamb over here. Beef tenderloin. No lamb yet. Whiting. I don't know. Kind of a low-class fish but it's all right. It's all right. It's okay. Well no lamb you know. I know they do put out the fried calamari so. Wow look at these nachos. Today we got grilled zucchini. I don't really have room for but I'm happy with what I have now. Let me check the New Zealand green lip mussels. I'm glad they got the air-conditioned cranked up man. That's very nice of them. Hey there's the lemons. This one. A nice green shell. I'm using them for decorative purposes. That deep jade green. That's about it. I have enough. I have enough at home. Let's see what we've got here. Nope. All right I should do it. People have been very moody this week. People are in a bad mood this week wherever I go. Okay so this is it. Kimchi, white tuna, and a few New Zealand green lip mussels. Hold up a second. Okay you witnessed that people. A very rude millennial tried to take my stack of napkins. Okay this is how millennials are. They feel entitled to everything. They have no manners. He did not say may I please have some you know kind of annoyed me. I'm not I'm not giving out any more of these napkins because the waitresses were supposed to technically give me a stack of napkins just like the waitresses are not clearing my table. So but they expect a nice tip you know what I mean. They expect a nice propina but it's still sitting there. You know what? I'm sorry but I'm gonna have to get I'm gonna have to speak to management. Okay I guess I'm gonna have some whiting. There's no land today. No land today, right? I'll have some whiting. It's a cheap-ass fish though but it's not bad I mean. I think he it's the Italians call it St. Teresa's fish for some reason. This woman was telling me years ago when I used to work with seafood for ten years. I was a fishmonger. That's some whiting. Hey is that a new one? A new imported Turkish lamp? I think I already did a video on these. It's gorgeous though. I'm just mesmerized by them. Close up to that one. Beautiful imported Turkish lamps. I mean light fixtures. Definitely surpasses anything I've seen in American stores for dining rooms. Without a doubt. They put out oysters. I'll get a couple of those I guess. It should really eat some veggies though. I'm not in the salad mood today. I have a few of a few shucked oysters. Oysters and whiting. No grape leaves. I'm not in the mood for that either. That's it. There you go. My dirty plate is still sitting there and I tipped them very well here.


Okay. So I think we'll go ahead and get started. Thanks, everybody, for coming. I am Andy Lowe. I'm with All States Composed Labs. I'm part of the automation engineering team over there. And I manage a suite of tools that are all about helping our developers go faster. And one of those is part of our deployment technology. So I will be talking about that today. This slide is probably familiar by Friday afternoon of a three-day conference, but just in case, please make sure you know the locations of emergency exits. If there's an alarm, please call me exit to the concourse area. There is emergency exits outside and listen to people giving you directions, especially if they're public safety staff. Questions? Okay, good. So when we're talking about the process of building software, there's a lot of stuff that goes into it. But for most people, only small parts of that are actually interesting. And there's actually a lot of overlap with the stuff that people want to do and what the business wants to pay people to do. But when we start thinking about those things, the reality is that not all, not only is there the stuff that needs to happen, but there's all this work that people are actually doing. And that leads to, they're not always being a lot of overlap between what is supposed to be happening, what you want to have happening, and what's actually getting done. What you really want is a world where all the things that need to happen and all the things that are getting done completely overlap with each other. But the things that we want to spend time doing are also the things that we are spending time doing. That would be an awesome world to work in. So how do we get there? Let's figure out what we're doing with our time first. All of this is good stuff. People generally value writing code and having tests, change controls good, yak shaving maybe overrated, but all the rest of this is actually useful things as part of the software development process. And so we don't want to get rid of any of it. Thinking about what it takes to actually get code from the initial idea out to production. In a base case, you write some code, you do a commit, you have some automated tests, someone does a deployment. If you're into true CI CD, then your acceptance is completely automated, but maybe you have someone like me that's standing there doing acceptance, and then you push out to production. That's kind of the simple workflow. But the reality is there's all that other stuff that people are spending time doing as well. So let's start looking at what can we peel out of here and make it easier for people to do. As you can probably guess from the topic, I'm big into automated deployments. One of the big reasons is in this day and age, if you're not doing automation, please do, it makes life much easier. Things will go badly if you're not doing automated deployments. Yes, everyone knows how easy a CF push is, it's a single command, but usually there's a lot more to deployments than just a single CF push, and it's a repeated process. If you're trying to push on a very regular basis, people are doing it a lot. If you don't have automation, something's going to go wrong. So let's automate it. CF standard is blue-green deploys. Quick show of hands. Who doesn't know what a blue-green deploy is at this point? Who has never written a blue-green deploy? Okay, you guys are going to love these next set of slides. This is kind of the standard approach in CF, and it is pretty straightforward. You have your app out there running. We'll call it your blue app. It's running life's happy. You have your routes all mapped to it, but I want to push a new version of the app. So we'll do a CF push. We now have a green version running, and we have both of them out there, but traffic's only going to your original app because you haven't actually moved the routes over yet. So let's go ahead and move our main route over. You now have prod traffic going to both those versions of the app. Delete the route from the old app. All your traffic is going to the new app. Delete your old app. You're done. That's a blue-green deploy. In terms of the CF command line, it's really pretty straightforward. You push your blue app, then you have some commands that you run to do the actual blue-green swap when you're ready to do the new version. One of the things that a lot of people are doing is you start actually having an environment that looks like this, where you don't have just a single availability zone, but you have multiple availability zones. For some nice number, it makes for a pretty picture, so we'll look at it with four availability zones. The process is actually exactly the same. We have our blue app running. We push our green app, go through, map your routes, unmap your old routes, delete your blue app. You've done a multi-availability zone deployment. Do you want to write commands for that every single time? If you said yes, you're wrong, please don't, because one of the things that you start running into with this is all those commands I had earlier didn't have any error handling. If you're doing automation, please have error handling because something will go wrong. If you're doing a deployment across four availability zones and three of them go well but one of them doesn't, that gets to be a real mess, because you have to start worrying about the synchronization across the different availability zones, making sure everything stays in sync, and if something goes wrong on one, doing that rollback on the other three gets to be a real problem. Allstate ran into this basic problem as soon as we started saying we really need multiple AZs for availability reasons. We built out a tool called DeployDactyl. That's open source tool. It does blue-green deploys across multi-availability zones. We wrote it and go, and one of the things that we did was say there is this core deployment piece that everyone is really going to have to worry about, but we also recognize that every enterprise has their own custom deployment scenarios and deployment logic that they want to have, so we put in an event model so you can hook into that and write your own wrappers around that to do whatever is appropriate for your enterprise. We've actually done that, and I'll talk some more about what we've done that's allstate specific later, but just in terms of DeployDactyl, it's out there and ready to use. So who wants to see a deployment? Deploys are fun, right? Let me come out of pre-center mode. So to call DeployDactyl, it's, yeah, yep. There we go. It's as simple as doing a curl. That's all you have to do, and while that's running, come back over and talk some about the configuration for getting this going. What you saw was a single curl, but there's actually a lot that goes into that. Your app teams aren't necessarily going to have to keep track of what are all the different foundations. So DeployDactyl is set up so you can just say, let's have a pre-prod environment, and it's going to be pre-prod.example.com, and these are all the foundations that go into it, and we'll just have the authentication that we configured within DeployDactyl. We're not going to make you authenticate each time, skip SSL, because everybody does that, and by the way, we're going to go ahead and enforce that you have to have at least two instances running, and we have another environment that's production. We have four foundations there, and by the way, we want everybody to have four instances running for availability reasons there, and so we can enforce that in config. What that then ends up looking like for your app devs is they just do that curl, they specify one of these environments, they specify the org that they want to deploy to the space, and they give it an app name. Credentials can either be passed in through basic auth, or you can configure it through DeployDactyl environment variables, and the manifest is just passed with the app, and so you end up with just this really simple curl command that you can then build into whatever pipeline you're using, whether it's your desktop Jenkins, whatever it is, and if we come back over, then it hasn't quite finished, which is terrible, but in just a second we'll get logs showing up saying that we had to deploy succeed across all the different availability zones. One of the things that I'll talk about in a minute, and you probably saw in that curl, is this health check endpoint that is another thing that we pass in, and rather than wait for this, we're just going to keep going. You guys can come look at my screen later and trust me that it happened, but within the event model it gets to be pretty simple to set up these event handlers.  We have a lot of different type events that show up. We do things like events on push complete. That's push on a single AZ, not necessarily all of them. We also have events for deploy start and stop, deploy finish. We treat success and failure differently because you might want to take different actions based on those things. So there gets to be this really robust set of things that happen within the deployment process that you can hook into and take different actions at different points. So let's talk about health check some. Cloud Foundry within it has the idea of health check built up. It will do a quick health check that really is just saying, is my app running? Is it sending a response if I ping it, and am I getting traffic back from it? That's all well and good. It makes sure that your app is live, and that's a pretty cool thing. But there's a lot of health checks that might go beyond that, because if all your app is doing is sending back a 500, well that's actually not an app in a functional state. Yes, it's live, so you probably don't want CF to actually get in and do a restart on it every 30 seconds, but it's not a useful thing. There's a lot of things that might cause that, whether your app is just flat out down, you did something like do a deploy to prod, and you forgot to open up a firewall rule, because no one would ever do that, but just theoretically you might. Or you forget to update a configuration setting, you added a new feature that requires you to connect to a different database, and you put in your non-prog credentials in your prod environment, and suddenly you can't connect. So one of the things that we've built in is this idea of saying, as part of that blue-green deploy, let's actually run a health check on your app before we actually complete the deploy, and we'll check and see is this app in a functional state. So that's what that endpoint that you register is, and DeployDactor will call that. What that ends up looking like is on the push finished event, then we call the health checker, and it goes out and calls that health route on every single one of the green apps, and again you'll notice this is before the routes have been mapped over to the blue app, so before this app is taking any prod traffic, we're doing the health check to see is this app actually in what you define as a functional state, not just did the push succeed, did the app start, but is it working the way you want it to work? If it fails, we get back something other than a 200, it's trivially easy, we just delete the app, and you go about your merry way of fixing it, your users never notice the difference, it just looks like a failed deploy, but because we're doing this as part of the blue-green process, we never took down your original app, and so your users never have an outage. If it does succeed, that's great, we just continue with the deployment process, and life goes about its merry way. So once we've started building out this automation, then we get to this cool place where all of a sudden we have a lot of that work that people are doing before has now been automated, but we still have a lot of things that people are doing manually. So that's where the event system gets to be really pretty powerful. One of the things that we've started doing is saying on every successful deploy, let's run a security scan, and that can be whatever kind of scan you want, we've done static scans, but through that event model, you can go out and run whatever you want and say, does this app actually meet whatever security criterion you have in place in your organization? You can do things like run that on each non-prod deploy, and then know by the time someone pushes to prod whether that artifact has been through your security scanning process, and so is it actually something you want running in your environment? One of the other cool things that you can do is most large enterprises actually care about open source licensing, but if say you're writing a node app and you have 900 dependencies, your dev team probably didn't actually take the time to go through and check the license for every single one of those dependent projects. If you're doing a Java app, maybe it's not quite 900, but even so, there's this large burden of making sure that you are actually compliant with license policies, and so you can start building that into your deployment process to do those scans. There's a lot of tools out there that will do that. That also gives you the benefit of you actually know what libraries are in use, so if someone identifies a zero day in one of the libraries that one of your teams is using, you have that central registry to say, well, I actually know what's in production, I know this library is in use, it has an identified vulnerability, so I need to go out and tell this team, update their stuff. One of the other great things, if anybody called campus has talked the other day about the pain of config management, I loved his talk, it was great, go watch it on YouTube later, but by building this kind of logic into the deployment process, you can say for every single deploy that happened, good or bad, I know exactly what happened, I know who did that deploy, I know what they deployed, I know what steps were followed to do that deploy, and I know whether or not it succeeded. That's basically the exact set of information you want for change management purposes, and so by creating those records automatically, then you suddenly have much better data for change purposes, and by the way your devs didn't have to do anything, which they really like. So what we've done is say, okay, let's take all this work that everyone thinks really should happen, but let's just automate it and build it into the process so that at this point our devs have more time to just focus on writing code and actually getting done what we want them to pay for or what we want to pay them to do, and what they probably actually want to be spending their time doing as well. One of the really fun things that comes out of this kind of mindset is organizational change ends up being a lot easier. You end up in this virtuous cycle where you suddenly have a really nice easy development or deployment tool that your devs like to use, and through that a lot of pain is taken away from them, security likes it because all of a sudden they know security scans are happening on everything, change management likes it because they don't have the case where, oh, I forgot to do a change record, or I forgot to close my change record, or I actually completely lied about what I changed and my data isn't right, and you suddenly have all this great data, and so all these different teams start saying, hey, why aren't you using this tool because it's a lot easier, your devs end up in the situation of they want to use the tool because it takes away a lot of pain for them, and so you suddenly start in this model of everyone is getting what they want and they want to start using the tooling and not circumventing the process because the tool takes care of the process for them so they don't have to worry about it, and the people that care about the process know that everyone is actually following the process the way they want it to be followed, and not only that, we have the data to prove it, so it really helps with some of these organizational change efforts and ends up really being a win for everybody. So what we've done at Allstate is we had the need for this centralized automated deployment tool that would handle blue-green stuff. We built out to PlayDactyl, but on top of that we built a wrapper around it, excuse me, that we ended up calling Convair, and it handles all of the Allstate-specific stuff. That's our change management, a lot of the metrics that we track around deployments handles things like our security scans and compliance, and that's all built just using the eventing system within deployed Actyl as wrappers or as event handlers that either do things directly within deployed Actyl or call out to other systems to take action there. So what that's ended up looking like for us is we have about 87 Cloud Foundry orgs in prod that is roughly a one-to-one mapping to product teams, and across all our environments we have over 4,000 deploys each month with about 1,000 of those going to prod, and so if we were to ask people to go through all of those steps that I laid out manually for every single one of those deploys, it would be painful and would basically suck for everybody. About a year ago our security team came to us and said, we want everything that goes to prod to have a security scan, and we said, great, everybody's doing that, and no problem, we've got to cover it. They said, sure, prove it, and we went back and looked and said, let's look at the scale at which we're deploying and look at the tools people are using and found out that we could easily prove that only about 32% of people actually had deploys going to, excuse me, had security scans on every prod deploy. Now, let me be careful and say that we had proof of that, and then realized we didn't want to spend the time to actually go out and prove it for the remaining, what, 78% because that sounded painful. So we said, let's go ahead and introduce security scans into the deployment process. We built that in, and basically overnight our number jumped to 92% that we could very easily prove had security scans going, and there were some caveats on that where either something wasn't using the tooling and they really should have been, or a scan failed for whatever reason, and so that's why we're not quite at 100%, but we're working all the time to get that number up. One of the other really cool things that came out of that is we've gotten into this mindset where this is a graph of deployments to production over a month where every bar represents a day, and you'll notice there's this pattern of five days where deploys happen and two days where they don't. You can guess, people aren't doing deploys on weekends anymore. Teams love that because we have the automation in place, and we know that these deploys are going to go smoothly, that everyone is really comfortable with this mindset of let's deploy to prod during the week when teams are there. Sure, it's prod. Users are hitting these systems actively, but we're not going to bring them down because we have the systems in place to say this is a secure deployment model and it will work. It's been great for our dev teams because they now have that comfort to do that kind of thing, and it's great for the sake of everyone else too because now they have the data to say this is actually working. So if you're getting anything out of this, just automate your stuff, let your systems take care of things your developers don't have to. They will be happier. You will get better data out of it. You'll have better processes, and everyone will actually prove that things are working the way they want to. DeployDactyl is open source. We would love contributions from the community. Send us pull requests. Send us questions. So that's it. Any questions for me? Yeah. So the question was, were there any third-party tools we could have used for this? There are a ton of third-party deployment tools. The reason we ended up building our own is we couldn't find anything that would do what we wanted to for multiple-pole foundations when we got started. I know the technology is progressing, and if you look at things like the demo from the keynote yesterday on the CF Better Push, that's going to be a really cool technology to see how this would fit into there. But when we built this out, there was just nothing else out there that would do the multiple foundations the way we wanted it to. So the question was, do we have data schema changes with deploys? No, we don't. That'd be awesome, wouldn't it? That would be awesome. We will take a pull request to do that. I think the community would love it. No, that is absolutely a weakness in the product right now. It's something we've looked at how we can do. We don't have it solved yet. Anything else? Question was, do we have any tips for configuration management? Check it in to get, or your repository of choice, do 12-factor and make that part of your deploy where people are building that into their manifest. And that's actually one of the beauties of the system is they can take that config and we guarantee that we deploy the same code and the same config across all different systems. Was the question on foundations themselves, or did I answer the question? So in terms of doing different parameters across foundations, we've basically told our teams that's not 12-factor and you shouldn't do it. We've had, I think, one identified use case where we were kind of on the fence about saying, yeah, maybe that's actually a good idea to do it. And it was integrating with a third-party tool and how that tool worked. But in general, we've almost always come down on, no, just don't do that. You might come up with some exceptions and you can always build in logic in your code that says, if I'm on this foundation, do it this one way. But one of the principles of 12-factor is you want the same deploy everywhere. And so we've said in general, if you want different configurations on different foundations, build that logic into your application. We've gotten some pushback from some teams on that, but that's the approach we've taken so far. Anything else? Cool. Thank you all for the time. I appreciate you coming.


Are you ready for the largest Drupal event in Europe? After the success of DrupalCon Amsterdam and DrupalCon Europe Virtual, the organizing committee, Quoney-Tummler Congress, and its wonderful team of volunteers are excited to gather again in person in Prague. What to expect? Inspiring keynotes including Dree's note, hundreds of sessions and boffs, hours of contribution to Drupal, meetings with sponsors and exhibitors, and a lot of fun with your Drupal friends. Mark your calendar, 20 to 23 September, O2 Universum, Prague. The city of a hundred spires is waiting for you. Registration is now open. More info on the event website.


Hi, everyone. Joe for Jaspy's casebreaks.com, coming at you with 2022 Panini Daunris Elite Football. Four box, random team break number two.  It's a pretty good price point right there. And the original 16 spots, like we usually do it, the original 16 spots, those names are gonna be on that big promo list. Could possibly be done tonight, but the deadline is tomorrow night. All right, big thanks to this group right here. Thanks to Robert William Matt and the X-Line. Let's uh, double up, uh, uh, like sir, mix a lot. And all 32 teams are in. Let's roll it and randomize. Names and teams three and a four, seven times. One, two, three, four, five, six, and seventh and final time. All right, got Josh down to Josh. Three and a four, seven times for the teams. One, two, three, four, five, six, and seventh and final time. No, it's all, it's all good, Josh. It is all good. I appreciate you getting into the action. Yeah, life, life a little busier these days. I get it, happens. All right, now Josh, you've got all this. It might be easier just to do it this way. So the X-Line has all the spots, the X, except for Matt, you've got the Panthers and Giants, Robert with the Texans, William with the Dolphins, Robert with the Colts and the Bills, William with the Commanders and Robert with the Rams. The X-Line, you got the rest. Let's actually sort this alphabetically by team. Now actually, I don't know if any of these other guys are here, the X-Line, any specific trade you feel like making or throwing out there or should we just roll? And I think Jason opened up the case for the random teams. So there's these loose foxes in my cabinet. I just grabbed four loose foxes right here. So we're just gonna roll with that. Nathaniel Hackett, only rookie head coach to lose debut this week, one. See, come on, come on out of the phone network. Kind of piling it on. I feel like they usually don't. All right, I don't think there's gonna be any trades. Trade window going once, trade window going twice, TWC trade window closed.  The Broncos coach did have timeouts. I thought maybe you can even get Russell Wilson go up there, do some hard counts, try to get a neutral zone infraction. All right, so trade window closed. Here's the final printout, hot off the presses. Right, at least you go up to the line. Maybe have Russell Wilson, I mean, I'm a Raiders fan. So I mean, I don't mind seeing the Broncos lose, but I'm also a fan of football as well.  Well, week one, ladies and gentlemen, is in the books. You know, NFL is back. I'm happy about it. I love to see it. Bills, Rams started things off. That was a, was it a fun matchup? It was sloppy on the Rams part, but man, they, even with some of the interceptions, they're the turnovers that the bill had.  That defense looked great. They still put up 31 points. So that's going to be a dangerous team. What are some other, what were some of the other games that jumped out at you, ladies and gentlemen? I wish it didn't rain in Chicago because I would have loved to see, you know, just kind of more, just better conditions to see Trey Lance and Justin Fields, a couple of young quarterbacks duke it out. But the rain, I think really kind of threw things off for both teams. Good win for the Bears though. Steelers, Bengals finish was wild. And if their long snapper didn't, Bengals lock time didn't go out, they'd be fine, but what else? A.J. Brown looked good for the Eagles, you know? Jalen Waddle had a nice 42 yard touchdown in Dolphin's winning effort. Lamar Jackson, how do we like Lamar Jackson's betting on himself? It's not like, I mean, it's not like Aaron Judge betting on himself. You know, he doesn't have 200 pound defensive linemen running after him.  But hey, big gamble by Lamar Jackson. I like it, it's spicy. I like that, I like that level of spice. Brown's ruining, ruining Baker Mayfield's potential revenge game. In Carolina, there's a tie, Colts and Texans. Giants win on the road, it's kind of what they do. For some odd reason, if they're road dogs, they seem to be winning, that's a trend, look it up. Packers not looking good, Chiefs looking real good. Raiders didn't look good, but they were still in it to the last few minutes against the Chargers. There's Boy Mayf, total 9.99, and kind of a clunker. Sunday night was a little bit of a clunker. Buccaneers winning 19-3, poor Dak Prescott. And then Seahawks doing the unexpected on Monday night, beating the Broncos by a point. It's Gabriel Davis to 3.99. And we've got a turn of the century to photograph Quay Walker, 34 out of 49, for the Packers, the X-Line with the Packers. Josh, how old is your son? Is he between the ages of seven and 13? It was JJ Watt to 99, wow. It's just outside of that two-old now. We got a lot of local kids that come in, we'll give those away to them. There's Trayvon Walker to 3.99. Didn't we send you a stack of those cards one year? It's 24 Clyde Edwards-Elaire. Yeah, that's right, we did, didn't we? I remember we tried that one year. Oliver, how old are your kids? I got another Packer Elite coverage, Charles Woodson, isn't he? Oh, all right, Oliver. Did you, sometimes you can plug those codes and they'll get like a Panini hack or something random like that. Did you even get anything like that? All right, Oliver. I got you. Two 11-year-olds, that's perfect. Nada, okay. Because I remember we sent those out to somebody else and they were like, yeah, we punch in the numbers, blah, blah, blah. Yeah, Oliver, let me know when you, next time you're gonna pop in. I'll give you a stack of those. There's Quay Walker to 9.99. That's easy, we don't have to ship it. Shipping team will be happy. Shipping budgeting team will be happy mostly. There's Kate Auton to 9.99. And we got Sam Howell, Penpal's on-card autograph. All right, nice, I'll be here. And that'll be for William and the commanders. There's Kate Auton, 12 out of 12. So if I remember correctly, Oliver, to 349, there's Trevor Lawrence. If I remember correctly, there's like multiple layers to that kid reporter contest. So, you gotta make sure at least one of the two, or both, you have to decide. If they're willing to be on camera, is that gonna be a problem? Or if they're into it, I'll definitely give you those. I wanna say, first of all, you gotta try to win an entry into it. So they don't have a problem. Okay, for a while, they'll be perfect then. You just have to decide which one. But I think if you read the small print, or if you go to the actual kid reporter page that they have on there, I wanna say that first, you have to just be selected to be an entrant. And then you send in a video. Oh yeah, maybe your son might not be as good on camera. Yeah, at that age, it's a little weird. Seven through 13, either you have a precocious kid that'll just be like, whatever, I'll be on camera, or that could be terrifying. So I don't know, it could go other way, anyway. They don't have a problem with that. I think there's an audition process after, or you just send in a tape. I think it's like, I think they, I think, kinda remember, I'm pretty sure that's like, you do like a fake interview or something like that. So I think there's a process. I think those would be like, a hundred entries will get into it, and then those hundred kids or whatever will then send in like a five, 10 minute video or something like that, or maybe just upload to YouTube or something, and do a quick little video of them asking some questions or what questions they would ask in the Super Bowl if you were a kid reporter, make a quick little introduction, and then you send that in, and then I think Panini then selects from there. Now, you know what? I was just gonna say, you know, Panini might be more inclined to have a football-loving girl ask the question. I think they've been boys, like for the last half of the year, so they might wanna mix it up. So who knows? Maybe there'll be an edge there. And a Mac Jones, back to the future autograph or going back to the future. Roads, where we're going, we won't need roads. 95 out of 99, and I can do the little back to the future license plate spin here, and that'll be for the X-Line and the Patriots. Heard his back, X-Rays negative, Josh. This card's value will be just fine. There's Chianti Ingram to 3.99, Lamar Jackson to 75.  Romeo Dobbs, Pen Pals, on-card autograph. Will he emerge as the key receiver for the Packers? Let's go to the X-Line. Yeah, Mac Jones should be just fine. I might miss a game or two, but he's averted disaster. There's Derek Henry to 3.99. Couches are always scary, too. I don't know why, but the kid reporter's card's my right. It's not a good card throwing. My right hand is where I go there. We've got the Broadcaster. I know that Broadcaster's in here. Tony Romo, I guess he used to be a cowboy. 2.90 out of 2.99. There's probably a whole generation of kids who only know Tony Romo as a Broadcaster. For Saquon Barkley, looking good so far, so good. For Saquon, good to see him doing well. It's also a hashtag, good for the hobby. Think good for the NFL. He's a good personality. People like seeing him. Good for advertising and a lot of commercials. There's Samori Touret to 9.99 for the Packers. George Kittle. Kittle and Bitz to 3.99. Debo to 75, full throttle. That's the only way he knows how. Goes to the Niners, the X-line with the Niners. Got a Joe Mixon, I guess Pulsar, Pulsar card to 49. I thought the dots are a little more condensing Pulsar, but still nice. Cincinnati, Josh, we're on Cincinnati. All right, a couple more boxes to go. I know it's good to stay in the moment, but it's hard not, just so excited about the NFL. It's hard not to look ahead. What games are we looking forward to next week? Thursday night, Chargers at Chiefs. Now the Chiefs had a big win. 23 point win or something like that. So I have a little trend, an interesting trend to note on something like that. These are just part of my little trend betting notes that I often have, or even not for betting, just for funsies. In the last, what, 16, 17 times that this has occurred, a weak one winner by 27 plus points. Now I know the Chiefs only won by 23, but a weak one winner by 27 or more points. Week two against the spread. Those teams have been two, 14, and one. So if a team in week one beat a team by 27 points or more, in week two, that team against the spread went two and 14. Just a trend, right? Past performance does not mean it'll be the same future result, but interesting to note. The Chiefs won by 23 points. That might be the difference, but 23 points, I don't know how many numbers on that. And they're playing on Thursday night, so that might be different. I don't know how many of these games were most of these games on Sunday, I don't know. The short week effect things. Whatever it's worth, the Chiefs are minus three and a half favorites, home favorites against the division rival Chargers. So there you go, fun fact. Do I have any Chiefs fun facts? This might not apply until later on in the season, but I guess for a time, and Vegas might have adjusted to it by this season, but teams over 500 against the spread, Chiefs are only two and six. Against teams over 500 against the spread, ATS. Moxie, Brandon Ia, Niners, the X-Line. I need to look up, hey, speaking of the Chiefs, there's Mahomes. He's looking fine, 399. The rumors of his demise post Tyreek Hill, greatly exaggerated, Ty Chandler to 399. The X-Line getting all these teams, except for if you're rooting for the underdogs here, we're looking for Bills, Texans, Colts, Rams, Dolphins, Giants, and Commanders. So most of these are going to the X-Line. The Mahomes going to the X-Line. Full throttle, T Higgins to 349. And Buccaneers etched in time signatures Ronde Barber. T Keys brother. That's for the X-Line and the Buccaneers. Jerome Ford to 99. For the Browns. TJ Watt, pectoral injury, TBD on how long he's gonna be out. If it's serious, might be the entire season. And if not, it might just be like a month or so. There's Jonathan Ogden to 149 etched in time for the Ravens, the X-Line. Yeah, you shouldn't have to, actually. You already did that. I'd feel bad. No, we would live to break another day, that's what I say. Cooper Cup going to Robert Alliance and the Rams. A little full throttle answer right there to 349. You've helped us out enough tonight, the X-Line. At 399, Brian Asmua. And behind Kyler Murray, nice Garrett Wilson. Bit of a rough start for the Jets this year. But, did Garrett Wilson do it? I think we looked this up the other night. But, Garrett Wilson, four catches, 52 yards. So not bad. Getting his feet wet in the league. This goes to the X-Line and the Jets. And who do the Jets have this week? They are, and I don't know if they're gonna have Zach Wilson yet, but they are at Browns. Jets at Browns, Cleveland minus six. But the total's only 40. 40 and a half. Which some suggest, rule of thumb, is you take the almost a touchdown that the Jets are getting in a low total game. But look, I mean, that's just on a surface level. That just kinda jumps out at you. But you gotta dig into the additional data. I don't know, when's Zach Wilson coming back? Maybe week two. Maybe plus six is a number you need to get on now before Stuart and Dave's, before that number changes if Zach Wilson is back. Stafford, oh, seven out of 99. These are OR scrubs, oh, are they? What movie's that from? Got Hassan Haskins to 9.99. Russell Wilson and Daniel Jones. All right, fourth and final box. This is elite four box break, random team break number two. The original 16 spots here have already been added to the master list for the spots sold promo we've got going on right now. Details on jaskyscasebreaks.com. All right, what other games look exciting next week, boys and girls? Week two, I'm already looking at it. Yeah, Chargers Chiefs, that's an island game. That's a Thursday night game. That's the first game on Prime Video. How am I gonna watch that? My TV doesn't have Prime. I guess my iPad does though.  Al Michaels and Kirk Herbstree, I think are the team that's kind of a weird team. So we'll see that, that should be pretty fun. Casey's minus three and a half, big total too, 54 and a half is the over under. Jets Browns, meh, unless Zach Wilson's playing. Commander's Lions, Panthers Giants, Patriots Steelers, Oliver, that's another good matchup for your Steelers, two weeks in a row. Colts Jaguars, Falcons Rams, I'll be forced to watch that because that's the local game here. Seahawks Niners, a little division rivalry game. That looks like, that could be some fun, especially with the game the Seahawks had and knowing that the Niners need to bounce back from their loss in Chicago. This is interesting too. Niners are a big favorite in minus eight and a half. Total is only 42 and a half. Might almost want to take the Seahawks at plus eight and a half with that low total. At least that's a game that I'd look into a little bit more with that. My aunt, uncle, my uncle and my dad's brother spend a lot of time in Texas. So he actually grew up, he actually was an Oilers fan before the Houston Oilers broke his heart, turning to a Dallas Cowboys fan. So I know the Cowboys get a lot of hate, but I actually don't mind the Cowboys as much as some people do. I feel bad for Dak Prescott. I would have loved to see a Joe Burrow Dak Prescott matchup, but now, not so much. It's not as fun. So that's kind of a bummer. There's Derek Stingley Jr. for the Texans. That's the next game actually. Texans at Broncos, I guess maybe just to kind of scout Davis Mills. Oh, here's an autograph. It's Breeze Hall. Nice, you got the Garrett Wilson, Josh. And now the running back, Breeze Hall. Cardinals, Raiders.  I think maybe the Raiders in their loss looked better than the Cardinals in their loss. I don't know. But both teams need to clean things up. But I don't know, still kind of a man matchup. This is kind of the Sunday night football game is interesting because it's Bears at Packers. There's poor Dak Prescott. Be out for six to eight weeks, about half the season. That's just recovering and then think about just knocking off the rust after that. But Bears at Packers is interesting because Packers, they sort of been embarrassing loss to another division rival, the Vikings. There's Lamar Jackson. And maybe the Bears feeling a little confident with their W over the Niners. But man, Packers are minus 10. Total is only 43. Is that a Bears plus 10 right there?  There's Michael Gallup for the boys. He'll be back in action too. Dallas, that'll be for the X-Line. Now, there are some legendary stats for Green Bay, right? No, I don't know if I... No, I have Aaron Rodgers December stats and I have Aaron Rodgers versus teams on the three game losing streak. I don't know, Aaron Rodgers after a loss though. Aaron Rodgers after a loss, I feel like, is a pretty strong number. But yeah, initially, I mean obviously we got to spend a bit of the week, see how the line moves. But if you are, sometimes there is a strategy to kind of getting the best of the number early on, especially if you think it's gonna move the other way. If the public is on the Bears, maybe that slips down to like plus eight, plus seven and a half. But plus 10 right now, if you feel like moving on that a little early, that might be an interesting one to do. Yeah, Oliver, we love to track those picks. I'm actually starting to use, there's Justin Fields, 349 for the Bears. That'll be for Josh. I'm starting to use a, ooh, what is this? Ooh! Nice LT, Ladanian Tomlinson, that LT. 43 out of 50 on Card Auto. That's the Josh X-Line with the San Diego Chargers, Los Angeles Chargers. LT. 43 out of 50. He's got a great, a football life episode. Based off the book, Tomlinson Hill, which I wanted to, which is on my reading list. There's Montrell Washington. And he's got one of the best, at least in recent memory, one of my favorite Hall of Fame speeches. All right, there's Keontae Ingram to 999, Micah Parsons and Joe Mixon. That is that, my friends. Josh, I appreciate you getting so many spots in this. Appreciate everybody else getting spots in this, as well, thank you very much. We'll load up the final four box. That won't be part of the promo, but we should kill off those final four boxes sometime this week. All right, thanks everybody. I'm Joe for jaspyscasebreaks.com. I'll see you next time for the next break, bye-bye.


I've developed ways of going around my difficulty with Alex Fimea, like noticing body, set bodily sensations, behavior changes, things like that. I can do that quite well with anxiety and I can gauge it a lot better. But depression is a different thing because it's a bit sneaky. And not a lot of people, even if they develop depression, know that they're depressed or they're kind of a bit like in denial about being depressed because it's just such a cognitive thing. You really see the presentation of depression when it's quite severe, when people can't move or function or it affects your tone of voice and your face.