All right, welcome everybody. My name is Kyle Brown. I work at Single Store as a senior software engineer and I'm a co-chair of the Bicycle Alliance's special interest group for guest language support. Today I'm going to be talking to you about how we can get WASM components for every language. Now, there are two main points I want to make throughout this talk. The first is that we can make components for every language. That's a feasible, practical thing that we can do and already have the tools to do. And second, the components that we make in different languages can work together. That we're able to have them compose and interoperate trivially. And so the structure of the talk largely follows those two points. First, we're going to explain what components are and how they're structured and represented, what's actually in the guts of a component. They're talking about componentizing and walks through a few different approaches to making components starting from the very bottom and doing it by hand, building up to some future possibilities. Then we're talking about composing, what composition is, how we compose components and wrap up with a demo where we stack a bunch of WASM components together. So, components. Well, what are they? Components are, I believe some of you saw Luke Wagner's great talk earlier, the component model is a proposal that's layered on top of Core WebAssembly. And where Core WebAssembly defines modules, the component model defines components. Modules are lower level. They speak in terms of numbers and linear memories, integers and floating point values. And components are higher level and are able to express more complicated semantics like records, lists, arrays, strings, resources, and other facilities. And they're instrumental in expressing things as complicated as the WebAssembly system interface, WASI. Now, that layering idea that component model is layered on top of modules is also directly how it works. It's not just a metaphor. A component fundamentally contains a module if it's going to do any real computation. And your computation is still expressed in terms of normal instructions and things in a core module. What's different is that the component has its own level of import and export that are at that level of abstraction that we were just talking about with strings and records and such. And components contain the module, these imports and exports at its own level, and the lifting and lowering represented by those two arrows that adapt the semantics of the component model down to the lower level of the modules and give them a concrete interpretation. So if we want to look at the actual anatomy and guts of it, we'll find that the sections of the component match that diagram I just showed you, that we have an import section of a function at the component level, C import here, then there's literally a section that describes the lowering behavior, how to take that imported function at the component model level and turn it into a core function. And those options in that sort of dot-to-dot-ops section there are things like what memory is being used to put the data in, what encoding the string is in, how to allocate data and such, and that helps us translate from the higher level to the lower level to give it a concrete interpretation. Then we have the actual module itself with your code in it, the full bytes of it are in your component, components contain modules generally, and an instantiation of it, which looks a lot like sort of linking definition because fundamentally component model is also a marriage of the interface types in the module linking proposal. It's sort of a discovery that really it's hard to treat those two problems separately and they're most usefully handled by creating a new thing that wraps those two semantics together. And then we have a lift on the other side that takes that core function exported by the module in the center and lifts it and gives it to semantics and it tells the component model how to understand it, and this has all the same options as the lower did, as well as potentially a post-return function that can be bound to one of those options. It tells you what to call to clean up things after you're done reading the values from an export. And finally, we export it at the component model level. We make it visible as the component model function as an external export of the component. And this is in the actual AST that you would see in the explainer specification for the component model. This is how components work inside. And I'll note that I only have one module in this sort of example component, but you can have as many modules as you want. We'll see examples later where there are more modules inside a component. And even components inside components. So componentizing, the act of making components, component as a verb. The most trivial version of doing this is by hand. We'll write ourselves quickly a concrete component that does something somewhat interesting anyway. And that component is going to print a hello message, hello from what that we see in memory here. And so what's inside this component to begin with is a module. The module has memory 8, which is the offset where the string begins in memory, 15, the length of the string, and then that string itself at offset 8. And a function that returns 0, because 0 is the offset in memory where that slice is described. And then we have a sort of core instance before. We tell it to instantiate that instance. And we alias its memory, which is just a sort of thing we need to do so we can refer to it later in the lift. Then we have a section with a lift in it that says, hey, use the canonical AVI to lift this string. Use that memory that I just defined and take this exported function called greet, use the string encoding UTF-8, and ha-zah, we now have a function that returns a string. That's its result type. This is part of an interface.  This actually works. So you're not really likely to do that by hand very often. I don't know how many of you have, like, solved a business problem by writing the business logic in assembly or web assembly directly. What you're likely to do, at least for languages that we can ahead of time compile to modules already, is to have the wit-byngen method. And to explain the wit-byngen method, first, let's talk a little bit about wit. It's this format.  This is what wit looks like. We're finding a little interface, an uncreatively named interface itself in my little wasm con.23 greet package. And that interface just says export a greet function that returns a string when you call it. And the component we just looked at before that exported just this greet function in the shape this world, like Luke was talking about earlier, where it just exports this interface. That's all it does, exports this interface. But we can also define other worlds like this proxy greeter world that say, hey, I'm going to import a greet interface and I'm going to export it. This means that when we call this component's greet function, it can call this other greet function and compose them together. It can concatenate things onto it, for example. It's what we'll do in the example later. So the wit-byngen method, your component passes it into bindings generator to create source language bindings for your component, and maybe, you know, if some of your languages would see your rust, you'll get those sort of bindings. As well as embedding some information in there, usually, with the information about the type of the component, because we'll need that later. Then when you combine that with your business logic, your code that the user wrote, and you compile it through your compiler, you'll get a module at the other end that has a custom section with the type info. And this is really useful because if you're new, the Luke also mentioned the talk today, they can take a module with this custom section that defines its interface and turn that into a component. It'll generate the lifts and lowers and needs to adapt your module to becoming a component, and it will wrap it in the requisite way. And so, concretely, this is how you would do that for C. Wit-byngen has a C export, and it is able to make a header file and a source file that are named sort of the name of your world, and it contains the type info we were talking about earlier that we need to smuggle into the system somehow. We're doing it through an object file that becomes a custom section that then gets interpreted by the component new tool. And then we're going to combine that with this component.c file that has our actual logic for proxy greeter, and we're going to get this module we need. And from the module, once again, we run this component new tool, and it works just like before. And what's actually in component.c? Well, this is an implementation of component.c. This is the greeter that appends and C to whatever the imported greet function did. So if your imported function would print the string, hello from what, what we did before, and you compose that with this one, you get hello from what and C. And all we've done is really take this and C suffix string and allocate and concatenate that onto the string that we got from our import. And this is also the same flow that happens for Rust, albeit inside of car component, but it's a flow that wraps this process that you don't have to call these functions yourselves. You can just call car component build and this will happen for you. But under the covers, it's also using wit bind gen. It's generating a module of code that is inserted into your sources that's combined with your library code, and it's compiled with Rust C to make a module of the custom section. And like before, a module in a custom section that has type info can be made into a component. And so we do so. And our source code to do that looks like this. And you'll notice the Rust code is a little easier to read than the C code. All we have to do is implement this trait guest for our component where we call the imported greet function and add and rest to the end of it. And we have a component that adapts an import to produce an export in Rust. Now, these approach I'm talking about, this bind gen approach works great if you already have a compiler that can take your source code and ahead of time compile it to a module. But what if your language is interpreted or it has a runtime and garbage collection of other facilities that aren't just the whole code AOT compiles to WebAssembly directly if it's not quite so easy. Then we have another approach layered on top of this I'm sort of tentatively calling runtime wrapping in this case. And in this process we're going to do roughly the same thing. We'll still generally generate bindings in your language that adapt the types and create sort of the stubs of the functions that you need and you'll combine your logic with it to make a code module. But that module might actually only have the binary data if it's like a byte code then JVM your module there could literally just be a data section that is the byte code. And that's fine or it might be ahead of time compiled to functions. But either way, what you're going to end up doing is composing it with a pre-built runtime in a way that makes a new component that links the runtime into the sort of source code and compiled source code to make this runnable component. And because these runnitimes all tend to assume that you've accessed a runnable component in the world, you tend to get a component that has this import of the WASI CLI world stuff. But if we want to, we can use WASI VRT to hide that import of the WASI CLI stuff. We can create a virtualization of the file system of the clock of random in a way that's sufficient to run these runnitimes and create a component with no additional dependencies where we just have our import of greet and our export of greet . So there's two main tools that currently do this approach. One is Componentized.js, which if you're in this room, you're missing the talk on by Guy Bedford, unfortunately, due to timing. And this uses a pre-built spider monkey runtime that has been designed to be instrumented and have arbitrary bindings added to it. It has some cool features like the ability for users to configure the sort of JavaScript environment they work in, the globals and imports that are available in it, the flavor of JavaScript environment for your code. It also uses snapshotting to improve startup speed. This means that since it's WebAssembly, it's able to run it and pre-initialize it, snapshot the memory state, and then compose that into your result as well so that you start up with the engine already at the state where it's parsed to your code. Doesn't have to wait for it to parse your code for no reason. And that execution is all completely sandboxed so that there's not any concern that you are non-deterministically pre-initializing it where the pre-initialization is going to damage the isolated process. The code for this is very simple, actually. The binding generation for JavaScript is quite nice in that you literally get to import greet. Because our interface is that we import greet, it's not wonderful. And then we define this greet interface, which is our interface that we're implementing for the world with our greet function that does very trivially implement greet as calling the imported greet with the end JavaScript at the end and we export it. And what's cool is that this is actually also the shape of the component. The other tool that we have is componentizepy. And this uses a pre-built Cpython runtime. It has high-level bindings that are generated for Python, but the low-level lifting and lowering stuff in the real nitty-gritty bind gen is actually generated as a wasm module, which is a little different than it works for some of these other things. You don't generate, like, C code or something, you get actual wasm. And part of this is to work with some of these other cool things that Cpython is doing, one of which is extension leaking. Because Python has so many different popular libraries that use C extensions like NumPy, Panda, Psykit, etc., a sort of dynamic linking approach was needed. And componentizepy has this ability to link together dynamic libraries as modules inside of your component and figure out how the symbols need to be defined and imported and link all that together. It's a remarkably clever thing that you should go to Joel Deis's talk tomorrow to learn more about. Also, it does the same sort of pre-initializing snapshotting that the JS does, as well. And the code for that is also very simple. We import a class that we need to implement, this abstract class interface, off of exports, and we import interface from our imports. And that means that we're able to call the greet function in our greet function. Once again, these are very simple implementations because all of the hard work of making a component has been externalized to bindings generators and these componentizing tools. So, fundamentally, these two approaches can take code that can be OOT-compiled to modules and code that can be OOT-compiled to modules and make components out of them. So, fundamentally, we should be able to componentize code from arbitrary languages. There shouldn't be a limit to what we can componentize. That said, in addition to these two approaches, there's also some future possibilities that go outside or beyond what's currently been outlined in those two examples. For example, you could start to use the garbage collection proposal, Wasm GC. And one note that I want to start out with though is that you can already implement GC languages using linear memory. There's maybe advantages to using GC instead. If you are going to use GC, some notes that are some challenges that currently exist is that Wasm GC doesn't build in all language features, features used by different languages, garbage collectors. So, if you have some like interior pointers and things, you may have to use a high level abstraction to support Wasm GC. There may be some effort there. Your GC is often tightly coupled to your run time. So, some work would be needed to decouple it. Wasm GC's support is still work in progress outside of browsers, unfortunately. Like our previous speaker mentioned, the work is still underway in Wasm time. In addition, the component model doesn't yet support Wasm GC at the boundary. Now, you can use GC internally. The component model won't have any opinions on what you do inside of your module, but if you want to pass something out to the other code, the lifting and lowering system and then unobstruct data to move it through the system, you can't read directly from GC. So, you'll have to make an intermediate copy in your linear memory that the canonical API will then read and write from, which is the current limitation that will the future not happen. But in the future, as things go on, as these things become more mature and more developed, Wasm GC can be really useful, especially if you're a new language that gets to start from the bottom and build Wasm GC as your GC or you're a language that's small enough that you can decouple and rip the GC out of your system and substitute these GC instructions instead of having all the GC code that's already linked into your runtime. Conversely, if you're a really big, really old project, I expect Python might have some challenges finding a way to rip GC out of their system and abstract it to using Wasm GC. But if you do that, that will require you to componentize differently. Right, the other thing that I want to see, I think would be cool to see in the long run, is deeper toolchain integration, which is to say that compilers, could interpret the width and the components directly, could understand them, it could do the mapping of its type, so if you have a JavaScript string, or if you have a build tool for some language as its own string type, and it's going to have a function that returns a string, if it just knew how to generate the lifts and lowers required to do that on its own without meeting binding generation, then that could be really interesting. One thing you could get out of that potentially is a better compiler user experience. If you exported a function that returned a string, but you needed a function that did this, that's different than maybe finding some unclear error in your binding generation. It says, oh, the bindings type didn't match your type. If it didn't just say your component type and your source code types don't match, then that would be more clear to users. Also, as async features are added, languages might want to be more aware of them. And the component model is going to have an evolving async support in the next year with preview three hopefully coming sometime in the next year or the year after to more deeply integrate. And the more that they understand the component model directly, the more it's possible there. So it's good for thought. GC and deeper toolchain integration. Without a way, let's talk briefly about composing. I'll say frankly that I don't actually have a ton of slides on composing because it sort of just works, quotes. Which is to say that it works a lot like it would work for normal modules. If you have imports and exports whose types match, you can instantiate them together in such a way. You don't have to match all of them, of course. You're not required to produce a closure that fully wraps all the imports and exports. You can compose together components that as long as some of their exports and imports match, you're able to create a graph of these components. One thing that's cool with components is static composition. We're able to take two components and actually make a new component that expresses their composition. You don't have to necessarily use the APIs in your linker or in the JavaScript API for WebAssembly to instantiate one and create this compound expression of the two components that is then itself a component which is a powerful tool that we don't have currently without it. Now the one challenge that composition has for components that is not a thing modules have to think about because they only have one type system which is this low level integers and memories is how to actually lift and lower across two components. So strings as an example of a type that have different concrete representations, they're coded differently. String just means a sequence of Unicode scalar values but that's not a bit pattern. String is fundamentally like a Unicode string does not have a bit pattern. UTF-8 has a bit pattern. UTF-16 has a bit pattern. Strings do not. So if we want to pass a string from one place to another, it's important to know what the underlying representation of those strings is. For example, if in one side it's UTF-8 bytes that are lifted to being a string and the string on the other side is being lowered to be UTF-16 needs to be brought down then the operation we do fundamentally is whatever is minimal. In this case it's a transcode. So if we lift on one side and lower on another side we can create sort of the minimal conversion adapter between the two concrete representations. But a string is never constructed. There's not a process whereby we say this is the format that all strings have, the single ABI of all strings, we're going to make that string and then pass it across the boundary. String is an abstract type and depending on what concrete type is on either side we do the minimum conversion possible. For example, that if the two things on either side were both UTF-8 we would get to just have a fused copy and validate operation that just says, is this value UTF-8? I don't want to give some deals of garbage and potentially propagate sort of issues between the systems. And they're disjoint linear memory so we need to copy them. But that's all you have to do. There's no transcode, we're not transcoding to UTF-16 in back and this is true for any pair. UTF-16 to UTF-16 would do the same thing. It would just do a copy validate. We don't force arbitrary round trips through concrete types. And that's pretty cool and that's fundamentally what composition looks like. And the types might be more complex. It might be records and such on both sides, but the philosophy is the same. There's a lift on one side, a lower on the other side. You link them together and make the adapter. And that's what your component tooling is doing for you. Now we're going to go to a demo I'm calling Tower of Wasm. And first what I want to do is just show the code for each of those examples in sort of this VS Code project that I have. And so all those examples we saw before, the actual code I'm going to run during the demo. That's sort of the point I want to impress on here. And they've been built to components in a way that using tools that exist in the open source today. And these components down here are the five components I showed during the talk today. And to boot we can use this cool tool called WasmBuilder that lets us drag and drop components together to chain an arbitrary sequence of components, linking their imports together exports to their imports to their exports. And so what we can do for example is take this component downloaded as we'll just call it component one. And then if I go to my shell let's actually go to the other shell we can use this runner that I've created using WebAssembly, using Rust that embeds WasmTime to execute this component. And the cool thing here is that that component we saw before we want to read through this. This says hello from what and C and Rust and Python and Rust and JavaScript and C and Python. If we go back to the example we had in the browser there we'll see that it's C and Rust and Python and Rust and JavaScript and C and Python which hopefully is this exactly the same. What's interesting is that we just executed a composite component there that has Python on the top and then C and then JavaScript and then Rust and Python and Rust and C and what and we executed a call all the way down that import graph and all the way back up again building this string and it works. The different encodings between the different languages, the bindings requirements the composition, the lifting and lowering all happens. And this is a component that includes JavaScript and Python which are actually embedding Wasi virtualization in them in order to virtualize their file systems and all of this is something that is present and working today. And the cool thing that I want to invite the audience to do assuming we have time is we're going to build our own as an audience here today. So the one requirement is that what has to be on the bottom because as I showed earlier it only has an export but I want to ask the room to just shout out a language and we'll pick what goes next on the end of this chain. So can I have a language? Rust. We'll do Rust next. And another? And another? Well, let's go out of order a little bit, guys. Something else? Python? We're feeling very creative today. I'll start just grabbing some random ones then. But I'll grab Rust and we'll go back to JavaScript again for kicks and then pick me something else. JavaScript again. JavaScript again. Why not? And finally, we'll do one more. I heard C. Right. And now I'm going to need a second to link all these together with my little trackpad. But all I'm doing here is I'm drawing an edge between these imports to say, yeah, I want to take this export of this one component and make it the import of another. And you guys probably can't even see the lines. When we click the download button at the end, it will generate a composed component and during that process it will validate that these imports and exports... Oh, checking odds, here we go. Well, then we're already getting validation as we go. And the last thing I'm going to do is I'm going to check this box on C that says that we're going to export the exports of this as part of the overall component we build. We're going to download this as component two. And then... Oh, I think I clicked outside the box there. Component two. Oh, yes, for JavaScript and Python it does. And so what we're going to do here... Whoops. Before we run it, let's verify what we expect it to say. We expect it to say, hello from Watt and Rust and C and JavaScript and Python and Rust and JavaScript and C. And let's see if that's what we see. Right. So we have hello from Watt and Rust and C and JavaScript and Python and Rust and JavaScript and JavaScript and C. And would you look at that? That is the exact order of composition that we just did. And what's cool is that we can do this in any order we want. The reason I want to do an audience interaction thing is to show that this isn't something that works under specific combinations or specific order. There is generally the ability to compose languages, compile the components that are legal with the WIT type system. And that's mostly the talk. So... All right, I want to do some acknowledgments really quickly. Single story, my employer for helping me work with the byte code of Lance in these projects as well as lots of people who gave input on these slides or helped make the tools and the demos work. And with that, that's what I've got. Right, so we have some time for questions actually and I'm happy to revisit slides to answer any questions people have. So what's lifting and lowering was the question? And let's go back to a previous slide as a tool here. Lifting and lowering is... Conceptually, I want to think about it in terms of abstraction. Like low level, like a concrete thing, like UTF-8 bytes represent a string. In a high level thing, the component model string type. And lifting is the operation that tells you how to go from, like if I return a string and I return some bytes, right, then my function returns a string. So I need a way of getting those bytes to somebody else. And it's sort of to go through the component model, there's this like V pattern you go through. You lift up to the right and then you lower down to the left because you're going up through the component model. And that's sort of a way to visualize it is that it's a way of converting concrete types to these abstract wit types and back again. And so we lift exports and we lower imports. We lift and lower arguments and returns based on which thing. So an export that returns something, we have to lift the return of an export. We actually have to lower the argument of an export because if you pass a string into something, that thing is going to have to tell it how to turn that abstract string into a concrete memory, you know, string in memory that it can process. And lifting and lowering is just the name we give to this process of mapping values from the Core Web Assembly to the component model. But JavaScript string is a concrete choice of what a string looks like. So we're lifting that concrete choice of what a string looks like to this abstract concept of a string by telling it what encoding to interpret it as, you know, to interpret it as a sequence of unicode scalar values because JavaScript doesn't have concrete bytes. Then it would be on the right-hand side of this example. It would be like the UTF-16 bytes on the right. Actually, UTF-16 even, so it works there. So then, yeah, if you're passing a value into JavaScript, the JavaScript is calling an export of something else like imports that returns a string, then it would need to lower it into its internal JavaScript. And then we have a couple other questions. Yeah, so with the exception of resources, which are handles that act as a sort of referential passing mechanism, strings and records and all these things are value types that are structurally passed. We have a queue of three questions, so I'm trying to get them in order. What do you mean by pass through strings? Oh, that's an interesting question. There's not really a way to get like an opaque handle of a fixed person without ever seeing it. Yeah, fundamentally, there's not sort of that ability to take something from an import and pass it straight to an export without ever seeing it yourself. It has to get lowered into you, and then you would lift it for the other person. There's maybe an optimization that would be possible that would be interesting if we could have some way of doing that. I don't think that's fundamentally impossible, but it's not something that's a use case. Yeah, that's true. For strings and value types, you cannot do this. For resources, if somebody passes you a resource, you can get a handle, you get an integer. To pass this handle to somebody else, you pass them an integer. There's no... That sort of represents an alias to that string.  Right, so for example, the HTTP request and response headers are going to be resources that you can get the string from, but if all you're doing is proxying it and maybe modifying a couple of things, you don't need to see every byte that makes up that request. You're just passing it the handles through. There's another question here. There is a pool of... Right, so we currently have what's called the canonical ABI, which is a single parameterized ABI. It's parameterized in terms of encoding, for example, for which memory you're using, for your allocation function, but it's a single parameterized ABI that's currently possible, and that does have a finite number of parameter values of finite encodings, and so in the moment, yeah, passing strings between is just a question of having an answer between the finite parameters that are possible for lifting and lowering a function import and export. In the future, the interface adapters as given by the interface types proposal will eventually, far into the future, be a thing that the component model will attempt to pursue. So for example, we'll likely have functions at the component level that are adapter functions that let you give you full control over the ABI that your data is being passed in. In fact, that's one of the ways we could eventually support GC really well is by letting you customize the adapter by which we lift and lower your data. Then what it would need to do is it would have to marshal to a valid source of the canonical ABI and then do that. And so for example, if your language internally uses GC today, then you're going to copy it into linear memory in one of the supported encodings and shapes to do this. We had another question here. Wonderful. A question back. The canonical ABI is only so parametric, is only so flexible. If your language was really far from the canonical ABI, then that could involve some cost between two. But as much as possible, and specifically in this example for strings, we're able to do the minimal amount of work. And as we eventually get adapter functions in the distant future, they will really be the full realization of reducing the work between two things as close to zero as possible. But what we have right now is a distinct amount of work that you have to do to do these representations. Another question. Yeah. Since they're passed by value here, if you modify a value you've received, it doesn't do anything to the person who gave it to you. There's some interesting things that are possible here. It's sort of this question of like passing data through components without requiring multiple conversions of like, there's some interesting things that I would be curious to see about, you know, if I call an export and it gives me a value and I pass that value to the argument of another export, wouldn't it be cool if I reduce the data movement that's there? You ideally don't want to do a double re-encode at the moment you would because of current limitations to the canonical ABI. Right. There are possible ways of caching and preserving multiple versions of these values, but that's nothing that's currently possible. We only have a couple of minutes, so I'll take one more question, then we'll wrap. In the back there, we have one last. That's a great question. There is work on debugging and improving, like adding debug symbols to WebAssembly modules and components. There's a special interest group of the bytecode alliance focused on debugging. Currently, I think if we wanted to debug what we just ran, I imagine it would be quite a pain to be fully blonde. So there is a representation of debugging symbols information as custom sections in WebAssembly. The challenge here is that since there's so many of those, I don't know that the current tools are... Peter, I don't know if you have thoughts on that. Okay. You look like you maybe had something to say. Well, then I'll revise my answer to, I haven't tested it, so I can't promise. And with that, I think we'll wrap. Thanks, everybody.


