So, far in our GNU radio related exercises, we have restricted our consideration to symbol error rates. However, as we have seen, symbol error rates and bit error rates have a significant difference. In this lecture, we are going to essentially build an approach to measure the bit error rates for various constellations and confirm that these bit error rates are consistent with what you would observe in theoretical knowledge which we have seen in the class earlier. So, we will essentially generate random symbols and check the bit errors that these symbol errors essentially translate to and we will also confirm that these bit errors are consistent with the theoretical evaluation that we did in the class. Before we commence our discussion on bit error rates, let us make an observation about the Gaussian noise source that is provided with GNU radio. Let us first take the Gaussian noise source by doing CTRL F or CMD F and typing noise and we get the noise source and for reasons that will be clear shortly, let me also grab another noise source. I am just going to copy paste this, so I am going to hit CTRL C or CMD C and CTRL V or CMD V to paste and let us make the second noise source, let us make the first noise source over here a float. Both of them have amplitude 1 except that the first noise source is float while the second noise source is complex. Now we want to view the distribution of these two, preferably we will visualize them on the same histogram except that I am just going to take the real part of this complex noise source. So, let me do CTRL F or CMD F and say complex to float and let me grab this, actually let's grab complex to real that is what makes it easier, this just takes the real part. Now I have the complex to real, I will add a throttle, so CTRL F or CMD F, let's grab a throttle, place it here, we will make our throttle float, connect this over here, next let us grab a QT GUI histogram sync, CTRL F or CMD F, type HIST, now we would like to view two, basically the histogram of two signals over here, so double click this, as always let's increase the number of points, the bins can be 100 that is fine, let's make the X-axis go from minus 4 through 4 because we know that a Gaussian has a lot of its values between minus 3 and 3 and then let us make the number of inputs 2. Now we connect these two over here and we are ready to visualize, let us visualize this flow graph, now as you can see the data 0 is the first sequence that comes from the real noise source while the data 1 which is red is the second noise source rather the real part of the complex noise source, it is evident that the second one the complex noise source seems to be narrower and taller while the first one seems to be fatter and shorter, like if you just hide this you can see that it is definitely fatter and taller, let's just make things a little more accurate, I think let's add one more point over here and let me also increase the sampling rate to 192000 and let's visualize, now it is very evident that the red one is taller while the blue one is shorter and fatter, now what does this mean, if you remember from the expression for the Gaussian it's 1 by sigma root 2 e power minus x square by sigma square into 2 for 0 mean that is whenever the sigma is smaller your Gaussian will be narrower and taller whenever the sigma is larger the Gaussian will be fatter and shorter, this basically indicates that the real part of the complex source essentially is Gaussian noise that it has a lower variance, why is this, the reason is because the noise from the complex Gaussian noise source yields complex Gaussian noise that is real part and imaginary part each having half the variance, in other words this particular red part has a variance of half while the other one the imaginary part will have a variance of half, if you don't believe me we will use the fact that this Gaussian noise source essentially has two independent Gaussians and if I now take the independent Gaussian from the real and the one from the imaginary and add them I will get similar variances, let me show you, so let's first remove this and let's grab a complex to float so that we get the real and imaginary parts, now the real and imaginary parts are both independent therefore if I now get an adder, I control f and I say ADD and grab the adder and I make the adder, double click on it make it float, if I now connect this and connect this over here and connect this over here, now if you visualize you will see that both of them are roughly overlapping indicating that both of them have zero mean and have the same variance, this confirms the hypothesis that the two different real and imaginary parts that make up the complex Gaussian noise source essentially have variance half each, in this case the variance is half because the amplitude I have chosen is one, if the amplitude I have chosen let's say is four then the variance will be so four means the variance should be 16, so the variance will be eight each, if I choose the amplitude to be root two then the variance will be two and one each for the real and imaginary parts, this aspect is something that you need to be aware of because whenever you do evaluations with real valued constellations such as BPSK or PAM4 or PAM16 and so on be aware that the noise you add should be real because the complex noise anyway does not contribute and therefore you may make slight errors in your bit error rate or symbol error rate computations, in order to compute bit errors we need to evaluate XORs, so to do that we will just take a very small detour and check how XORs can be done using python so that we can build a nice python block to do our XORs, so let us first import numpy, after importing numpy let me create a small array consisting of some integers and these integers can be thought of as representing some of the message values of your M PAM system, for example if you have PAM4 our messages would be one of 0, 1, 2 or 3, so the transmitted messages are 1, 0, 1, 2, 1 and 3 that correspond to the bit sequence 0, 1 because 1 can be represented in binary 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1. Now let us introduce 2 bit errors, let us assume that this 1 is essentially flipped to 0, so this becomes essentially 0, 0 and this 3 both the bits are flipped and this also becomes 0, 0, so let us check, so as you can see the 0, 1 bit sequence here became 0, 0 while the 1, 1 bit sequence here became 0, 0 meaning that in our 12 bits we have introduced 3 bit errors, now to find out the bit errors that we have we are going to perform an XOR of these 2 and numpy allows you to do a bitwise XOR by using the bitwise XOR function, so if we inspect the error pattern we can clearly see that there is no bit error here, let us just make things need error once, so as you can see there is no bit pattern in this one, there is no bit pattern here, there is exactly 1 bit error here because this essentially becomes, it goes from 1, it goes from basically 0, 1 to 0, 0, so this 1 bit error here and then there is 0 bit errors here, 0 bit errors here and there are 2 bit errors here which is very evident which is why you get 3 which represents 1, 1, so now we are just going to count the number of bit errors from this particular sequence. Next, to calculate the total number of bit errors which by the way it is not 1 plus 3, 4 because this corresponds to 1 bit error and this 3 corresponds only to 2 bit errors, what we will do is, we will use an inbuilt numpy function called unpack bits, okay, so unpack bits requires you to have unsigned bytes, therefore we will just convert our array into that type, now if you run this particular code what you get is, you will get essentially you had 1, 2, 3, 4, 5, 6, you had about 6 bits, so you are going to have each of those are converted to 8 bit patterns, 1, 2, 3, 4, 5, so it is essentially you are going to get something of length 48, so you can verify this, so and what are these 48, these 48 are bit representations, they are essentially converting the 8 bit bytes into their bitwise representations, so essentially this 0, 1 which is sitting here was at 1 and the 3 became 1 and 1, now you can just sum this, you get 3, you can practice this for some other combinations and verify that this allows you to count the number of bit changes, this is the approach that we will be employing in order to compute the number of bit errors that we will encounter in GNU radio as well, so now one thing that we wish to do is to only output bit errors corresponding to the symbols that generate those bit errors, in other words if you look at this particular error pattern, then this particular error pattern came about from 6 you know PAM4 or QPSK symbols, therefore the 6 PAM4 or QPSK symbols correspond to 12 bits, so our goal would be to output exactly 12 zeros or ones indicating whether each of those 12 bits is in error or not, so the next task for us is to convert these into 12 bit patterns, that is very simple because even though this has 48 elements we only need the last two bits of every one of the eight of eight elements, so we will just reduce this array to get our bit error pattern, so to do that we will just take the seventh byte of each of these and then the eighth byte of each of these and then just put them together, of course the order of the precise bit error locations is going to be incorrect, but that is okay because we are just interested in histogramming them and the order is not significant, therefore one way to do this would be let's say that we'll call this UEP for you you know unpacked error patterns, so we will take UEP, we want the seventh bit and from there on every eighth bit, so we will say 6 colon colon 8, that gives me this particular error pattern, so the three remember got flipped, so this one corresponds to that, this is the MSB of the three and then if I just do 7 colon colon 8, I get this one because the one was flipped to zero, so zero one became zero zero and this one because the LSB of that three was flipped and now if I just concatenate these by using the plus operator or let me use the np.concatenate 6 colon 8, oops sorry I'm just going to now do this and now I have my three bits and this the number of elements here is 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 and therefore this corresponds precisely to the situation where I have the number of bits being rather the number of bit errors being equal to the number of bits that we are computing them for, the 7 colon colon 8 is python slicing notation, this gives me every eighth bit from the seventh or rather the eighth bit onwards, this gives me every eighth bit from the seventh bit onwards, this is something you can check out from the python documentation, we will be rewriting this code in our python block in order to compute the bit errors, let us now rebuild our PAM based or you know PAM based communication system but this occasion we will be looking at bit errors as opposed to symbol errors, so let us now build our PAM four let's say PAM four constellations bit error rate calculator, so we will first begin as always with a random source, dole for command f, we will get a random source, this random source will go from 0 through 4 and we will now make this a byte, we will then grab a constellation encoder encod and place the encoder over here, of course it needs a constellation which we will call MYCONST that is my const and I am going to now create a constellation object, so control f, CONST and we will get the constellation object, by default the constellation object already has a QPSK like constellation, so we will leave it as is for now but we will just call it my const, next we will add a throttle, control f for command f, we will get a throttle, we will add noise but we will always want to control on the noise, so we will first add a range, control f R-A-N-G-E, we will grab a range, we will call this as always noise STD, this goes, starts at 0, goes to about let's say 10 and step is 0.01 and control f for command f, we will say noise source, grab our noise source, its amplitude is NOI STD, so now we will just say add, control f for command f, add we will connect these and finally we will view our constellation, so control f for command f, we will get the constellation sync and this constellation sync will show us and we will increase the number of samples to get averaging, the constellation sync will show us these constellations and if we increase the noise you can see that the constellation starts becoming fatter because of the effect of noise, now our next task is to ensure that we compute the bit error rates, remember for this case there are two bits for every symbol, so we cannot have a sync block, we need a block that outputs twice the number of samples as we input, so let us begin by adding our python block, so control f for command f, we will type block and we will grab the python block, we will double click this and open in editor, yeah so now we have to make some changes over here, unlike the previous where symbol error rate, in the case of symbol error rate one symbol gave you one symbol error number that is a yes or a no which is a zero or a one, but in this application we have an qpsk symbol which means one symbol would lead to two possible bit error patterns, therefore we cannot use a sync block, we will have to use the so called inter block, this ensures that the timing is matched and for every input symbol or input symbol pair in our case that you give the output of this block will be two symbols which are zeros and ones which we can use to histogram for bit errors, we will get rid of this string, we will get rid of this, we do not need this parameter and then we do this should not be sync block, this should be inter block and we are going to say we will say qpsk per counter that should be fine, the inputs can be two bytes so we will say int eight, int eight and the output will also be an int eight that consists of zero and one pairs, we do not need this example parameter, we could take the decimation rate as a parameter to make it work for other quams also let us try that, say decim rate and we will say equal to two so that you know it works for qpsk but we will extend it for two others, let us say we will call this we will call this general BR counter, so it will work for pamphor also and several other set symbols, now this in sync out sync is fine, we also it should not be decim rich, we interpret I apologize, yes and finally we will say inter is equal to inter rate and then we will say self dot inter rate is equal to inter rate, we will also say self dot set relative rate is equal to interpret, this is what GNU radio will use to determine how many samples you are going to output, now over here we need to write out our sequence of commands that correspond to computing the XOR performing the unpacking and then getting only the right sequences, so let us do that do the bitwise or bitwise XOR input item zero, one so this gives me the error patterns, next task for us is to convert it to the unpacked form because this just has the errors as let's say if it's three it corresponds to two errors because it's one one and so on, so we're going to say bits error patterns dot as type we'll convert it to unit eight, of course within quotation marks we will then just take the we'll then just take the seventh and eight bits of these and then just put them in the concatenate them and put them in the output sequence, let's do that, now let us spend a bit of time understanding what this code does, so we have calculated the bitwise XOR between the input items one and input items two and this has markers of how many bit errors there are, now this BR counter will work for qpsk, quam16 and so on, so if you use it for something like quam16 then the total number of patterns is essentially 16 which corresponds to four bits, we in which case we are going to have four bits per symbol and therefore our rate will be four, so what we do is depending on what interpolation rate there is which corresponds to the constellations essentially m or you know in a for example of quam16 the interpolation rate will be four, we are going to compute the errors from the eight the least significant bit towards the left and concatenate all of these, in fact you can run this loop for all eight it doesn't matter but it is just more efficient for us to do this, in fact to get the correct number of output sequences you have to do this because if you run this for example for interpret two it is going to get seven minus zero for when i is zero it is get seven minus zero which is the eighth bit for all the bytes then seven minus one which is the seventh bit for all the bytes and you concatenate all those error patterns and then you just output them, so this approach is a nice way to calculate the bit errors very very effectively, now this artifact is because we are writing our own bit error counter in GNU radio there are possibly more efficient and effective ways to do this, let us now check that this bit error rate counter works correctly, so when we save and exit we will now have a little block called BER counter with interpret two, let's first play with this BER counter by just giving it some fixed values and seeing whether it does the right job, so i am going to add a couple of constant sources i am going to say controller for command f and say constant source and this constant source i need a byte and let's keep this byte as zero and let's take another constant source and this constant source let's keep it as a byte but let's keep this as a variable constant let's say BER pattern, so i am going to connect this over here, so now what i am going to have is this BER pat should be from a range so as a controller for command f i am going to say range and we will double click this and call it BER pat and then we will make this int default value is zero started zero stop at 100 doesn't matter this int can be converted to float so i don't have i'm sorry to byte i don't need to worry and finally i need to just visualize this so i'm going to get a time sink so controller for command f i'm going to say time sink and this time sink if i place it here i'm going to just change it to float i also need a i think i also need a u care to float so u care to float will take this unsigned character and convert it to float and connect it and we're on our way now if we execute this flow graph you see that zero and zero when exhort gives zero but let's say that zero and one when exhort they seem to give a one one and one when exhort sorry one you know like one zero and zero zero and exhort give a one while if you have one one both the bits are flipped so let's understand if zero is essentially output zero zero and zero zero have no errors now zero one and zero zero you have error half of the time which is why it looks in looks like this if you now do one zero and zero zero you again get a pattern where half of the time it is up and other half it is down and we have three which is one one you have two errors so essentially we have tested that this bit error rate counter functions correctly so again let's get rid of these constant sources we'll keep the u care to float and we'll just put a histogram now the next task for us is to actually get back the constellation by adding a decoder and then checking the bit errors the amount of bit errors so let's just add a constellation decoder so control f for command f we will say decoder we'll get a constellation decoder which uses my cons and we connect this over here we connect this over here we connect the original source over here and we are set we now just need a histogram so control f for command f we'll say histogram now this histogram sync will connect here and we will increase this to 10,000 to 40 number of bins can be it doesn't matter 10 because we only are bothered about the value zero and one so we'll go from minus let's say 0.2 to 1.2 we are and well actually yeah because we're just counting the number of zeros and ones ones are errors zeros are no errors so now let us just execute this flow graph we have a nice triangle standing at zero indicating that there is no error and if i increase the noise you can see that you know there's going to be a large amount of error now if you increase the noise too much then you can see that both of these are at the same height indicating that the bit error rate is half half is interesting because when it is half that means a coin toss will also give you a good enough guess you have no information going through now let's start increasing this by a slight amount as you can see the qpsk constellation keeps going up and up let's actually change the constellation also to have more points so that we get a better kind of blob now if we increase the noise you can see that the constellation grows as the noise starts going to higher values let's say the noise variance a standard deviation gets close to 0.2 or 0.3 now you are going to start to see some occurrences of some of these symbols crossing over some of these bits crossing over rather and as discussed in the lectures you can see that you are starting to have some bit errors now in this particular case because we are using the inbuilt constellation the eb essentially is the eb over here is es upon two so because es is essentially one and your eb is half of es so your eb s sorry eb is essentially half and n0 is essentially one because that's what you chose your noise to be you chose it to have unit variance so if you do the calculation you can find the bit error rate without much difficulty now it is evident that by increasing the amount of noise you are able to clearly observe more bit errors while reducing the amount of noise makes the bit errors fall this one is essentially indicating the number of bit errors and by finding out the ratio or fraction of bit errors that you encounter over here and dividing it by the total number of symbols that are sent you can get a good idea of the bit error rate of this system as well in fact this should be consistent with the formula that you use in class to compute the bit error rates as well for example if you set it to close to 0.4 or 0.5 you can see that this starts rising and you can count the number of bit errors and make a claim on the consistency of the formula for the bit error rates as a final step let us also just change this constellation to qpsk and see whether it has any impact yeah it's the same constellation and you can see similar effects over here they're able to observe that if you increase the noise you get more errors now before we close this particular session I want to just give you a small piece of you know advice or warning in case we change this to something else like 16 quam in the case of 16 quam our BER counter will work but the only changes you need to make are that you need to make the random source go from 0 through 16 and you need the BER counter to go from 0 through 4 because in the case of quam 16 you're going to have 4 bits so now if you run this as you can see you have a normalized constellation now if you start increasing the noise by even a little bit even a smaller amount you're going to start seeing bit errors and for the same amount of noise as you had in the quam 4 case you're going to have a much much higher impact of noise in the quam 16 case so quam 16 is definitely much less resistant to BER than quam 4 as expected a similar exercise can be done for quam you know quam 8 as well but make sure you change this to 8 and this to 3 in this lecture we have seen how we can build a simple bit error rate testing mechanism in GNU radio as you have seen with a small extension we are able to conveniently characterize bit errors without much issue and we can visualize the bit error rate also by comparing the fraction of correctly decoded symbols and incorrectly decoded symbols using a histogram sync as well in the next lecture we will put all these things together to come up with a simulation of a practical communication system thank you