Live from the Walt Disney World Swan and Dolphin Resort in Orlando, Florida, it's theCUBE. Covering Splunk.com 2016, brought to you by Splunk. Now, here's your host, John Furrier. Hey, welcome back everyone. We are here live in Orlando, Florida for Splunk.com 2016. This is the seventh annual Splunk customer and Splunk conference where they get together. I'm John Furrier, the founder and CEO of SiliconANGLE Media Inc. And cohost of theCUBE. And I'm here with Kevin Davis who's the VP of Public Secretary Splunk who was on last year, who actually is like the star of the show in a way because the top message is security. Kevin, welcome back to theCUBE. Yeah, John, thank you for having me. It's great to be back. I know you're really busy. Thank you for spending the time to come here end of the year for you on the federal scale. Obviously we talked last year about security. We laid it out, I thought pretty well. Made some predictions. They're all coming home, but Splunk has upgraded their game with product and growth. And now with the cyber security, like even more amplified than ever before me, even today, New York Times and Marissa Mayer could have invested more in security, broken that story, the Yahoo hack, credit card frauds and trillions of dollars, the federal government being hacked, DNC, business is good and the cyber first, Splunk. It is, if you've got, for those that watched the presidential debate the other night, three questions to ask, right? And one of the questions was about cyber security. That really goes to show you just how important it is, how top of mind it is. When I work with the DOD, it's very interesting, right? They've always been the masters of the domains, right? Air, space, land, sea. Well, cyber security is a domain. The cyber space is a domain as well. And that's something that they're getting really good at. But it's definitely a lot of investment going on. Cyber security is this generation's moonshot. We heard that on the queue from their CTO. This is what's happening. They're right now, we did some research two weeks ago. 1.4 million open jobs in cyber security right now. That's not including data science, which has its own list. But cyber security in particular, just not enough people. So technology has to be a short-term and medium-term solution, ASAP. So it's interesting if you look across my business, especially the state, local and education business, they're really moving and are looking to MSSP, right? To really outsource this, they're looking for the Verizon's, the Booz Allen's and the Deloitte's of saying, I can't hire people fast enough. I can't hire the skills, I can't train them fast enough. So I think we're going to see a real shift to this MSSP model. So talk about your business, right? So Splunk is an incredible company. Obviously we've been following it from the beginning, the Cube being here in our seventh year. But when a company has a verb, you've been Splunk. Splunk my data. You've been Cubed while we've been Cubed here. I love it. But yet, you guys are still growing and still on a pioneering, you continue to have a pioneering front end, but as you start to get more mature in the IT ops piece, people are starting to operationalize Splunk, which means they're in the business, there's good procurement, it's less of teeth pulling to get them to actually, here's where it works, here's how you scale it, here's how you fund it, here's how people use it, et cetera, et cetera. That must be even harder for federal. So this year, what's going on? Yeah, you know, it's interesting. I was being interviewed just recently and used the words Splunk as a verb and they stopped me, they said, wait a minute, did you just use Splunk as a verb? And I said, yes, it's going to be like Googling, hopefully, soon. What we're really seeing is, we've started at the departmental level, but especially in the federal space, it's really taking off. We're on the CIO's top of mind and they're wanting to, we call them EAAs or Enterprise Agreements, basically. And that is absolutely the bread and butter of our business, especially you mentioned, this is the end of the federal fiscal year. We're doing a lot of EAAs across the federal business right now. And we're no longer just, you know, back in the security department, we're across their enterprise. Is the sales motions different on the public sector side? Because in our enterprise, it's been clear, organically growing, top down guys get a view of it with security, no problem, nice smooth sailing. It's not that easy to land and expand in the government. I know there's some Gov cloud going on with Amazon, which probably helps you guys. It does. You know, there's no kind of line item for sponk or sponk equivalent, right? This is a new paradigm for them. So that's really why we start with this kind of crawl walk run, but it works well with the government. The government doesn't do a ton of big bang, let's go all in, you know, it's kind of a slow and steady, if you will. Well, the CIA deal that was IBM had won and then lost to Amazon was really a game changer. Has that impacted your business? Do you have a strategic relationship with AWS? It has, Theresa Carlson's a friend of mine. We meet regularly, you know, our teams are locked at the hip. We're really going after some initiatives together, things like smart cities. We really think that together we can go after that and really help the customers, right? You look at us, the city of LA is a great joint customer of ours, you know, leveraging it across the city and really in a great security use case, but that's a great example of one where together we've been a fourth multiplier. We heard EDU guys on earlier talking about the on-prem and silos because that's the nature of the beast in EDU. They are, as they say, the slowest moving animal to the cloud because of the nature of EDU. Federal has embraced the cloud, obviously to Amazon. Are you seeing more Splunk cloud in Gov and federal, state, local action? The, that's, I like the question. The answer is absolutely. I'm actually seeing it most in the state and local business. They just seem to have embraced it more quickly. You know, the federal space, there's certain requirements, you know, a little bit in concern about their data being somewhere else. The message that really resonates with them is hybrid, it's on-prem and in the cloud and you pick and choose. So has the phone been ringing out the hook since the debate? Because they did mention cyber security. 81 million people watching. They could have just said Splunk. Business was good before that. It continues to be good. But I'm expecting- But you're happy about that. You got to be thrilled. I am. It's a significant portion of our business in the government space. Yes, we're very scared. We're at a great spot right now. What's the trending items in the federal and state, the federal state level of Splunk? What are the top things that you're most concerned about besides cyber security? Yeah, so the probably first and foremost is kind of the end-to-end visibility, IT operations, of just knowing when something goes down, what is it? What is the chink in the armor that went down? If you look at an example of a global entry program for CBP, if that system goes down, people's phones are ringing and it's not friendly calls. And the ability to do- And it does go down. And the ability to know end-to-end and quickly determine what's wrong with the system is a great example of Splunking use. You should have a lot. I know we had just talked about what we came on. You're on the road. What are you hearing? What is exciting you these days? Share with the audience what's out in the field. What are you seeing? Yeah, you know, it's interesting. I carry a Splunk bag, generally have a Splunk shirt on and folks are always happy to stop me in the airport. Always happy to talk about Splunk, which is great. So we are definitely being talked about. There's a great buzz around our company, our brand and that's really exciting. And what I love to talk about is how we're helping the mission of government, right? And that's really what I enjoy the most. And they're trying to simplify too. So you've got some receptive audience. We do. We're having conversations at the highest level in some of these organizations. I've been doing this for a long time and I have not had the response that I've seen here at Splunk. Well, you guys are a public company but still a startup in my mind.  How long can Splunk continue being this nimble? Yeah, that's a great question. I hope forever. Refer to us as a rocket ship. It feels like it. It is still a startup mode. Our office, if you come out to it in Tysons, McLean, Virginia is always a buzz. And I just, I love it at the end of the day. So Theresa Carlson and I wanted to get in more cube action to the public sector events. There's a lot of demand that certainly Amazon is seeing a ton of action as well. So let us know what's going on. We'll do. And I was just at a third public sector user conference if you will out in DC and it was standing room only. I was absolutely packed. People want the use cases. The number one thing we hear, I want the cloud. I want simplicity. I want the security. Who's got the playbook? The analysts aren't getting it. The way I'm seeing it, you get the old school analysts, but Splunk is doing things in a new way. And the customers that we interview here, it's like the success is like the reverse of the way it used to be. Yeah. And as we, we're put into the sim market a lot and we compete in that space. But the truth is we're so different than the traditional sim vendors. And I think once folks really get a taste of what Splunk can do for them and really empower these analysts, these are very smart, brilliant people within these agencies and allowing them to ask the right questions of their data as well. Well, I think Splunk has got a big opportunity. I think it's so much more trajectory here because you really talk about a data sharing platform. Because the customers I've been noticing here, they're self-forming amongst their own constituencies across companies. Yes. And using Splunk as the common ground between them. And they're sharing data, real data across the companies. That's unprecedented. So I've been in a ton of meetings where we're actually introducing people that work at the same base, the same company, the same agency. We're introducing people that have worked down the hall from each other, but have never met. But now that IT operations and security can work from the same pane of glass, it's really an eye-opener. Plus it's, they're actually creating groups around this. Yeah. IT cells, analytical cells to look at the information. So here's the final question for you. Okay. I'm a fastball. I'm a right out down the middle. High and tight. I love Splunk. I'm a public sector guy. But I want headroom. I don't make a lot of moves. I'm making a big move now. What do you guys offer for me, for headroom? For headroom. I need future. I want a future-proof. Yeah, yeah. The buzzword is headroom, future-proof. Okay, yep. So it is absolutely the conversation I have with every one of our largest customers, right? So our go-to market really around that is let's talk about a one-year to three-year. Let's do unlimited. Just take it off. Open up the spigot all the way. Let's bring in all the data sources. And at the end of that one-year, two-year, three-year term, let's look at it. So we're not going to turn you off. So do a look-back. Give them all you can eat. That's it. And then look back. They're not happy. Then everyone walks away. Walk away. That's right. Absolutely resting. That's a good bet for Splunk. You've got a good track record in look-backs. That's right. It's a very sticky product. So yeah, it's great. It's classic sales. What's your, you know, you want to do a look-back? No problem. But then we're going to charge you basically on the other side. Holy kidding. That's right. It's not your sales tactic. We agree to something up front as well. Well, thanks so much. Final question. What's the takeaway from the show this year for you? Yeah, you know, the buzz. So this is my third dot com, second time on theCUBE. And the buzz gets stronger, better every year. I cannot believe just how sticky it is, how excited our customers are. And that's what it's all about.  What's on the radar next year? So well, the first one as well. The one that I'd like to talk about is Gov Summit. So I basically bring a one-day, let me bring dot com to you in DC. Last year we had over a thousand people attend. So that'll be November 15th in Washington DC. We call it Gov Summit. And that's, you know, the next one for me. Finish up here, close out the federal fiscal year and then off I go to get ready for Gov Summit. So Gov Summit should one day with Amazon be doing that with you? Or is that your deal? So last year I had Teresa up on stage with me. We talked about our partnership. She was a guest. She was a guest. Okay, guys, it's not a joint thing. It's not a joint thing. So why? Well, she does it in the event too, I believe. She does, she does. But they're absolutely partners. They're sponsoring it and they'll be part of it. Will you be a re-invent coming up? Absolutely. We'll see theCUBE there. We'll be a big stage there. Thanks so much for spending the time. Really appreciate it. Great to see you. Thank you. All right, Kevin Davis here. In charge of the public sector for Splunk, which is really, really hot because we all know what's going on this election year. 81 million people saw the debate. Cyber security up and down the country and the enterprise is the number one issue. You're addressing it. It's theCUBE, live in Orlando. I'm John Furrier. Thanks for watching.


Here we go again. Just moments after finishing our last video on the effects of protests within Animal Crossing, we discovered that Twitter was ablaze with yet another in-game protest. This time around, protesters from PETA stormed the museum in one of their towns, bothering Blathers the Owl in the name of animal rights. Amid shouts of empty the tanks, PETA have decreed that Blathers is cancelled because he, quote, encourages villagers to take fish out of their natural habitats so he can trap them in tiny tanks. This news is enough to make anyone ask, why? Of all the possible targets for an animal rights campaign, why is PETA so opposed to a fictional owl inside a non-violent video game? The people for the ethical treatment of animals have been attempting to gain extra attention with similar stunts for years. The organisation has a particular axe to grind against Nintendo. In the early 2010s, PETA released a series of parody flash games designed to highlight animal rights issues within Nintendo's creations. According to these games, Mario is accused of being complicit in the fur trade when he dresses as a tanooki, while a Pokemon parody poked fun at trainers capturing monsters and forcing them to battle. We'll spare you the specific details, but if you want to see them for yourself, Nintendo has not seen fit to pursue legal action against PETA, so they're still available to play online. Perhaps emboldened by their success with these games, PETA has since turned their attention to Animal Crossing New Horizons, a game that the activism group argues is simply not vegan-friendly. According to PETA's Vegan Guide to Animal Crossing New Horizons, is fishing an animal crossing vegan? This is a biggie. Fishing isn't vegan, you shouldn't fish in real life, so you shouldn't do so in the game either. The guide goes on to yet again blame Blather's Museum, calling it, quote, not only cruel, but also bad for the environment. The guide also states that catching bugs in Animal Crossing isn't vegan. It claims, Blather's would like to build a museum of fishing insects on your island. Don't let him do it. Anyone who thinks that Blather's actually wants your insect donations should pay more attention to the game, but that's beside the point. Here's another interesting line from the guide. If you get instructions to build a doghouse, don't! Apparently PETA also takes issue with you building a virtual doghouse, whether or not you'll actually keep a dog in the house. The guide also tells you not to pick up clams, and praises the games, quote, surprising awareness when it tells you that hermit crabs want to be left alone. Instead, the guide suggests that you eat lots of fruit, plant flowers, wear pleather, and put up a bulletin forbidding visitors from fishing or catching bugs. It also suggests that yes, you could, quote, raid a friend's island to protest their museum for keeping fish captive. It's worth remembering that in order to build a museum in New Horizons, the player has to catch five fish or bugs. This means that somebody bought Animal Crossing and spent hours fishing, only so that they could protest against other people fishing. The guide also speculates about whether or not Isabelle, the carnivorous dog, is a vegan. It says, she seems to love tofu. Does this mean she's vegan? We can't confirm that, but it would make sense. So, really, what's the point here? What exactly is PETA trying to achieve by protesting inside Animal Crossing? And why does the activism group seem so desperate to attack Nintendo games instead of going after real-world cases of animal cruelty? Well, discerning their motives isn't always easy, but there is one major benefit to campaigning against Nintendo. It brings attention to their cause. We can't say that this doesn't work. After all, we're talking about PETA right now when we wouldn't have otherwise. Well played, PETA. Well played. Now, please leave Blathers alone. He doesn't deserve this.