Dear Father, what a blessing that we can be together in this way and their hearts are beating together. There's great love for each other here. We are humbled and blessed in your presence. Thank you for the fellowship. Thank you for the testament of lives that blessed us. Thank you for the mutual contribution that we have been able to make one to another over the years. Thank you, God, that we're together in this time of worship this morning. To see each other's faces and hear each other's voices and sing these hymns together and make these commitments with each other, we have a testimony yet we would like to hear about. And I ask you to use Brother John to share this message with us, that you would bless his heart, his message, his ministry, his life as he shares these precious words with us today. We ask in Jesus' name, amen. Good morning. I was sitting there thinking, how in the world could we follow that message with anything that would add to it? But I've been asked to do that, so we'll try to do that. The title of my message this morning is A Heritage Gained and Lost. I agree with the news commentator I heard once say, there are no great eras in the history of men, only the story of great men. And Henry Wadsworth Longfellow said, lives of great men all remind us we can make our lives sublime and departing leave behind us footprints on the sands of time. I have four points this morning and I'll try to make it quick because we are over time, but I don't begrudge one moment of what Brother Ernest did, it was just a tremendous challenge. I'll just tell you that I somehow don't understand why I was so privileged to be part of this great heritage. Many people, most people never even come close to this heritage, never have a chance even to hear it. And I want to be faithful to that heritage. So I want to talk about a heritage compromised, a heritage gained, a heritage lost, and a heritage evaluated. So let's talk a little bit about a heritage compromised. I want to talk a little bit about the early church. The early church existed at a time when there were no printing presses. The New Testament was not completed. They basically had the Old Testament scriptures. And there was one thing that characterized the early church. And that was a passionate devotion to the teaching and person and example of Jesus. Paul said that I may know him. I count all things but loss for the excellency of the knowledge of Christ Jesus, my Lord. As ye have received Christ Jesus, the Lord, so walk ye in him. He that saith he abideth in him, ought himself also so to walk even as he walked. And I noticed throughout the epistles, I'm an old English teacher, and I noticed throughout the epistles the tremendous prepositional phrases in Christ, unto Christ, to Christ, for Christ, after Christ, with Christ. Paul just laces his epistles with those prepositional phrases all through. Paul did not want anybody to misunderstand his belief that it all focused on the person of Christ and participation in who he is. There was no printing press until 1439. But Paul was already seeing a threat to what I just told you. And one of the verses that really struck me some years ago as I was studying 2 Corinthians, I fear, lest by any means, as the serpent beguiled Eve through his subtlety, so your mind should be corrupted from the simplicity that is in Christ. Now Paul in his day was already seeing people who were trying to improve the gospel. The first group that we have, believe it or not, did not attack his divinity. You know, there's a tremendous emphasis that we believe in the divinity of Christ, and I don't want to minimize that emphasis. But the first attack on Christianity was an attack against his humanity. The Gnostic said he could not have been a real human being, because all material things, including the flesh, was created by an evil God, and Jesus could not have taken on real human flesh. Now what's the implication of that? If Jesus did not take on real human flesh, then his call for you to follow him was a farce. You can't follow him. And you don't talk to some people very long about this subject until they say, we can't do that. He was God. How many of you have ever heard that? That was the first attack on Christianity, an attack on his humanity. That's why the Anabaptist had a particular emphasis on the humanity of Christ. And Paul was already seeing this in his day. The whole epistle of John is written to refute that heresy and passages from Paul as well. Here's another scripture. Beware lest any man spoil you, and that word spoil there means rob. Beware lest any man rob you through philosophy and vain deceit. Now immediately people think about worldly philosophies. But Paul was writing to Christians. What was he talking about? Beware lest any man spoil you through philosophy and vain deceit after the tradition of men, after the rudiments of the world, and listen to this, and not after Christ. The philosophy he's talking about is the clever manipulations that people can do with ideas from the Bible to lead us away from Christ. He said, that's how the world does things. They do it by logic. They do it by philosophy, philosophizing. And you're going to see as we go down through this that one of the greatest enemies of true Christianity is theological, philosophical manipulations of spiritual ideas. And then you had scholasticism, who had Gnosticism, attack on his humanity. We also did have an attack on his deity. That's referred to in John as well. Those two things are very, very, very crucial. And then you had scholasticism, which tried to marry Greek philosophy with the teachings of Jesus. I read one place that I think it was one of the theologians back in the early church that said he found every doctrine of Jesus about Jesus in Aristotle except the resurrection. Well that is a pretty bad omission because it happens to be the central theme of the gospel. And so you have these cultural pressures. You have the pagan culture. You have the Greek culture. Just like today, Brother Ernest was right on the mark. We are being pressured on every side by every possible means and they had it back then. But how did they fight it? They fought it with theology rather than Paul, who kept his focus on Jesus and obedience to him. That's all we need folks. Honestly, that is all we need is to keep our focus on doing exactly what Jesus said. That will solve the problems that we have. So I just want to go down through a list of where the church went. And I'm giving all of this as a backdrop to Peter Waldo. So the church veered further and further and further and further from literal, strict, passionate obedience to Jesus' literal teachings. An example. Somewhere in the third century, non-resistance got lost. And I'd like to talk about that for a long time, but we don't have time. After Constantine's conversion, the church and the state united. Now you have the state using physical force to make people obey the church. AD 310, prayers for the dead and the sign of the cross. AD 375, veneration of angels and dead saints. AD 593, purgatory established by Gregory the Great. And it was established by him because it didn't exist before that and still doesn't. AD 600, prayers to Mary, the mother of God. AD 788, worship of the cross, images and relics. AD 850, see this happened over centuries. Holy water mixed with a pinch of salt, blessed by the priests, could sanctify anything it touched. AD 998, fasting on Fridays and during Lent imposed. And then mass developed into a sacrifice. AD 1079, celibacy in the priesthood decreed.  Now the interesting thing about it is right after that list. And now up to the 1100s there was a tremendous sense about in Europe that something was drastically wrong. And so you had wondering preachers wandering around the country calling people back to the example of Jesus. Now many of those groups we would call heretical. Some of them didn't believe in the divinity of Christ. Most of them still practiced infant baptism. And I could go down to a long list of things that we would seriously theologically disagree with. But they had one thing in common. They were passionately committed to go back to the teachings of Jesus. The Waldensians was just, that was just one group of them. All right. I want to read a quote from someone in their day talking about these heretics and some of them we would have actually called heretics theologically. But this is what they said. If you question the heretic, not about his theology, but if you question him about his faith, nothing is more Christian than what he has to say. If about his daily converse, nothing is more blameless. And what he says, he proves by his activities. As regards his life in conduct, he cheats no one. He pushes ahead of no one. He does violence to no one. Moreover, his cheeks are pale with fasting. He does not eat the bread of idleness. He labors with his hands and thus makes his living. Matthew 25 says nothing about the theologies that we're concerned about. We should be concerned. I certainly have a problem with anybody who doesn't believe in the divinity of Christ. We should have a correct theology. But Matthew 25 says, in the end, it will be, how did you apply your faith to the needs around you? That's going to be the final test. And these people on that subject passed with flying colors, and will let God be the judge about their theology. But all of these groups faded away. Most of them were sort of gnostic. They were sort of ascetic. They lived a very epistemic lifestyle, starved themselves, because they sort of had this idea that the flesh is evil and that the spirit is good and so you just have to punish the flesh. And took two forms. One was to do what they were doing. The other one was to say, well, the flesh can't be redeemed. Let it live however it will. But this group took that other route that the flesh had to be brought under. And so they were sort of extremist in that way. And all of those faded away by the 14th century, pretty much. But not the Waldensians, and that's why we're still talking about them. They have persisted down to the present. There are 50,000 Waldensians in the world today. Most of them are in Argentina. They are considered the mother of the Reformation sometimes. History is uncertain about them due to inadequate sources. Much of what is written about them was written about their enemies. And I'm going to read one of those. This was one written by the Inquisition in the 13th century. The poor men of Lyon, that's what they were called because Peter Waldo was from the city of Lyon in France. The poor men of Lyon rose about the year 1170, founded by a certain man of Lyon by the name of Valdesius, after whom his followers took their name. The person in question was a rich man who abandoned all his wealth, determined to observe a life of poverty and evangelical perfection like the apostles. He arranged for the Gospels and some of the other books to be translated into the common tongue as well as some text of the saints, and they list some of the saints there, under titles which he called sentences and which he read with great zeal, without however understanding very much, that's his enemy's comment, full of his own importance and with little education he ended up by usurping the prerogatives of the apostles. He dared to preach the gospel in the streets. Isn't that terrible? Where he made many disciples, both men and women and compounded his arrogance by sending them out in turn to preach.  They were summoned by the Archbishop of Lyon who warned them against such defiance, but they refused to fall in line, cloaking their madness by saying they must obey God rather than people. God had commanded the apostles to preach the gospel to every living creature, and thus they ended up despising the clergy, accusing them of being rich and living a life of ease, all the while boldly declaring themselves to be imitators and successors of the apostles. Because of this disobedience and of this arrogant appropriation of a task which did not belong to them at all, they were excommunicated and expelled from their country. Now you must remember, there was no printing press. These people had an amazing command of Scripture. I read an account where somebody reported back in the day that he met a walled dance in at the crossroads somewhere, and that walled dance in quoted to him word for word the entire book of Job. I don't know why he chose Job. I often wondered what that had to do with his message. I'd like to ask something. How many of you, I debated whether I wanted to do this because I don't want to put anybody forward and anybody down, but I'm just sort of curious. How many of you have ever memorized the entire Sermon on the Mount? Raise your hands high. Okay, thank you. How many of you have ever memorized an entire book of the Bible? Praise God. Bless your hearts. These people had whole, remember, there was no printing press. If you were going to give the Scriptures to somebody, you had to give it by memory. You might have had a little handwritten portion of it. They were passed around and people, that's what they memorized from. But I just really want to challenge us. Valdecius was a man of exceptional vitality. I mean, this man could not be stopped. But he's pictured as a man of tremendous humility. He left no body of written materials. I have nothing to quote from like you've heard quoted from. He composed no precepts. He didn't create any organization. He issued no rules or any ordinances. He just chose to live out his faith and publicly testify why he lived as he lived. He was not a leader. He was not a self-appointed teacher or model. He was nonetheless to become a reference point for many generations of Christians who sought to live as biblical people live. Now the story is that he was a man of tremendous wealth. He was criticized for lending his money at outrageous rates of interest. And there are three accounts as to how he got converted. The most popular account was that after a mass in one of the Roman Catholic churches, a minstrel sang the story of Saint Alexis. Saint Alexis was a rich spoiled member of a noble family who on his wedding night left his bride and family for a pilgrimage to the Holy Land. He returned to his city so disfigured that no one recognized him. He was ignored and left to die under a staircase. And it was only after his death that he was identified. This was so touched by a man who would invest that kind of action into his faith that he asked the minstrel to come to his house and do the song again. And he became to believe that he should do something very similar. That's the first account. I tend to believe that there's probably some truth in all of these that this is the same story. The second account is as a rich merchant amid poverty and many of the people around him were poor, some of them because of him, Valdesius had a troubled conscience and sought out counsel at one of the cathedrals. The priests read to him from Matthew 1916 to 22 where Jesus told the rich men to sell his goods, give to the poor, and follow him. And Valdesius believed he should do that. That's the second account. The third account is that Valdesius was very upset over the death of a friend who was taken in a seizure at a banquet and died. He asked himself, if death should overtake me, would my soul be ready for the journey? After weeks of uncertainty, he decided to give up his former way of life and begin anew. This is the crisis of a medieval man who in his own town met the Christ of the Gospels. It's a beautiful story. His vow of poverty, he did give away all his wealth, made provision for his wife and gave the rest away, did not lead him as it did many people in his day to the monastery. He chose to live out his life among the poor. That is an act of merit, but to challenge others to do the same. To the scoffers as he distributed the last of his goods, he said, citizens and friends, I am not out of my mind as you seem to think. I am freeing myself of those who were oppressing me and making me a lover of money more than of God. This act I do for myself and for you, for myself so that if from now on I possess anything, you may label me a fool. For you in order that you too may be led to put your hope in God and not in riches.  And this is what they said, or somebody said at that time. The decision we have taken is this, to maintain until our death, faith in God and the church of sacraments to preach freely according to the grace given by God to us, this we will not cease to do for any cause. They did not seek to start a revolution. They never left the Roman Catholic Church officially. They were expelled obviously and persecuted, but they never, he wasn't really trying to do anything spectacularly except just live out the teachings of Jesus. He did not set up a religious order or name a leader. In fact the Archbishop in his town at first praised him for what he was doing, but he said this to him, we bishops are here to do the preaching. It is part of the task laid down for us as the successors of the apostles. This was the only accusation against these people. They had no problem with the way they lived. The monks went into the monastery and took about poverty. I mean almost everything they did as far as their lifestyle was concerned had been done in the monasteries and there were always people who did those things. But the thing they did that could not be forgiven was that they dared to preach the gospel without anybody authorizing them to do it. I was thinking of that when you were talking last night, Brother Dean. That was the distinguishing feature of these people that got them in trouble. They could have done everything else they did and there would have been no trouble. But they were told to quit preaching. They said, preaching belongs to everyone who chooses to truly live as the apostles of Jesus. Now he had the New Testament translated into the vernacular French parts of it at least. He required if the people who followed him took on a vow of poverty. They believed that salvation comes by faith and works of charity and identification with the poor. They continued to practice Mass. They did not withdraw from the Roman Catholic Church. Now he did take his case to the Third Lateran Council and asked the pope to endorse what he was doing. He met with Pope Alexander III who blessed him but said they could not preach. See, this was the issue. Without approval from the local clergy. They preached anyway. Later Pope Lucius III declared them heretics in 1184. This is just 14 years after he began. The Lateran Council in 1215 also declared them heretics and in 1184 the Inquisition was established to eradicate all heretics including the Waldensians. In 2011 at Strausberg more than 80 Waldensians were burned as heretics. But their doctrines spread rapidly through South Germany, Bohemia, Moravius, Cilicia, Poland and Austria. And the number was reported to be 80,000. That's probably a very conservative estimate. Martin Luther at one point I think it was Martin Luther said one-third of the people of Europe either attended a Waldensian meeting or knew about the beliefs of the Waldensians. In other words there were just many people affected by this. Now everybody wants to, they finally were driven out of France. I was always a little perplexed why their headquarters is in northwest India, northwest Italy. We actually visited Torre Polisei which is their headquarters two years ago. And I'll tell you about that at the end of my message. And there we were told there were 50,000 of them still in the world. Most of them in Argentina. One thing that perplexed me is the other Americans with us on that tour were Mormons. And they told us that the last Waldensians in America for the most part joined the Mormon Church. Now you go figure that one out. I'll tell you a little bit about my interview with the leader we had at Torre Polisei, the headquarters in northwestern Italy. Everybody wants to claim them. The 17th Adventists even say they were Sabaterians although that can't be proven. Everybody wants to say we are the descendants of this heroic group. But their original beliefs do not identify them completely with any group. They emphasize the Bible as their only guide for faith in life and that is still their creed. That guide at Torre Polisei said all the other Christian groups, they have their creeds, they have their little statements, they have their statements of faith. We don't. We follow only the Bible. They laid particular stress on the words and examples of Jesus especially the Sermon on the Mount often called Sermon on the Mount people. They rejected all killing including capital punishment and war. They rejected the oath and government offices. They formed an association of men and women who formally vowed to observe apostolic poverty and a life of discipleship. They were divided on the issue of baptism. Most of them continued to baptize infants. A few of them decided they should baptize adults. There was no organization regimening these people to do what they did. Their preachers were called barba which means uncles. Their preaching was simple. Repentance, faith and obedience to Jesus. Now a lot of time has been spent trying to connect these people with the Anabaptists. We have no record that any Waldensian ever joined the Anabaptists. I don't know if we have any record they ever even met the Anabaptists. The Anabaptists were pretty much in northern Switzerland and of course in northern Europe. They were making connections with Leon France which is in southwestern France and then they basically were driven out of France and then they went into the Piedmont, the valleys of the Alps over in northwestern Italy and that's where you find their headquarters today. So there was no connection. Now there was a connection between the Waldensians and the Hussites. A Waldensian bishop ordained a Hussite bishop. So there was a connection between those two groups. In fact, I'm getting ahead of my story but in that interview at the end I said to him after he had described everything and he didn't describe the whole thing of non-resistance and so I thought well I won't embarrass him in front of the group. I'll ask him at the end.  But one of them I asked is he said, weren't they non-resistant? He said yes. I said well at the end what happened to the ones who were non-resistant and he said I think they joined the Hussites and somebody should research that. All right. Now that's the heritage. People who would not quit obeying and preaching the clear literal teaching and example of Jesus. That's where it is folks. That is where it is. Now I want to talk about a heritage lost. So they were able to reclaim this wonderful heritage that Christianity began with that was just simply a following Jesus in obedience and that got lost through all the theology and all of the scholasticism and the pressures of culture and paganism it got lost and these people managed to regain it. I don't know how much they even knew about the early church. They just read the Bible. They just read the teachings of Jesus. It's a little bit like the Anabaptist. We don't have much evidence that the Anabaptist knew anything about the early church. John Overholt always said the Anabaptists are the bridge to the early church. They recaptured that vision of just following Jesus. Well they welcomed the news about Luther. This is 300 years later. This is amazing to me that these people kept a purity of faith without a strong organization, a strong doctrinal statement and all those things we think we need to keep everything right. They didn't have almost any of those and they kept a pure faith for 300 years. That's amazing to me. But then they heard about the Reformation. And in 1526 an assembly wall Danzians were eager to make contact with these people. Oh there's been a revival of true religion in Switzerland. So they sent two men to meet with Guillaume Ferrell. I don't know how much you know about Guillaume Ferrell but it was bad news for anybody to meet with him. He was a rabid, reformed theologian. And the young man was convinced that the wall Danzians should adopt the Reformation theology. The old man wasn't so sure. So they went back to their Alpine Valley to discuss this. And they decided they needed more information. So they sent two more Barba uncles. This time they sent a pretty astute theologian, which I think was a mistake, up to discuss with the reformers. They met Butzer, Okolampadius and the other reformers at Strausberg and Bern and Basel. Now this is interesting to me. The Swiss reformers knew about the Anabaptists. And the thing that concerned them whenever they heard these wall Danzians give their testimony was it sounded Anabaptist to them. And they warned them against the perfectionist teachings of the Anabaptists. The wall Danzians had held to a clear separation between civil power and Christianity. The Swiss told them, the Swiss reformers said, you need to rethink your position.  They are not theologians. You need to become more biblical in your theology and join the mainstream Reformation. Now the onrush of the Reformation was so rapid these people didn't take the time they should have to think. We're talking now about a meeting in one of the Alpine valleys, the valley near the little town in a meadow near Chanpharen in 1532. Well that's just seven years after 1525. So this is all happening very quickly. Pharrell and his colleagues interrupted their work at Geneva to make sure they were at this meeting. The issue was, some of the issues, was the predominant place that the Bible should have in faith and practice and they had no problem with that. Of course that was the great theme of the reformers. They limited the sacraments to baptism and the Lord's Supper. But the two issues that couldn't be resolved were, could a Christian rightly seek public office and was it right to lend money at interest? Pharrell insisted that all traces of Catholic piety, you see the Roman Catholic Church never left the idea that you should follow Jesus.  But at the heart of Roman Catholic theology was, if you really want to be a Christian, you go to the monastery.  They always respected that. And so the reformers didn't like that. And they said, these evidences that you have of Catholic piety, they have to be brought in line with the proper theology. Now some of the Waldensians, when they came back, those two men came back. This was the second consultation they had. Some of them said, well, let's go slowly and maybe adopt some of the reformation. Some of them wanted to go the whole way with the reformation. And some of them just wanted to stay with the past. They didn't trust this new movement. Well, Pharrell convinced them that the reformation was the fulfillment of their long struggle with an unfaithful church that they had waged for centuries. I mean, he was so happy to have these people that had waged almost not singlehandedly, but alone much of the time, with a false church. This was a real trophy for him. And he tried to convince them to go with the reformation. But the Waldensians still weren't sure. So they sent a few brethren up to talk to the Bohemian brother, the old Hussite Unistus Fratrim. And they gave them good advice. Some of those Bohemian brethren were non-resistant. Peter Chelsakhi, how many have ever read him? You should. They said, don't be hasty here. You're giving up a precious heritage. You need to reflect a long time before taking action and guard against extremism and novelty. But they held a second assembly at Chan Foran. And there they decided to accept the reformation. I'm almost finished. What were the things that they agreed upon at Chan Foran?  They decided, now I want you to notice the difference between obeying Jesus and philosophical, theological manipulation of spiritual ideas from the Bible. One of the decisions was, a Christian may swear before magistrates without obeying, disobeying Matthew 5. Because the magistrate derives his, this is theology, well, we all have theology, but this is systematic, deceptive theology. Because the magistrate derives his power from God, whether he's a Christian or not, I think that's a very sloppy reasoning, so therefore it's okay to swear before the magistrate. For your information, Jesus said, swear not at all. That's the clear teaching. James, we heard about at the beginning of these sessions, says swear not at all. But this is what you do. Okay, so swearing is okay. No work is called good, but what God has commanded, and no work is bad, but what God has forbidden. So there's some things you can just simply do because God didn't say anything about it. See, we're not looking at Christ anymore. We're not looking to get direction from Him. We're reasoning, all right? Not all usury is forbidden by God. He only prohibits usury, which damages one's neighbor, because the law says that you should love your neighbor as yourself. So as long as you're charging usury and you're loving your neighbor as yourself, it's okay. And of course they had to get this in there.  There's your predestination. Number the next one. The minister of the Word of God ought not to itinerate from place to place, except it be for some great good of the church. So they wanted to limit these preachers wandering all around teaching that people should follow Jesus. And lastly, it is not a thing repugnant to the apostolic communion that ministers have some possessions for the welfare of their families. So that's how it was lost. It was that simple. Join the Reformation. We're here to help you. Your suffering has ended. I stood in astonishment as the guide showed us what happened afterward. Their suffering was not ended. Now they have joined the Protestants or the Reformation and they get involved in all those horrible wars, that 30-year war I talked about. And a lot of his lecture was detailing these horrible wars these people got into and almost got exterminated because of the wars. And I stood there and I thought, I'd sooner be persecuted. I'd sooner be persecuted than be involved in all of that. It did not end their suffering. So what happened? I'm just going to summarize this and we'll try to close here. They turned away from a discipleship and obedience to Christ nourished by a literal reading of the Bible, especially the Sermon on the Mount. They turned away from that. They turned to beware lest any man spoil you through philosophy and vain deceit. That's what that verse is talking about, exactly what happened here. They chose to replace non-resistance with participation in armed resistance. They accepted the union of church and state and abandoned their concept of the two kingdoms. They became participants in the protracted wars between the Roman Catholics and the Protestants that raged for centuries. And that is a horrible story. I wish you could have all stood there and heard the recitation of that guide, of the horrors they got involved in. They finally were driven up into the mountains, weren't even permitted to come down to the towns. They were in the Alps. They started a process of rationalizing the clear teachings of Jesus until they became just another expression of liberal Protestantism. And they finally united with the most liberal Protestant groups. They lost the continuation of a heroic heritage that had stood successfully for 300 years, almost 400 years against the false religion of their day. What should we learn from the Waldencians? I'll summarize it in five statements and I'll be finished, almost. Number one, the preaching of the gospel to every creature is the non-negotiable priority for all Christians. That's what got them in trouble. If you were Waldencians, you would be preaching in the shops, on the streets, to every person you meet, someone at the crossroads you'd quote a whole book of the Bible to. You would just be preaching, preaching, preaching, preaching, preaching, and nothing could stop you because they believed that we were told to preach the gospel to every creature and that is a non-negotiable command. You heard it last night. Number two, true Christians are committed to obeying all of Jesus' teachings literally. These are the things that we can learn from them. Number three, true Christians maintain a healthy suspicion of clever theological rationalization. Those of you who know me know that I say I'm not a theologian. Our theology is what we believe about God, so I have a theology, but when I say theologian, I mean the clever manipulation of scriptures to come to predetermined conclusions. I'm not a theologian. I have a deep suspicion of systematic theology. Number four, we can learn that a priority of true Christians is a thorough command of the scriptures. These people didn't have a written scripture to depend on. They had to have it memorized. Number five, Jesus' teaching about wealth should be taken seriously and literally. Christian, not accumulation, should be the rule for the Christian. Now I told you we visited Torpolis, say at the end of that interview I asked about the non-resistant ones and I already gave you his answer. He thinks they joined the Hussites and then I asked him this question. I said throughout this entire lecture, you have told me that you folks obey only the Bible. So tell me, what do you do about homosexuality? What do you do about abortion? What do you do? And I went down through some of these social issues and he shook his head and said, we don't do anything about them. Whatever the state says is legal, the church accepts. And I didn't say it to him because I didn't want to be unkind, but I had to say, so it's the Bible and the state. I close with the verse that I've been talking about all along. Beware lest any man spoil you through philosophy and vain deceit after the tradition of men because that's how they figure things out. After the rudiments of the world, that's how they go about it and not after Christ. So I think we're concluding where we've been the whole way through this. Let's go back to the clear teachings of Jesus and let's just follow in obedience. It's not theology, it's discipleship. Shall we bow our heads for prayer? Father, I thank you so much for the courageous example of these people who kept true faith burning throughout 300 years before the Reformation and provide for us a challenging example of their tenacity to the teachings of Jesus and their persistence in teaching them to others. Oh God, give us somehow whatever it was that they had. In Jesus' name we pray, Amen.