You are about to witness an epic Tarot Magnus reaction. Let's get it in. Do you have a few words? The circle is complete. First trailer. The second one? I gotta admit was kinda... When has completed the circle. Okay? It is complete. See this? Now? Tonight. It doesn't matter. Comments below. Let me know what you think. If you like my reaction, hit the like button. If you didn't like my reaction, although I would not know why. Hit the like button. And subscribe us with 100,000 subscribers plaque.


This is Orson Welles speaking from London. Here in the Grimstone structure on the Thames, which houses Scotland Yard, is a warehouse of homicide.  Now, this silence, sir, made to fit an army rifle, made for a killer, for striking unseen and unheard and the dark, perhaps, interesting little instrument, a scientific gadget to absorb sound, to change a sharp, cracking report into a muckled gasp. I suppose I'm being rather subjective about this, Sergeant. But I find myself hating that silence, aren't I? Yes, I understand how you feel, Inspector. As science say, well, it's... it's filth, he says, isn't it? It's something like a rattlesnake. No, Sergeant, you're similarly wrong. A rattlesnake gives warning before he strikes. He plays fair. Today, that silence can be seen here in the Black Museum. From the annals of the Criminal Investigation Department of the London Police, we bring you the dramatic stories of the crimes recorded by the objects in Scotland Yard's Gallery of Death, the Black Museum. In just a moment, you will hear the Black Museum starring Orson Welle. It's a museum of murder. Here lies death in many guises, the long history of a great number of very murderous deeds. On the shelves, on the tables, in the very air itself. This elephant gun here. This was once used for hunting by a sportsman bred in the very best traditions. Later used to shoot a friend in the back. Ah, here we are, a silencer. Metal tubes within tubes. Small and stubby. Designed to swallow sound. There was a weapon too, of course, but no unthoughtable weapon or other silencer. The night Herbert and Josie marted and returned from a party to their new home in the equally new residential development in the suburbs of London. Oh, it was a fine party, Josie, but I don't mind telling you I'm dead for sleep. Oh, yes. Oh, I like the new neighbors, but business days and no time for house warming. At the rate this new house is renting, we'll be going to house parties for weeks on end. Might as well make up our minds to it. A man and his wife tired in the pleasant sort of way, pleased at meeting their new neighbors and preparing for sleep. No more quiet, nice people in the new home. Nothing spectacular, no hint of headlines, no thoughts of death. Sure the door's a locked, Herbert? Mm-hmm, yes. Oh, dear, please pull down the blind, because if it blows up during the night, it'll flap out the window and wake us, like laughter. Oh, all right. If you didn't insist on opening the windows from the top, Josie, the blinds wouldn't blow. What did it? What state can you... He reaches up to pull down a window blind. The lighted lamp is behind him. A bullet stars the window pane. The man is dead. A short while later, a telephone rings in an office in Scotland Yard. Inspector Foster here. Er, Sergeant Williams speaking, sir. There's a call come through from Hemstead Oval, Herbert Martin. Short as he was pulling down the blind in his bedroom. Anyone with him? Yeah, his wife, sir. Any other witnesses? No, sir, not at the moment. Well, well, Williams, bring a car round and we'll have a look at the situation. I realize this has been a terrible shock, Mrs. Martin, but we need your help at once. Oh, anything, Inspector, anything at all. Did your husband have any enemies that you know of? Oh, no, no one, no one. Any trouble in his business? No, nothing, no. What was his business? Insurance. Accident, mostly. Who's going on so well that how we could afford to move out here? Then you've only come here recently. Three months ago. We were one of the first tenants. Seemed such a nice place. Everything's so new. Questions and more questions. There was obviously nothing Mrs. Martin could tell, Inspector, all she knew was what she'd seen. One point puzzled him. Inspector came back to it several times. And you're certain, Mrs. Martin, that you heard no shot? Oh, nothing. Just the sort of noise of the glass and how it would fall. Well, it's possible, sir. It's extreme range. The sound of a shot might have followed the arrival of the bullet, Mrs. Martin. No, I'm sure. I'd have noticed. I thought it seemed so strange. There wasn't any sound. Just the hole in the window and my husband sort of crumpling up and falling. Well, that's not much to go on. Perhaps the bullet will tell us something. Meanwhile, we'll do our best, Mrs. Martin. We'll try to do our best. There was very little for the police to start on. A close scrutiny of Herbert Martin's life brought nothing to light. Martin's manner of living, the conduct of his business were exemplary. His friends, his business associates, his new neighbors, all had nothing but praise for Herbert Martin. Death had come out of the dark. This alone was ground for speculation, particularly among the neighbors, Sydney and Elizabeth Davis, brother and sister, for no exceptions. I can't help but think, Sydney. It's so peaceful here.  Well, it is pleasant, but it would be if it only. Do you suppose his poor wife will keep the house now? I doubt it. But perhaps if you offer to help her, Elizabeth. Well, I have. It would take her quite a while to make up her mind. I see. She's all alone, poor sir. Sydney, I can't help but wonder. You know, oh. What do you mean, Elizabeth? I have the strangest, strangest. What? It's sharp as, oh, Sydney. Elizabeth. Death had come to Hampstead Orville once again. And you're absolutely sure you heard no shot, Mr. Davis? Absolutely, Inspector. One moment, my sister was speaking to me about Mrs. Martin. The next moment, she was dying in my arms. There's no sound and only the blood. I see. Mr. Davis, do you know the people who live in this development? Nearly all of them. We, well, we felt rather like pioneers, I suppose, with the development being so new. We all became friendly. And perhaps you can tell me, are there any ex-service men living here? Yes, there are two. Nice chaps, wives and children, you know. May I ask why you inquire? Because the bullet which killed Mr. Martin came from an arny-issue rifle, and I suspect the same thing will be found true in your sister's case. If it is true, we'll have that much at least to go off. More, the markings on both bullets were identical. The same weapon had been used. Inspector Foster sent Detective Sergeant Williams visiting. Yes? And are you Thomas Larkin? I am. Oh, excuse me, sir. I'm Detective Sergeant Williams, CID, here in my credentials. Oh, come in, Sergeant. Will you come into the living room? I'll only keep you a moment, Mr. Larkin. I want to speak about the Martin and Davis murders. Yes, yes, of course. Do you happen to have a rifle in your possession, sir? No, I gave all that up when I was discharged. If I never see a weapon again, it'll be too soon. I believe your husband is an ex-serviceman, Mrs. Goodson. Yes, he is. Five years of service, 8th Army, and a general Montgomery. I see. And now tell me, did he by any chance retain any weapon when he left the service? No. Is there any weapon in your house that you know of? Yes, a webby. Oh, really? It, well, frankly, my husband insists we keep it. He's got a nice one for it, but it frightens me after death, just the habit in the house. What with the children around the knower? Oh, Sergeant, are all of us in danger here? Oh, you needn't worry. Don't you have any idea who or what may be behind these dreadful shootings? Nothing, sir. I drew a complete blank. I rather thought you would. Incidentally, pathology found that Davis bullet and ballistic reports it's identical with the one they recovered from Martin's body. Well, whoever he is, he's a fabulous shot, sir. Then he uses a silencer. That's the only explanation I have for the absence of sound. Not very much to go on. Inspector Foster here? This is Mrs. Thomas Larkin, Inspector. My husband and I live on Hemsdale Oval. Yes, Mrs. Larkin. I know. What can I do for you? Well, Mr. Larkin and I have called a meeting at our house for this evening. We hoped you and Sergeant Williams could be with us. What's the purpose of your meeting, Mom? Oh, the entire development is living in fear, Inspector. We want to try to find some way to protect ourselves. We thought you might have some advice to offer. I'm somewhat doubtful about the advice, Mrs. Larkin. But Sergeant Williams and I will be at your meeting. Have you set a time for it as yet? They came that evening to the Larkin living room. Inspector Foster waited in the hallway with the Larkins. Is everyone here, Mr. Larkin? I think so, sir. Mr. Mundin said he'd be over.  Well, he's the only one missing, then. Yes, that's right. How did you reach these people? By telephone? It's not much trouble to do that with all on party lines. I see. Someone's at the back door, Tom. Must be Mundin. I'll get it. Excuse me, Mrs. Larkin. Yes, of course. Go ahead, Inspector. Funny, coming to the back door. I told his wife particularly about the front door and the precaution. No matter. At least I don't believe it will matter. Here we are. Hello, Mundin. Dad, you can make it. Sorry, I'm late, Larkin. I rather thought the back way would present less opportunity for the son and no marksman to it. Ah! Ah! Mundin, good grief at that door, Larkin.  Today, that silencer could be seen here in the Black Museum. In just a moment, we will continue with the Black Museum starring Orson Welle. We continue with the Black Museum. The bullet neatly placed in the back of his head. The silent marksman was another story entirely. Who he was, where he was, why he struck were the unanswered questions which Inspector Foster had to face as he stood before the terror stricken residents of Hempstead Oval. All I can say is that the priests are doing anything and everything to find this killer. And in the meantime, Inspector? I'll answer that. In the meantime, we can all be picked off as my sister was, or Martin, or Mundin. Yes, he's right, Inspector. I, for one, won't leave my children open to the risk of being orphaned or worse. No. Oh, no. Moving away, giving up your homes, won't find a murderer. I am asking you, all of you, to do something quite difficult under present circumstances. I want you to stay here for another few days. Be patient. Remain indoors at night. Stay away from doors and windows. If it's possible to find him, and that is always possible, we'll do it. I promise you this, that the entire machinery of the London. They watched him, the good neighbors of Hempstead Oval with doubt and fear in their eyes. What they did is Inspector Foster asked. They stayed in their homes and waited. The welcome light of morning found the inspector and his sergeant with Tom Larkin in the kitchen of his home.  Just about. Good. Sergeant. Yes, sir? Set up the transit here, where Mundin was standing, when he was hit, and adjusted height to Mr. Larkin. Very good, sir. A surveyor's transit in my kitchen. I don't understand, Inspector. You will shortly. Almost ready, Sergeant? Yes. The men worked quickly, methodically. The transit was set up, the lens of the telescope facing the open back door. Inspector Foster adjusted the eyepiece, and then slowly scanned from lindel to lindel through the open doorway. Back him of the instrument, adjusting it vertically, as well as horizontally, turning the brass thumbs crew carefully, precisely. Steped away from the transit. That seems to be the best possibility, Sergeant. See for yourself. Thank you, sir. Yes, it lines up well. The angle seems to be about right. Shall we have a look at it? Yes. Care to come with us, Larkin? Yes, I will. There's a tree out there with a clear line of fire right through your back door. The distance seems to be about 500 yards. So that's what the transit was for. Exactly. Let's go, shall we? Too bad it's been so dry lately. There might have been footprints. And marks from the tree trunk, sir? Where? Here. Here. Look, there is a strafing on this bark, sir. And if someone in heavy boots had climbed the tree, it's recent, too. You know, for a boost up, Sergeant? Yes, sir. All right, then. Wait, there are more marks up here. There's quite a comfortable perch. Hello, the limb forks here. Scratches on the bark. Could have been a rifle rested here. Very good. Come on down, Sergeant. All right. Inspector, I may have found something over here under this branch. Don't touch anything, Larkin. Right here, look. In the weeds. Looks like a rifle cartridge to me. Boss, the son caught it. Good man. Good eyesight. Take care of that, Sergeant. All right, sir. Once we find the rifle and its owner, that bit of brass may well send him up 13 steps early one morning. Starting from nothing. The facts were coming together one by one in the quiet office at the yard. The boot marks on the tree trunk, Sergeant. They were rather close to the ground. I noticed your first jump was at least two feet higher. Yes, I wasn't carrying a rifle, sir. No, but a man of average weight in good condition would have made markings closer to yours. I'd say this fellow was either very heavy or not exactly young. No past middle age, at least. The beginnings of a description. Either military or hunting experience to be able to shoot like that at night. The beginnings of a background. Whoever it was must have lived in that area for some time to know the position of that tree in relation to Larkin's back door. Started quite house to house check, Williams. The men watch for anyone who fits these points. Yes, sir. Then find me a detailed ordinance map of Hempsterdorvel. The builder or the renting agent will have one. We find one sniper's pouch. I'm curious about the other. Interesting layout, architectureally. According to the contour of the land, the main line of the houses seems to curve around this rise just off-center. It must have been quite a place of the old days. Who were the builders, tell me? An estate, so for taxes. A family named, what was it, a wardman. Old line, the grant went back nearly to the first Queen Elizabeth. That's great. Fascinating. Any more? Yes, quite a talkative fellow. Seems the land was sold on condition that the sole survivor of the family be given a house rent-free for the rest of his life. And this person is still there? Seems to be, an elderly gentleman. He's very much to himself. This is his house here on the end of the main line. I see. Now then, this would be the martin place and this the David. Yeah, that's right, Tim. The martin bedroom and the David's porch face the same way along that curve of the hill. Yes, that's it, Tim. It seems they didn't originally intend to build on the hill, but they've started a new house right here. The fellow sketched it in for me. The demand's been very high. Wouldn't mind living there himself. After we get this killer, eh, Sergeant? Oh, yes, after. Pass me that ruler, will you? All right. Thank you. Here, Williams. The martin window and the David's porch are in direct clear line with the new building. I wonder now. I assume the contractor isn't working his men at night. I wonder now. This is the top floor, Inspector. Hardwood isn't in here, but that floor will take your weight. That's the dormer window you asked about. Look around, will you, Sergeant? Very good, sir. About the progress of this building. Yes, sir. How long has this top floor been in this half-finished state? About a fortnight, sir. Crazy is it due into this week. Carpenters will get the flooring right after that. Anyone here at night? Yes, there's a watchman for the old development. One of these stations is just across the road. You can see it through the window. Yeah. I see it. I have them, sir. Here. They were lying along the wall under the window. Now, old do this. Ten punny nails in the window shelf. Someone will catch it for this. No doubt someone will. Someone put those nails in to help steady a rifle. The same someone who left those two brass cottage cases behind him. How do you catch a killer who strikes silently in the darkness? How do you match his craftiness? Perhaps you say to Tom Larkin. That may be dangerous, Larkin. Will you cooperate? Well, I've been under fire before now, Inspector. Very well. Now, then, I believe someone told me the telephones hereabouts are on party line. A telephone call is made on the party line. I want to talk to you, Goodman, about this killer. I think I know who it is. I'll walk over in half hour with a friend of mine, and I'm picking up Sid Davis on the way. No mention, of course, that the friend is Sergeant William C. I.D. who will walk alongside Tom Larkin, staying between him and the new house on the hill. No mention of the inspector crouched on the hillside in the dark shadow of the half-built house. Sorry, you are certain the men know the orders, Mason? Yes, sir. They've anyone into the cordon, but no one gets out, except the watchman. Very good. Now, let's see. Yes. Time Williams and Larkin was starting on the walk. Let me have the glasses, Mason. Through the night glasses, the inspector watched. Almost half a mile away, two men left the Larkin house, started slowly along the road on the hillside. The shadow slipped quietly toward the half-finished house. The inspector whispered, hear that? Not a sound now. Unsuspecting, the shadow moved through the line of police past the hidden inspector, into the building. Come along, Mason. He's gone into the house. Into the empty building, empty, except for a killer, climbing steadily, no lights, only the vague outline of the unpainted banister, and the clean smell of new wood. Suddenly, the footsteps of head stop. The inspector and his companion pause at the head of the stairway. The glassless window shows the night sky, right with stars. A black shadow kneels at the sill, places a long heavy object between the two attend any nails. All right, Mason. Take him. All right, sir. No. No. No, please don't take me. No. I have a right here, better than anyone. I have a right. You'll be in charge for murder.  Never mind, Mason. He doesn't understand. Yes, sir. You're Philip Wardman, aren't you? I am. Oh, you. You seem to be a gentleman. My name is Foster. Why are you here in this empty building, Mr. Wardman? I have a right. This is my land. My family's land. They told me when I sold it for the money I could go on living here. The old houses brought strangers and driving them out and hunting them out as I hunted in Africa. And you were a boy. That's my right. I came to live on my land. Christmas is there's a law. There's a law, too, Mr. Wardman, about rifles like this and silencers. Silencers. I'm a good shot, eh? Pick them up like quail. And it is silencer. Supposed to spoil the accuracy of a rifle. But not mine. I'm good on trophies when I'm younger. I never knew. I never knew. Oh, I suppose you take them downstairs.  And today that silencer can be seen in its place here in the Black Museum. Orson Wells will be back with you in just a moment. Orson Wells. It's true, of course, that in many countries men have loved their land to the point of desperation. Philip Wardman loved his to the point of madness and murder. Rifle belonged to his grandson, a veteran living far away in Canada, where the old man bought the silencer, was never learned. A secret of that went with Philip Wardman to the place where his bitter lonely life drew to its close. The silencer itself remains in its usual place in the Black Museum. Now, to we next time, I'll tell you another story about the Black Museum. I remain as old as obediently yours.