All right, I think we're ready to roll. Hi, everybody. My name is Roz Roseboro. I am a senior analyst at Heavy Reading, covering the Telco Data Center. And I am thrilled to have this panel today to talk about the Swisscom PAS deployment. I find it's always really interesting to hear from a user who has actually had some experience with this. So we can see what it's really like to use some of this new technology and get some insight into some of the lessons that they learned, some of the challenges they faced, and, more importantly, what some of the business outcomes were. So just by way of quick introduction, I will have you guys each introduce yourself over here. And then I'll hand over to Marcel, who can give us a little bit of a kickoff. So start with the right. Hello. Uh-oh. Hello. Yeah. There we go. So I'm Perumun Kluus, a city at Plumgrid. We provide an SDN solution for OpenStack. And we are here to discuss about how the network had some role on this Swisscom project. Chip Childers, I'm with the Cloud Foundry Foundation. We're the home of the multi-founder development around the Cloud Foundry platform. I'm Chris Wright, Chief Technologist at Red Hat. Yeah. And so I'm Marcel Harry. I'm leading the architecture of Swisscom's elastic infrastructure as a service and the platform as a service. So maybe we just jump into how that looks like. So we have on the top, we have Cloud Foundry, which powers our application cloud. So this is our platform where we drive innovation by enabling developers to easily push new applications to the cloud. We are a certified Cloud Foundry provider. And we're usually amongst the first ones delivering new Cloud Foundry versions to our users. This platform we build on top of OpenStack, obviously, as we're at an OpenStack conference summit. And there, as a basis, we have the Red Hat OpenStack platform, providing us all the APIs and the base functionality for our infrastructure as a service, which we called our Elastic AAS. And then we got PlumGrid, which we use as our plug-in within Neutron as our SDN driver, which does not only give us all the Neutron capabilities, but also allows us to go way beyond what you can do with standard Neutron. And then when we look a little bit more about the use cases that we got on top of this stack, we have, for example, Dorma Kaba, one of the world-leading security and access devices manufacturer. So they are now building, on top of our application cloud, they are building a new innovative platform to manage their devices. And they are really the kind of customer you would like to get, because they were the ones that saw the potential of the platform and then started pushing us to new levels of what people expect that you can do with this platform. We have also our public offering, developer.swisscom.com. Anyone can go there, sign up, and push applications, application instances immediately. So everyone here in the room could go there and sign up. And for sure, we're not only providing these platforms to our customers, but we're also using them internally. So we really believe in what we're building here. And so we have also leveraged an internal application cloud that provides our thousands internal developers an easy way to get started, but also leveraging access to legacy backend systems. And an example of that is the service MyCloud, which is a cloud storage-like service that is offered to all our residential customers. And here at the summit, we're actually able to make an announcement. So the world's largest re-insurance company, Swissry, is going with us, Swisscom, on their journey to the cloud. And they're using this platform here, the application cloud, to deploy new applications in a cloud native fashion. This is going to be live tomorrow morning, but I was allowed to make the announcement here as well. Thanks, Marcel. OK, well, first, what I'd like to do is ask the technology providers a little bit, if you can give us just a little bit more insight into what each of your respective platforms or solutions were in the context of this particular appointment. So again, I'll start over at the end with a parade. Hello. So it was a very interesting project because essentially when we first met Swisscom, they came with the idea that they wanted to transform their company into the cloud. They wanted to understand what would it mean in terms of their business to move their customers, their large enterprise customers, into a cloud kind of technology. And they came with the idea of creating kind of an interdisciplinary team. So from a vendor point of view, it was an unusual relation because basically we had all the people that understood from the physical network to the storage, to the compute, to the application, in this case, the past layer with Cloud Foundry. And it was very easy to essentially create this collaborative initiative where we would discuss what it means in terms of specifically to plan it from a networking point of view, how to eliminate with some of the folks in the audience the villain problem into their fabrics. And then after that, how to create a proper addressing scheme and how to provide a proper security infrastructure and so on. But the good thing was that we could essentially have access to a very deep discussion not only with Swisscom, but with all the other partners in the project. And that created kind of a very agile and deep definition of what we wanted to achieve. And in that, basically, we learned a lot. As a vendor, it was not only what we were giving to the project, but what we were learning from everybody else, from Swisscom and from all the other vendors. And that, I think, it created a much robust architecture in the sense that we learned the applications of networking for Cloud Foundry and split DNSs and things like that. So that, I think, was the experience where everybody provided their technologies, but at the same time, the willingness to adjust and to collaborate to fulfill a vision that essentially Swisscom was bringing together by setting certain goals and certain expectations. So in this sense, it was a pretty amazing experience. And from our networking perspective, or a virtual networking perspective, what we brought is the ability to essentially connect multiple workloads, being VMs or containers, and segregate them into certain spaces to provide the proper security and connectivity elements of the project. So I always feel a little bit like the oddball at infrastructure conferences because the Cloud Foundry story is actually very application developer-centric. And it's focused on optimizing that experience. And so in order to do that, we rely on a stable OpenStack platform, stable networking underneath it. But our technology is very much about how do you take a developer and help them iterate faster? How do you actually move fast but do it safely through rapid iteration, making sure that all of what I consider to be the atomic building blocks of good application lifecycle are built into the platform. And then they're easily strung together in a way that lets you do complex rollouts, like whether you're going to do canary node style deployments. You're going to do red-green deployments. And it's all optimized around that application. And the Cloud Foundry challenge is that when you push a single application, that's really, really easy. It gets a little bit more complicated when you talk about real-world systems that involve multiple microservices talking together. How do you coordinate all this together? I think just as importantly, how can a platform that works at the application layer effectively communicate with systems that we might call legacy even though they're virtualized? They're not bespoke applications. They exist today within VMs running in an OpenStack environment. How does a Cloud Foundry environment actually interact effectively with higher-level services that might be provided by OpenStack underneath it? So that's the perspective that CF brings to it. And we're lucky enough to have Swisscom be one of the early adopters of CF. They're also a member of the board of our foundation. And as Marcel said, they move very quickly. We, on average, release a coordinated release of Cloud Foundry software once every two weeks. That's pretty rapid. In fact, if we could speed that up a little bit, we might like to. And that's a fairly complex system. And so providers like Swisscom that stay very close to the leading edge is very useful for us. I think this works. So I think Perry was putting it well in terms of a big component of this success of this project was about the early-stage collaboration and bringing direct customer requirements and vendors together to do, to understand what are we building? So from a Red Hat point of view, we're providing OpenStack. I don't know if anybody here knows about OpenStack. But a couple, there's a couple of people. OK, so obviously we're providing the low-level platform infrastructure for this application platform for Swisscom. And a key integration point for us was working with Plumgrid to ensure that the networking requirements were met from our point of view, which is providing Neutron as essentially a tenant-facing API that's pluggable and the plug-in coming from Plumgrid and then the rest of Plumgrid's infrastructure building out the networking solution. So I think since we're at the OpenStack conference, that the OpenStack pieces are pretty straightforward. And again, that critical kind of relationship where we start early, we understand what we're doing, we have engineers directly involved trying to build something is what makes projects like this successful. Thanks, guys. I want to ask Marcel. What surprised you the most as you were working through this deployment? Were there any significant challenges that you anticipated that didn't happen or things that you didn't anticipate that did happen? Any significant barriers where to overcome? I realize that's quite a lot of questions, but I'd like to get your thoughts on how this whole process worked. So I think one of the most amazing parts was how quickly we were able to move forward. Because if you look at how things are currently being developed, like two weeks' release cycle, I think keeping up with that pace is quite amazing. And it's usually also amazing to see how if you bring people together as we did as part of that project, it will start become very quickly. So problems will resolve very quickly. One example is, for example, we kind of started using Cinder in a way how maybe no one else used it before. And then we really hit corner edge cases, sparks between Nova and Cinder. And while having direct access to developers working on these particular projects really helped solving the problem very quickly. And then also we had to be able to deliver these new developments very quickly. So I think that the pace, how we're still going on, that's really the amazing part. Thanks. I wanted to ask you, Paré, about was there anything particularly unique or challenging about this particular deployment? I know you guys have been doing this for a little bit. Was there anything unique to this particular implementation? I mean, all the projects have something unique. And here has been essentially this notion of what's the role of the network. And traditionally, people would think, oh, it's to connect point A to point B. But in this case, it was more like a sense of providing to the virtual elements whatever they need to provide in terms of connectivity, switching, routing, that security policy, and so on, and isolating from the network. But in a way, that would be very flexible. And this sometimes is kind of more the mindset of companies like Middleware, basically where you have certain end points that expect certain things and certain requirements from a network and the other things, and the ability to essentially adjust whatever requirement comes. And what was surprising to us is this notion that especially me coming from a traditional networking background, seeing the true meaning of that the network is much more than connectivity, and working towards going up the stack, going up the stack and solving one problem after the next, after the next, in the sense that there's no true solution just providing simple networking elements, you have to provide what we call now a networking suite, a collection of networking technologies to address whatever the applications drive the requirements. And this was this new encounter with the meaning of cloud. Because until now, a lot of IT departments in traditional companies, they segregate networking from storage from compute. But what we saw is that within a true cloud stack, there's no these artificial boundaries. Problems keep coming, or new architectural decisions have to be taken, and each component has to truly adjust to the needs of the full stack. And this probably was the biggest realization of working with Shiskom in this project. A little bit about how the Cloud Foundry platform, a little bit more about the relationship between that platform and the underlying OpenStack platform. I think that might be interesting for some of the folks in the audience. Sure. So Cloud Foundry is actually two platforms in one industry movement. We've got the traditional platform as a service experience, which we call the elastic runtime, and a lot of other bits to support it. But underneath it is this layer that we call Bosch, B-O-S-H. Bosch is, if I can sum it up, it is a tool designed specifically for distributed systems release engineering. That's kind of a mouthful, right? It's got attributes of configuration management. It has specifically a plug point called the CPI, or Cloud Provider Interface, that's designed to work with any number of different options for what the infrastructure might look like. And in most cases, we're talking about infrastructure as a service. In this case, specifically OpenStack, we happen to have plugins that work directly with vSphere or public cloud providers like Google, Azure, Amazon. The most important integration point today, and it's, I think, going to change a little bit in the future, the most important integration point today with OpenStack is that CPI layer. We've been really fortunate, too, to have a lot of users that work very specifically on making sure that integration works very well. As you all know, in the past of OpenStack, there had been a lot of variation in what does it mean to actually be an OpenStack-based cloud. So that's a big area that the Cloud Foundry Foundation's looking to address. But I think, most importantly, the work that's occurred within the OpenStack community around ref stack is really important. We actually have some experimental work going on right now that's taken the basic Tempest test suite that was built into ref stack and build a series of tests that can be run through the same infrastructure that allow you to confirm that CF is going to deploy and operate and be operated well on any particular OpenStack target. So that's the most important integration point for us. Now, there's some futures where, up in that elastic runtime layer, I mentioned this earlier, when different application microservices need to communicate well with each other, while we want to keep the developer experience really simple, in fact, extremely simple, there's a need to kind of pierce the veils of abstraction a bit to make sure that, if you have a need for connectivity between different services, that we're doing that in the most efficient way. And that's going to require kind of bubbling some of those abstractions all the way down to the SDN layer. You were talking about some future looking things. I was actually going to ask Chris about that. From a developer standpoint, are there some things that you can speak about that will get them excited about looking about what you guys are doing to enhance or extend things in OpenStack? Well, from a developer point of view, Red Hat has a very broad kind of technology view of the world. And from a developer point of view, we provide a bunch of developer middleware components and toolkits. And specifically, we actually have a application, microservice container application orchestration system that would be something that's competitive in the market with Cloud Foundry called OpenShift. So most of our focus from working with developers is in that context. And for us, that means we're building tooling around, enabling Docker images as your core service, and Kubernetes as the orchestration system combining your making an application out of composing or aggregating all of these different services together. So that's our perspective. And in terms of where we're putting our focus on building developer tooling, of course, we have a lot of middleware. So it's an interesting world right now where the legacy applications are well understood. It's often Java applications running in enterprise application platforms. That's something that we provide. We're also looking at how we can bring those concepts as services into a PaaS system. So as a developer, you can consume services without having to take on the legacy model of what looks more like a monolithic application. Now, those are all slightly out of scope for what we're talking about here, except that it's very much solving similar problems. And I think these are the problems that are really interesting for the industry right now. And these are what people are trying to migrate to, and get away from the models that we've been working with for the past decade and move to the next round of application development. Thanks. So Marcel, so what advice would you give to your peers here about people who might be thinking about deploying something somewhere? What are some of the things that you learned that would be useful to them? I think start small, start quickly, and iterate quickly. I think this is like we kind of try. We kind of took that approach. Maybe we could have even started even smaller and even quicker. But nevertheless, it was very good to put an infrastructure very early into so-called beta phase of availability where people were able to test things out. So within weeks, we delivered the first stack running everything on top. And then within months, we went into some kind of beta production, where we clearly said this infrastructure is not yet ready, but here it is to go and play around. And from that, we also gained a lot of feedback. And we saw use cases of people, how they were using the platform, which we didn't expect. And so we were able then to take that feedback back and iterate it more and adjust things accordingly. So something that we, for example, did was we brought in that notion of Black Friday, where we said, OK, every Friday we're just going to hack on the platform itself, and it will be unstable on that day. And on the other days, you should be able to try things out. But this is the day that we're rolling new things out. And at the moment, we're really in a, I mean, we have also a bunch of services on top. And so besides the two-weekly release cycle of Cloud Foundry, we still roll our own weekly release cycle, where we also push the development of our value added services out to the people. And making it that from the beginning on very quickly is kind of, I think, a key, because then you can adapt way faster than just being in the dark for two years, and then you come out and no one wants it the way how you thought it should be. It's interesting you say that. I was actually going to have one more question that I don't think I told you I was going to ask. But it occurred to me when I was listening to some of the keynotes this morning about the fact that success with Open Stack, like most other things, is one-part technology, nine-parts people in process. And I'm curious, does that resonate with you guys? Because in my experience, that has certainly been the case. And I don't know that it's going to be any different here, but I'd be interested in what your thoughts are. And then after this, we'll open it up to audience questions, because I'm guessing you guys have a few things you might want to ask too. Yeah, I think that people are a very important part of the process, because we're moving away from how we used to build IT and how we used to run IT in the past. So this very fast pace changes a lot of the roles that have been there for years. It also changes the way how you deploy things, how you build things, how you lifecycle things. And it's important that people are onboarded there very early and getting taken with on that journey through in that migration or in that transformation towards a more DevOps culture approach and also yet being in a more CI CD driven approach where things are pushed automatically, are tested automatically, and then validated and accepted to the next stages. So we see this all the time. Almost every encounter we have with customers, the technology choices are, there's some questions there, there's some challenges. How easy is it for us to adopt the actual technology and the process and organizational challenges are significant? And we actually talk through that with our customers right up front saying that we've got our technology, it's a small part of the picture. We have what do you need to do to consume this technology as an organization, as really the more challenging problem to solve. And some concrete examples are even in this context where you're talking about networking and networking not only over the top of the physical fabric, but what's the relationship between virtual machines and containers. In an organization, you typically have silos and there's a group that owns the network and there's a group that owns the servers. And we thought, great, we've got clouds. Clouds kind of break down some of those barriers. And we can have simple policies that write on top of the physical fabric so that we don't have to go ask the network operations teams for permission to do things. And turns out that's actually not true. You still need to go talk to the network people because you're using what they're managing. And they're looking at this from the perspective of what security compliance and a whole set of availability agreements that they've made with the organization that might look compromised to them. And so this people process organizational shift is really important. It's not just technology. So hopefully a number of you are familiar with the concept of Conway's law. It's that any system that you're building will end up being a model that matches the communication paths through your organization. So that's one of the laws that we've all kind of learned in technology, in particular in the application development teams. But I think the exact same thing applies to the way that you build infrastructure style platforms. One of the ways that I think about how technology relates to organizational transformation and how you use iteration to change quickly is that platforms fundamentally about making promises to their consumers. And a good platform is also going to constrain the choice that a consumer has. So that consumer knows what's in the box and what's outside of the box. And that's actually a freeing feeling. If you've got all the options in the world, anybody ever gone into a restaurant that's just had way too much on the menu? You have a hard time picking what you want for dinner. But if you constrain it just right, not too much, then you actually get freed up to make a decision quickly.  Maybe my analogy is a little bit flawed. But the general idea being that the more that platforms are able to support constraining their consumers, the easier it is for then the team that supports that platform to know that they're actually fulfilling the promises that they're trying to fulfill. And maybe following the analogy of the restaurant, I think what's going on is that we all got used to be very good at certain topics. And now the question is, when we go one level up, there's a resistance in the people because concepts that are not familiar to the area of expertise that we all manage now get stretched. And the choice becomes a little bit higher. But now my influence and my capabilities become much broader. And sometimes as humans, we want to have control of little things. When we go one level up, the analogy of the restaurant, if there are too many choices, then we don't know what to choose. So we need some sort of an abstraction that now, instead of letting us pick the plate that I'm going to have for dinner today, now I can organize a dinner for 100 people. Because now I can essentially choose two options, decide what type of tables I'm going to have, what type of clothes, and so on. And the usefulness of infrastructure as an abstraction is this, is how do we, the people involved in technology, become more effective. And we've seen this going from the computer science world programming from assembly to high level languages and things like that. But essentially it's this kind of compromise that as we go higher in the stack, we become more effective. And the tools that we have to provide in order to succeed in this cloud transformation is that it's not to get caught in certain details that are going to make these complex frameworks even more complex, but rather than to provide the proper abstractions that with less time, less people, we can do more so we can focus on the things that matter. And this is kind of this transformation that we have to go from specialization to more a generic and a generalist understanding of technology. And then we all become more empowered, more effective. And this is the transition that I think the cloud is bringing to the IT industry. Thank you. So now we've got about seven minutes or so left. Are there any questions in the audience? I can't see. Oh, there's one over there. Rene Busson, Chris Research. It's a question to Swisscom. Your application cloud on which technology is it based, I think, not open stack, because then you would mention it, right? I mentioned it before. It's based on Cloud Foundry. So we're a certified Cloud Foundry provider. And the application, like we're fully, so to be certified, you need to be fully, not only, but you need to be fully API compatible with what the open source project Cloud Foundry provides. So this is what we're based on. And the infrastructure layer? The infrastructure layer that is used to deploy that platform is open stack. So actually there was this slide here which should make clear what we're based on. Anybody else? Oh, another one over here. You mentioned additional services above and beyond Cloud Foundry. Are any of those services based on open stack technology like VMs or containers? And how do you expose those to your customers? So this is something that I think Cloud Foundry solves really well. Cloud Foundry really takes the approach of running cloud native applications and then leverages a well-defined API to bind services to your application. And these services, they can be implemented however you want to implement them. And what we did is we took an approach where we built a stateful services platform that is based, that is using Docker as a technology to quickly spawn containers and then uses Flokker, a plug-in that talks to Cinder to provide the persistency for these containers while keeping them easily movable around on VMs. So the services are either like standard open stack VMs or are Docker containers powered where the persistency is powered using Flokker. And then maybe something else is, I mean, Cloud Foundry is a platform that is based or is an open source project. So it kind of works together with all the different involved parties to make one project. And for example, what we see a lot is integrating an open source project into various enterprise environments for virtual private instances. It usually requires some kind of integration with their system, whether it's authentication, whether it's their network, and these things. And these are all the value-added services that we put on top of the standard open source platform. And wherever possible, we feed them back into the project itself. Yeah, Mike Ernesto with Verizon. Question on the networking piece. You mentioned that that was integral, kind of linking the two layers, the pivot on and the open stack. Was Plumgrid an integral part of that, or are there other network options that might be part of that to reach certification with the Cloud Foundry? Yes, there's multiple aspects. Plumgrid, we provide an environment that we call a virtual domain that encompasses an application, basically surrounds the application based on identity based policy. And based on who you are, you can connect to the network or not, and then there's different features in networking. And the next what we provide is security groups based on certain parameters that go beyond some of the criteria that OpenStack provides. And now we are working with the Cloud Foundry Foundation in the open source community to expose some of those concepts as part of a collaboration with Swisscom, Cloud Foundry, and Plumgrid, and other members. What we want to go from making it kind of a tailor solution for an OpenStack Cloud Foundry Swisscom environment to have the ability to make it part of Cloud Foundry deployments, regardless if Plumgrid is present or not. And for that, we are using a project, a Linux Foundation project called Iovisor, that allows us to essentially extend the capabilities of the network layer within the kernel of Linux and completely open source. So that's from a Plumgrid point of view, we have solutions that we are deploying with this project and others, but then we are working with the community to try to have an open source implementation of similar concepts. It's a question again for Swisscom. Red Hat also has its own past solution, OpenShift. Did you consider this and why didn't you choose OpenShift instead of Cloud Foundry? Frankly speaking, what was the decision against OpenShift? That was before my time. Is that one over here? I mean, well, maybe let's not answer that particularly in that direction, but taking it more away is I think at the moment we have a huge bus within the container environment and platforms there are way more than just scheduling your applications. And this is what the two projects provide. And one is OpenShift and the other one is Cloud Foundry. And I think at the moment these are the two big platforms that are around as open source projects. While then if you go down a little bit, you see that within the whole middleware layer that is actually orchestrating the containers, there is still a lot of bus around, still a lot of things being tried out. So I think it's actually, in general, it's something that is still moving very quickly and a lot of things will still change at the moment. I think we've got time for one more. Just a quick question. Might be a yes-no question, but is there like a scaling feedback loop between Cloud Foundry and the infrastructure service layer? Sorry, I was disturbed. Can you repeat the question? Yeah, the question is, is there like a scaling feedback loop between Cloud Foundry and the OpenStack service? So in general, there's Bosch who's deploying Cloud Foundry on top of OpenStack. And there you have means to hook into these features. But maybe that's more a question for Chip. When you ask the question, do you mean is it automatically growing unbounded? Yeah. Yeah, no. There is some work that's going on to think about, so because Bosch is a platform in and of itself, it solves a set of problems and it isn't really all about the developer, it's actually about release engineering. There is some work going on right now to think about how it can be more intelligent and have some logic coded into it to allow its jobs for which the elastic runtime of CF might be one of those jobs. MySQL services, all kinds of different capabilities might be a job to allow that job to scale based on demand. To do that effectively, though, it's not as simple as just auto scaling based on, I don't know, traffic or memory utilization. It's actually, you have to deeply understand the internals of the individual cells in that elastic runtime cluster. But there is some thought going into it right now. All right, unless there's anything else, I think that's just about our time. Oh, one more? Sure. So I don't believe there's a licensing problem. So I work for a foundation. I don't work for a vendor. All of our software is licensed via the Apache Software License Version 2. There are today seven certified distributions or providers right now from Pivotal, Pivotal, HPE, IBM, Swisscom, CenturyLink, just a good number of them. And there's more that haven't been certified yet. And there's also a lot of use of it that's happening just based on free open source use. Cloud.gov is a great example. So Cloud.gov is something that the US federal government's GSA launched to support the transformation of agencies. Yeah, I'm not familiar with that either. I mean, Red Hat as a company, I guess you're getting perplexed looks from two people who should know the answer. So I'm going to go with inaccurate FUD for 10. We look forward to Red Hat offerings, yeah, as a commercial distribution, anything you'd like to. Welcome them to the party. All right. And I thought I would mention that OpenShift does do auto-scaling and OpenStatic. All right then. So thanks, everybody. Enjoy the rest of the show.