on of delay. Adam, you have some questions. Thank you, convener. I could ask some questions about the arrangements for inspection at the bridge. How is the contract inspect the fourth road bridge that has been managed and paid for? Is it a lump-sum payment to carry out a pre-defined series of inspections that were not quite clear on the inspection regime as is now? I will say one thing about the inspection regime and then I will ask Wayne to give you more detail. The current inspection regime is very much what was inherited from FETA. That is informed by the very construction of the fourth road bridge and learning over a number of years, and international learning as well. The level of inspections that was inherited, and it is a live document of the bridge manual itself. It is the history of the bridge. It is the on-going nature of it. The inspections were inherited. I am sure that it has been explained how the fault was identified on inspection and the regime that was inherited. It is fair to say now that, with even more understanding of the bridge and the new monitoring equipment, that will add to the inspection regime. It is even more robust with the new technology that we have on the bridge with that deeper understanding. That is some confidence around the inspection regime. That fault had only occurred within weeks and was identified. Then we moved on to the remedial work and repairs. There is the more forensic inspection. I think that this is important for the committee to learn. We have taken the opportunity during the bridge closure to do a painstaking thorough investigation of the bridge. There are no new substantial defects, no substantial faults. There are some smaller issues that get picked up in the address as a matter, of course. However, we took the opportunity of the full bridge closure to carry out a more comprehensive inspection in any event, in addition to the already programmed inspections. Wayne can say a bit more about the payment regime between operating company and Government. The bridge inspections, just to put it into context, have continued under Amy, using the same staff and the same procedures that were developed, tried and tested and used by FETTA. All the bridge inspections, well, we know about the two pair arrangements. Everyone went over. I understand that one of the inspectors has retired just due to the natural course of things, but, apart from that, it is the same staff. The fourth road bridge inspections are undertaken in accordance with the fourth road bridge engineering manual, which I touched upon earlier. That has been updated and developed over the years to reflect best practice. I think that that has been stead before, so I will not say it again. It is a live document. The process is kept under constant review to ensure that it aligns with best practice. To put you in the picture, during the development of the fourth bridge unit contract, the people that developed the contract for us are a company that we are now called CH2M. They were called CH2M Hill or Halkrow, you may have heard of, and they engaged one of the country's foremost bridge specialists, Flinton Neil. It was a Neil McFadden, who is one of their senior staff, to do a review of the fourth road bridge engineering manual to give us the confidence as Scottish Government and Transport Scotland represented Scottish Government that what was in that manual reflected best practice. There are a number of high-level consultants you have heard of, but Flinton Neil, for whom one of your independent experts, John Evans, was a former senior partner, are recognised as a world leader in this event and have experience on a number of these types of bridges around the world, mainly Severn, but also Westgate in Melbourne. To put it simply, there were very few changes made, but it brought to my staff's attention what needed to be done. I will not talk any more about the generalities of the inspection manuals, but the very simple answer is, in line with our other operating companies, the inspections, those predefined inspections that are well specified, well defined and well laid down for the fourth bridges operating companies are paid for as a series of monthly lump sums. Any additional inspections that arise out of that or special inspections that arise out of that are paid for separately, usually out of the term that we call professional service rates, or if we need to bring in an outside expert at the costs associated with bringing in that outside expert. It is not the case that, if we find something during inspections, we expect Amy to absorb those costs within that lump sum. If we need to go out and do well testing, or if we need to bring a company-in-like strain stall, as we did, to assist, or whomever, that is paid for in addition. Part of our budget is set aside to do that, and we tend always to have an on-going series of, I will call them special investigations, that arise out of the principle and general inspection programme, the tackling issues that occur there. I hope that that is helpful. You mentioned that best practice is constantly evolving and, presumably, standards reflect that. I think that somebody mentioned earlier on that all over the world people will be looking at pins and their suspension bridges now. However, how are all those developments as they happen? How are they incorporated in the inspection regime going forward? Whilst it is a live document, there are opportunities to introduce changes through the contract-to-contract change mechanism. If anything substantial would have come forward that we felt needed introducing today, tomorrow, that would be done. However, as I have explained, as part of the development of the contract, a full review has taken place. Within a couple of years' time, as part of the development of the next phase of the contract, the same process will be gone through. It is formally and contractually, but that is not strictly true. Feta, as a Rhodes authority at the time, was responsible for setting its own inspection standards. Clearly, it reflected the best practice developed over the years by the Department for Transport and its long-spam structures around Britain, and it sat on a number of what you might call national, international and UK forums. Transport Scotland, myself and my immediate colleagues below me, I and they sit on a number of UK forums to review, share, disseminate and collaborate on developments of best practice, the key ones of which, and Feta sat on these groups, and I know Barry Colford very well from this. The UK Rhodes liaison group was sat upon by Roy Brannan for a number of years, and now Donald Morrison. I sit on the bridge owners forum, the UK bridges board, the Scots bridges group. I am a member of IABSI, which is the international association of bridge and structural engineering. Part of my task is to review, absorb, and determine and discuss with Roy and the other senior managers if things are arising in the industry that we need to take cognisance of to build into our contracts. We also now sit on the long-spam bridges group, which is a UK forum of which Barry was a member, and that is Seven, Humber, Tamar, Dartford. You must understand, as well, that Transport Scotland is a Scottish trunk road authority. It is the overseeing organisation for all structural standards and design approvals on all trunk roads in the whole of Scotland. Given that that is a key part of our work, a key part of my section's work is to keep up to date on what is going on on these UK organisations. It can be a bit of a Sisyphus task at times, pushing the stone uphill all the time, but it is a key part of what we do. Individual engineers within my section have individual portfolios for which they are the point of contact and are responsible for, whether it is bridge strike prevention group, concrete bridge development, which Dr Hazel MacDonald sits on, the recent ongoing work on BIM, building information modelling, which is a department for transport initiative to take us all forward. You have seen the flowering results of that through Amy of some of their beautiful schematics and computer-generated graphics. Another key piece of work that we are working on is deterioration modelling. Another one after some tunnel collapses is safety critical fixings and the key one that has been implemented this year is the new bridge inspector competency course to train future bridge inspections. We have a role at the heart of these organisations and it does not necessarily make us experts, it just means that we are better informed than most. I just want to say that, as well as that, all the expertise and understanding about the bridge was seamlessly transferred over from FETA to Amy. Within that expertise, within Government and Transport Scotland, we did rely on Amy as well on the international connections to be able to execute the repairs in the way that we have been able to do as well, because it is clearly a big organisation in part of a bigger organisation. That resilience, that shared understanding, I think, has also helped to be fair. We had some of the best people in the world, as far as I am concerned, in forming our thinking on the repair and the modelling. Also rest assured that the understanding is documented, so it is not just with individuals that it is there on record to understand the behaviour, as it is described, of the bridge. Of course, there are comparisons that I made around the world. Interestingly, we are not aware of any similar fall with the mechanism that could have alerted us to this happening on the fourth road bridge. I would just like to add to what the minister said. It is a matter of interest that Barry Colford, in his latest venture, is working on a structure called the Walt Whitman bridge in North America, which has a truss-end link system on it. I am not aware that they have problems with that. They are not common, because they vary on the bridge type, but they are not unknown. I am reassured that Transport Scotland is on the ball, but we have also heard throughout this whole inquiry about structural health monitoring and various bits of kit that can be used nowadays to monitor the performance of elements of the bridge on-going. I think that I was correct in hearing that we have spent a million to a million and a half on monitoring the pins now, the eight pin joints. Is that correct? Is there anything more that any other information you can provide on this? Do you intend to install any more equipment on the bridge going forward, or is that sufficient? I think that where we are at the moment is having more technology on the bridge than ever before. Some of its latest technology is designed for what was identified as the issues on the fourth-road bridge. In terms of what has been installed, it includes sensors, strain gauges, tiltmeters, temperature gauges, fibre optic lines, electrical feeds and data acquisition units to ensure that we have the best information. What is testing the stress limits on the bridge? That is what informed the decisions as to what traffic we could allow over working with the modelling. There is the modelling of what is happening in the bridge, then there is the actual live load testing, where we were able to run gritters over the bridge. You can do modelling, then you can do the live testing. Through the monitoring equipment that we have, Mr Ingram, we can see the impact that is having on the behaviour of the bridge, as well as the other indicators. Humans are actually quite important, too. The inspections are important because some of that is not just about the high technology, but about actual visual inspection, even noise and what can be seen. We will continue to use the range of different methods to inspect the bridge, but with even more technology on it, we will have a deeper understanding of the behaviour of the bridge and I think that new equipment has been helpful. It is what has given us the confidence to assess what can be allowed over the bridge, which right now is fully operational and we can know in good time what the stresses are on the individual members. When looking at what was the fault, what was the crack, metallurgists have suggested that it was fatigue, and the stress on the member can now be assessed by this equipment. That is more information than we would have had before in light of what has happened. Before that, it was unforeseeable, but knowing the history and what has happened, we have more technology and we have put in precautionary repairs and strengthened the bridge in a way that you would expect us to. There are no further plans for any additional equipment, but each piece of equipment has been appropriate to the issue and the circumstances. I recall a statement to Parliament on the answer to a question around the dehumidification system and the acoustic monitoring, which was because of the concern around the cables at the time. It just shows that we are responding to each issue. We will try to predict, but I am not mystic meg. I do not have a crystal ball. I do not know what the unforeseen is, but we will certainly do what we can to predict and to prepare and to have the contingencies in place, but that is substantial investment. I would also like to add in terms of lessons learned from Mr Ingram, in terms of new technology. Mr Johnston, in terms of wider lessons learned, I think that it is now reasonable to say what level of equipment would we have on the Queensferry crossing to understand the behaviour of that bridge as well. I think that it is very helpful for us now to have that expertise that has been established and we will commit to that in the Queensferry crossing. The Queensferry crossing will be the first bridge in the UK with a SHM built in from scratch, so it has heavily instrumented new control room built into the federal offices to allow that to be monitored remotely. I apologise if you would like me not to say this, but you did ask the question about what we are doing in the future, and the minister answered very good. However, I have asked for a feasibility study here to look and review and to assess and give advice on future locations and next locations on a bridge, where funding permitting and depending on what the structural health monitoring will tell us, where we can install strain gauges, tilt meters and measurements, and some of these remote monitoring locations may perhaps be the expansion joints and divide-up movement joints, so that we can get an accurate record of just exactly what they are doing during the day and the night. However, the point that I think also needs making is that we also have quite a lot of structural health monitoring on the bridge. It has been said by others that we have got acoustic monitoring of the cables, dehumidification, geospatial sensors on the bridge, monitored remotely from Nottingham University that are telling us that it is moving four and a half metres up and down and seven and a half metres laterally, which came as a surprise to some of us, but it is, and the plots are very interesting. However, there was a very valuable point made by Barry Colford, and whilst he did not say that visual inspection remains our primary method of inspecting things and the ability to put your fingernail into a crack and get up close and personal, we have to be careful with structural health monitoring that it is a very new thing that we do not end up with data overload whereby we have a great deal of information coming at us and no idea what to do with it, so we will be in learning mode for quite a while. Right. That was a fairly comprehensive answer to my question. Ministers know Donald Rumsfeld then with his no-none, no-none, no-none, no-none, no-none. Now, I am no doubt relieved of that. I will pass now. Michael O'Mae. Most people do not refer to me as questions to Michael O'Mae but as Mike O'Mae. I was spared the name tag. Just before we leave this fascinating discussion about structural health monitoring, can I ask Minister if there was any consideration given for this ond oedd dwygen i'r williamhau sydd wedi'u glwstwil iawn o'r llwyffordd o'r brwyng o'r hollu llwyffordd o'r hollu llwyffordd o'r hollu llwyffordd o'r hollu llwyffordd o'r hollu llwyffordd o'r hollwllwil I'm not aware of any discussion to that effect because the concerns were around other parts of the bridge like the cables, as I've discussed and there we had the acoustic monitoring or where there was an identified problem was at the bracket and there was I was an identified programme of works to take that forward so I'm not aware of any, I'm not aware of any previous discussion on installing these mechanisms. Bear in mind that some of this technology has been made to measure for the fourth road bridge in light of incidents and that's appropriate. Thank you. I think that we've covered that pretty exhaustively in that subject. Mr Colford explained to the committee that when he was the bridge master, he was a member of the international cable supported bridge operators association and therefore he was able to learn from good practice across the world. I wonder if there's any continuing arrangement whereby that good practice from across the world could be tapped into? Yes, we're still involved and as Wayne quite exhaustively describes the local, regional, national and international forums in terms of intelligence on bridge structures so there's still that deep understanding, yes. Incidentally, just for completeness, bridge masters still do talk to each other and share that expertise so that's very helpful too. Thank you. And we'd heard in the course of the inquiry that the Humber bridge has a maintenance regime that's based on a 60 year plan. Given that there's a, you know, there will be a reduction in the traffic utilising this bridge when the new bridge opens, what's the expected continuing lifespan of this bridge? Ongoing strong maintenance of the bridge, you can see the bridge continue as long as we want. Essentially, if you keep reinvesting in it, if you keep maintaining it and replacing it as required, the bridge can continue for the timescale that we want as long as you keep maintaining it and investing in it. Previous lifespans have been issued between 50 and 70 years but these are all estimates. If you keep investing in it, renewing it, maintaining it, it can last as long as we want, is the advice that I've been given. Thank you. I'm just moving on to a slightly different subject. We've heard a lot in the course of the inquiry about the disruptive effect of the bridge closure and so on. Has there been any upside to that at all in terms of commuter behaviour or whatever? We obviously want modal shift from the car into public transport. I, as transport minister, would particularly want to encourage that. In our travel plan, during the period of closure, we saw a clear shift into public transport, which is welcomed. More so rail than in bus actually, even though there was a bus priority lane as well as the goods priority lane as well. However, there was certainly far more use of public transport. That's welcomed. There was extra rolling stock provided to the area and enhanced staffing at public transport points. One of the advantages, just as a walk for, was an earlier train put on in the morning. ScotRail has maintained that service because it's turned out to have on-going demand. There's a public transport benefit, which is welcomed. It encouraged a lot of people to use public transport, who maybe weren't using it before. If we want to achieve modal shift, people need to get out of their cars and into public transport. I do appreciate the forbearance and the patience of the public and businesses in the local area during the period of disruption. However, yes, there were public transport benefits such as now an improved rail timetable. More people were used to using public transport. We are actually undertaking an evaluation exercise. It won't be in time for the committee, I don't think. It's not central to your inquiry in any event, but an understanding of how people responded themselves to disruption. I'm happy to share that if the committee is interested in how people responded to disruption. For example, how they got to work in use of public transport, but it showed a significant shift during the period and there are on-going benefits. That sounds interesting. My final question now, convener. When we heard from the panel of independent experts, there were lavish in their praise for the whole bridge team and everybody involved in this process in terms of getting the problem identified and remedial action undertaken very quickly indeed. I think that you yourself, minister, have had a very hands-on involvement in the whole process and you touched on the initial decision, but could you perhaps describe for the committee what your involvement has been as the story is unfolded and come to the happy conclusion that it has? I think that it's fair to say that transport ministers have a very particular experience during winter. This was unforeseen but quite intense. I think that when we looked at the record over 20 ministerial calls or engagements. Of course, I'm sometimes including Cabinet Secretary, First Minister, Deputy First Minister, with lead responsibility and resilience. A number of site visits and very frequent reports to make sure that we were on top of this issue. I was left under no illusion that the priority was to ensure public safety but to get the bridge reopened as quickly as possible and that's where all the energies have been. We've also taken advantage, in a sense, of the closure. We've accelerated. That's why I was somewhat thrown by a question of delay. We've supported works to the Queensferry crossing that have taken place with less disruption because they've taken place during the fourth road bridge closure and works associated with the fourth road bridge themselves, such as the carriageways and other works that might have required future disruption. Actually, we tried to do as much as we could during the closure, whilst fixing the bridge because the bridge was closed. I remember repeated calls, can we not let pedestrians and cyclists across the fourth road bridge during closure? As much as we would have liked to have done that, we couldn't compromise public safety because it was a live work site and there are issues that you understand about the fall on the bridge. The positives are that there are always lessons to be learned. We upscaled the contingency plans. There was strengthened public transport. There is now more monitoring equipment on the fourth road bridge with better understanding and even better understanding of its behaviour. I had a degree of vindication that building the new Queensferry crossing was the right thing to do. It is a substantial contingency for the fourth road bridge and vice versa. There are choices for the future on the role of the fourth road bridge. It was in the act what its use would be. It could be for a future Government to consider looking at what its role should be. Queensferry crossing was to be a replacement bridge but there might be options for the future of the fourth road bridge as well maintained. I am happy to write to the committee convener with the extra works that we were able to undertake to give that sense of what we were able to do during the period of closure that makes my point go into the detail around carriageway improvement, landscaping, work, structural. I think that is what I was alluding to later on. Rather than being a delay in no sense caused delay, it was acceleration and much better timing of the works, which reduced the need for further disruption or closure or anything else. We thought that it was fit and appropriate to do that whilst repairing the bridge where clearly was our number one priority. I thank Mike McKenzie for his praise but the people who deserve the praise are the staff who worked in all weathers to repair the bridge. They knew that this was a priority for Scotland, not just for the Scottish Government. I would like to thank them all. I am aware that we have had a very comprehensive session, but do members have any final closing questions? Is there anything further that you would like to say, Minister? I think that I have covered my answers as fully as I possibly can, but there will be that information that you requested coming this afternoon by way of engagement. If you require anything else, please raise it with me because I think that it is important in this issue. As I said throughout the bridge closure, when engineers and experts were exposed to Parliament, everyone would be filled with confidence that the Government and our agencies interventions have been right, proportionate, appropriate, putting public safety first and working to repair the bridge as quickly as possible. I think that we are left in a much stronger position as a result. On behalf of the committee, I thank you for your commitment and for your comprehensive evidence this morning and willingness to engage in a constructive and positive way with the committee. I particularly thank Transport Scotland officials for their experience and expertise in making that available to the committee, not just today but throughout this inquiry. On that note of thanks, I suspend briefly to allow the witnesses to leave the room. The committee will now consider any issues that it wishes to raise in reporting to the Parliament on the instruments. Members should note that no motions to annul have been received in relation to the instruments, and I invite comments from members. There are no comments from members. Has the committee agreed that it does not wish to make any recommendation in relation to the instruments? We are agreed. That is agreed. I now move the meeting into private session.