Hey guys Thunder E here and today we got to see the Surface laptop studio This is an all-new Surface device from Microsoft and we're going to see a ton of new upgrades to the Surface line as well As well as the Surface Duo So if you want to see the Surface Duo video Subscribe to the channel and of course check out that video. I'll leave a link for you right up there So the Surface laptop studio is unique and different now Microsoft been doing awesome changes with the Surface line over the years And this is a traditional looking laptop that has a tilt display that has this free hanging hinge Which is absolutely amazing now. This is a 14.4 inch display that feels like a 13 inch But also looks like a 15. It's very unique from fact overall now The cool thing is of course you can put it in lap in traditional laptop mode, which is nice You can also tilt this display forward and you can also have it in its studio mode where you can watch content You can play your games on Xbox game pass if you want to and you can also put it in of course I like to call it artist mode where you can put use the Surface Slim Pen to to start drawing now Speaking of the Slim Pen 2 it docks right underneath the device and it charges right there And also can charge directly very USB type C. It's a really unique pen It's got 4096 points of touch. It's got vibration feedback So while you're drawing and sketching and etching on this device you can do much more Now what is under the hood? This is powered by Intel's 11-gen processor You can then get in an i5 or an i7 variant and you can go up to an RTX 3050 Ti Which is great and it also come with 16 or 32 gigabytes of RAM So you've got enough to actually do the things you want to do especially whether you're editing or You know you're doing some rendering and stuff like that. I think this will work out pretty well now as with Surface devices This comes with of course the traditional Surface Adapter plug, but it also comes with two Thunderbolt ports Thunderbolt 4 ports Which is fantastic you can connect to two displays if you want to you can charge all that fun stuff now going back to that display It's a 120 Hertz display. So you've got 420 Hertz, which means Honestly while you're sketching and drawing is great while you're gaming. That's even better So there's a lot you can do with this device weight-wise. It's under four pounds, but it feels lighter than that honestly I really like the feel of this device altogether and it's starting price is 1599 which is also pretty unique now in terms of charging though It comes with a 65 watt charger for the core i5 variant and a hundred and two watt charger for the core i7 variant and Honestly, this is a laptop you can take with you anywhere and do a lot of things you want to do So of course you can put it in laptop mode You can put it in stage mode and you put in studio mode to either of course use of the laptop watch content Play your games or even of course use it as a creator to draw edit and do whatever you want to do now Microsoft did also announce other Surface devices like a Surface Pro 8 which is updated comes with a 120 Hertz display as well Two Thunderbolt ports and of course a new design very slick very slim thinner bezels Just have the arch and terror Keyboard at that houses of course the slim pen too and then of course there is a new surface Surface go so altogether microsoft has some new surface devices for you to check out I'm excited to see all of them and let me know what you want me to cover with the Surface laptop studio What do you want to see some gaming? Do you want to see some creativity and productivity productivity work? Leave your thoughts down below and also check out the surface duo to video. This is thunder easy. Thank you and always enjoy your entertainment


All right, this is awesome. I don't know if I knew how well produced this conference was going to be, but it's amazing. All the organizers are doing an awesome job, and I'm super excited to be here. I am another Aaron, but on the internet in most places, I go by AQ. I actually started doing this when I was like 13 years old, because there were a lot of Aaron's. And AQ was original. And actually, recently I found out there's a rapper in Nigeria named AQ. And he has to be the real AQ on Twitter. So something about that makes me really happy. Some of you might know me from my podcast that I host with my good best buddy, Michael Bernstein. It's called Beats Rye Types. It's about music, food, and programming, which are three obsessions. We actually end up talking about a lot of other stuff. We actually had Tenderlove, Aaron, on a couple of weeks ago. And it was a really good show. Also, I'm hosting this event with some friends. I'm also from Kingston, New York. My house was actually burned down. I wasn't living in it, but my house was burned down in 1777 when the British burned Kingston. So I have a tie to those crazy Brits burning my house down. But I'm hosting this cool event that's kind of a retreat. I don't know how many of you will come all the way from Spain to here, but I came all the way here, so come on. I also have been doing, I worked for a long time at startups and doing stuff, and now I'm doing some consulting. So feel free to hit me up about that. Also, I have a friend, and this friend would like to figure out how to smuggle a leg of ham back to the America. If anyone has tips about that, let me know. OK, anyway, on to the actual meat of the talk pun intended. So these days, I think there was a lot of good setup for this, actually. These days, we talk a lot about inter-app communication and how we're communicating between the many different applications that we have. And this can sometimes mean browsers and clients, but can also mean apps within our infrastructure. There has been many, many, many talks over the last couple of years at Ruby Conferences and beyond about microservices and service-oriented architecture and all of this stuff, because we wrote a lot of applications, and they continued to grow. And eventually, we hit a wall and realized that maybe it's hard to work in this way. But actually, this whole microservices trend, I don't know how much weight I want to put into it, services as a whole have been around for a really long time. They might not have to be micro, but services as a whole have been around for a really long time. And there's really good ideas behind services in general. And I personally am not going to tell you to go out there and split every single piece of your code into completely different microservices and running on Docker. But I think extracting parts of our application into individual other applications and having those service boundaries, no matter what side of this debate you fall on, is a good practice. Like, I think we can all agree on that. So I'm going to talk a little bit. Because now we're splitting things up and talking about how we're going to do this, there has to be a lot of talk about how we do communication between these different applications. So I want to introduce some terms so that when I get into this conversation, we can talk about, no, we're talking about the same thing. So in this case, I'm going to be talking about protocols. And when I talk about protocols, I mean the transportation mechanism for delivering information from one application to another. So in this case, we're talking about two applications. There may be two Ruby applications. They might be in two different languages. But the protocol is the means of communicating back and forth. Then we talk about format. So in this case, I'm really talking about serialization format. I'm talking about how we take that data and package it down into something that can be understood by both sides. And this isn't the means of the communication, but it's the means of how we're structuring the data between these. And usually when we talk about these two things, we phrase it in format over protocol. So this means it's the shape of the data and then how it's delivered. So usually the most common one that we've fallen into in the Rails and Ruby communities is JSON over HTTP. And this works, but it came from an evolution of different data formats and protocols. And I want to talk a little bit about that. And that works for the browser-client relationship, but it might not work for our browser-server relationship, but it might not work for as well if you have two completely backend applications that are communicating to each other. So before the internet, I just love this photograph, so I had to show it. So this is a woman and I couldn't find her name, but she, this is like the original, all of the code for an original military protocol is in those punch cards. I think it was five megabytes of data. So this is what five megabytes of data looked like in 1956. And so the format was these punch cards and the protocol was sneaker net. It was literally walking these punch cards from one machine to another. Then we moved on. Obviously there's a lot of stuff in between here, but I'm moving quickly. We moved to XML over HTTP. This is in the 90s if you worked on the internet and you worked in applications. Chances are you wrote some XML. And I mean beyond HTML, you wrote some kind of XML, whether it was soap formatted or something, you worked in it. We can all cry on each other's shoulders later at the party about all those years we spent doing that. This was also the best, most awesome image I could find for internet superhighway. How awesome is that? It's so cool. So around now, now we move to JSON over HTTP. Like this is kind of the format. I also, not only as a rapper in Nigeria named AQ, there's a Christian rapper in Iowa named, or in St. Louis named Jason. Who knew? So if you Google Jason, you'll find this guy. I'm into hip hop music, but I couldn't get into his music. I'm sorry, but I do like, I love this one. So for some reason, whatever it is, we started, we moved on to doing JSON over HTTP for pretty much everything. This became the de facto standard for a lot of what we do and we kind of defaulted to that and a lot of applications, you know, I don't even have to have a show of hands because I guarantee everyone's gonna raise their hand, have written a JSON service that communicates over the HTTP protocol. And, you know, there are some reasons for this, but we, it's been a while I think in the Ruby community, especially, since we reevaluated if this was really the best, ultimate best thing we could possibly do. The default response of why we chose it is because it's easy, it's a lot easier than what came before it. But if we break it down, there's some more details about that. One, a lot of people say, a big one that people say, is it's human readable and writeable? Well, certain humans can read it and write it, probably a lot of people in this room, but if you actually didn't have your, like, JSON display formatter for your browser, is it really human readable? I don't know. I mean, it's English or Spanish, it's words, it's not binary, but it's still not exactly the easiest thing to parse. A really big thing is, especially in the past couple years, there are literally every language now, if you have writing a new language, it has to ship with a JSON library for it. It just, it has to be. And literally every language uses it, so if you're communicating over multiple languages, maybe this is a good idea. It's pretty fast to parse and read because it's plain text. It does have a few explicit types, which is nice. There's strings, you can have true and false liens, you can have actual numbers and floats. And probably the main thing when everyone jumped here, wasn't just because JavaScript was becoming popular, that was part of it, but a lot of it was just because compared to our recent forays into writing and reading XML, this just seemed like this breath of fresh air. Everything was so small and compact and easy to use. But the problem, probably the biggest problem with JSON is it's easy at first. And this is kind of a parallel to the problem of writing a Rails application and putting all of your code in a Rails application is easy at first because they always start small. So your typical JSON, you have your ID and your title. Okay, you know, you're communicating with your product team. Now we have to add an author. Okay, now we have to nest the author because we need a bunch of more information and we wanna nest some favorites in there and then, okay, and now the favorites also have to have users nested in them. Everyone has seen this story. If you've written a Rails application, you've done this pretty much.  That's just what's gonna happen. So that's why I call it the bag of glass. And what we actually want here, if we like step back and think about it, is we actually want something that works well in many languages. We want something that's relatively fast. We want something that's compact, especially if we're doing interact communication over just the network. We want things on the network to be relatively small. That's probably gonna be one of our primary concerns. In an ideal world, it would be awesome if we could have something that actually had types like beyond just strings and numbers. And most importantly, I think from my perspective, as I developed this app and worked on a bunch of apps over time, I wanted something that actually handled change and thought about change in an interesting manner, like or at least thought about it at all. I don't think Douglas Crockford, who kind of coined Jason and wrote the specification, ever thought about how we would use it the way people use it today. So what if I told you that this already exists, that there is a format that does this already and it's from Google and it's called Protocol Buffers. So Brian already said that all great things come out of Google and it's true. This is pretty amazing. I think a lot of people are scared about Protocol Buffers because the name sounds really scary. That's one of the reasons. I'd say probably 50% of people, also the documentation is pretty horrible. Google is great at writing code. They're pretty good at writing documentation, but at least for Ruby, it's a big leap to get into. How many people have heard or used of Protocol Buffers? Okay, so a couple people, but most of the audience, which is great, perfect. So the rest of you can ignore the rest of the talk. So there are a couple of people here who probably actually work at Google and could probably tell me, tell you guys better than myself since I have never worked inside of Google, but Protocol Buffers came out of Google because of these explicit reasons that I was just mentioning. They wanted a format that handled change well and Google is built on this big platform of services. I won't say microservices, but services. There are lots of different applications talking to each other and they're all doing some form of RPC and they needed a way to handle the change between these services because not only were these different apps, but there are usually different teams working on those apps and they worked in different ways. So they created Protocol Buffers and there's some really good talk on their site about why because they basically wanted to get rid of all the if statements in their code that said, if version equals one do this, if version equals two do this. And I'll show you how Protocol Buffers handled that in a second. But basically it's become, they say it's the lingua franca inside of Google for data formats and there are something like 48,000 different Protocol Buffer message types defined in the Google code tree, which is pretty insane. Recently, and I should say this isn't just for inter app communication inside of applications too, Google and other developers are using this. I've been working a lot recently inside of the Chromium project and Chrome itself. And inside of Chrome, when you're booting up that browser, each tab in that browser boots up a separate process on your machine. And if you've ever looked at Task Manager or something like that, you've probably noticed that. And the way Chromium and Chrome handles those messages between the different processes in your Chrome application is serializing messages into Protocol Buffers. So that's pretty cool. You're already using Protocol Buffers today even if you didn't know it. So what is actually a Protocol Buffer? What does it mean? How does it work? What does it look like? So the general idea is a little different than what you're kind of used to with JSON. But the end result is pretty much the same. Instead of defining or not defining at all how you parse or read formats because JSON could just be a bucket of data, you have to define a schema, basically, for that data a lot like the way you would define a schema for a database table. So the schema is this format, a unique format from Google called the dot proto format. And the dot proto format looks like this. You define these different types. And those types have different attributes or keys. And those keys have their own types, like defined types, just like I was saying, like there's integers, there's strings. And then what you do is you actually run some code that generates the code for the language that you wanna communicate in. So you don't actually even have to write the part reading and parsing code or encoding code. You run this Prodoxy thing with a Ruby out or in my example or where I'm gonna be talking about the Go programming language because that's where I use this primarily. You get these pb.rb files for each of those different types. And in Go you get this one app.pb.go, which are actually, in Ruby, a lot of this, the packages do a lot of this through metaprogramming and defining methods at runtime. But in Go, obviously, it's a compiled language. You have to actually define all the getters and setters for all these different attributes on types. But you don't actually have to do it by hand. You just write this format and the generator does it for you. And we should all be used to generators. We use generators all the time. If you're a Rails developer, this isn't that scary. I've heard people complain about it because, oh, I don't wanna use generated code, but you're already using, if you do Rails new, you're using generated code. So these are two examples. So the top is what it looks like in Ruby to encode and decode and a protocol buffer for this image type and on the bottom is what it looks like in Go. And you'll notice that the names of things are a little different in Go. It's marshaling and in Ruby it's encode, decode, but literally it's doing the exact same thing. Those two examples are actually doing the exact same thing and you can see that they're doing it on either side of this, potentially on either side of a protocol that we're sending this information back and forth on. The only difference really in Go is you also have to do a lot of explicit error handling, which is nice too. So just to go through what the proto format does a little more in detail, you have these explicit types. You have, this is actually the key thing that I didn't mention and we'll talk about now, but the way backwards compatibility and the reason it works in protocol buffers, it's the simplest thing that could possibly work is how the way Google describes it. They came up with this idea that each attribute gets this ID tag or they call it a tag or a field num. There's a lot of different names for it but basically it's just this number on the end and that number, the only rule is that number has to be unique and there are like 10 numbers that you can't use in the 10,000 range. It has to be unique and if you remove a field you can't reuse that number. That's it and you can't, so if you think about that it's a really simple way to make backwards compatibility work because basically I can continue to add fields in here and if I regenerate my Ruby side but not my Go side basically what will happen is Ruby will know about those fields but Go won't. They just won't know about it and it'll just throw it out because it basically parses down to these ID numbers as opposed to actual names. And then on the other side if I remove fields like let's say I removed the file name requirement from image, basically what would happen if someone sent a field that was numbered seven and was a file name it would, on the other side didn't know about it or didn't have that it would just throw it out and that's it and you just keep moving forward and evolving this format without having to update both sides at the same time which is really, really powerful when you're writing real apps. You can also have repeated fields and another really important thing when we were talking about that JSON that had this deep structure you can do deeply nested types in these protocol buffer formats too so you can see here request inside of it there's an image type and I'm sending that image but image in and of itself is a type. And finally you can say things are optional or acquired though this is gonna change a little bit in future versions of protocol buffers. So I did a little benchmark of the different serialization formats and the different libraries. I didn't do all of them these were just some common ones and how long it took to encode and decode. You don't have to really look and know all these numbers but if you're interested in looking at the actual source of this it's on GitHub. But the interesting thing here is you can see that encoding and decoding for protocol buffers are a little slower in Ruby and the reason for this or one of the main reasons for this is actually I kind of had to fake it here because if I didn't actually turn the Yajel or JSON stuff into actual objects it was extremely fast but that's kind of a lie because we're not just gonna pass around hashes everywhere or maybe we would but that would be crazy. So the big thing is that I didn't kind of mention here is that when I have an image in Ruby that image is an image object. It's not a hash of values. It's an image object with methods and attributes that match my thing. So I can actually pass around this object. I can add additional methods to it, whatever I want to do because it's Ruby's same thing in the go side. So it's interesting. The only thing to mention here is that it is a little bit slower on the encoding and decoding and that's because Ruby's handling of binary I think is the primary reason that it's not as fast or great as other languages and that's kind of BS because Yajel is C so it's really just C doing it but the most important thing here is if you look up at the top and Beefcake is a Ruby library for protocol buffers and so is ProtoBuff, they're two separate libraries. The encoded type, this is a really simple hash of like six values. The encoded type is half the size of the JSON one. So maybe it takes a little longer to encode and decode but if you're doing a lot of network IO and sending messages back and forth maybe actually the concern is how tightly it can pack on the wire. So there's some clear wins. A big one is there's a centralized schema and a lot of people are gonna say there's some cool projects in JSON to do JSON schemas like there's one called JSON schema and there are a bunch of other ones that have emerged and they're good but there's no, it's hard to force it basically. This is an explicit schema, there's no getting around it. Like I said, you're not just serializing into hashes, you're serializing into objects which is a big thing. Additionally, it handles these adding and removing really, really cleanly which is really good and it has these real types like we're converting into images and there's a field on the image can be an integer, it can be a float, it can be a bool, it can be all these things and especially when you're dealing in a compiled language, a strongly typed compiled language like Go or basically any other non-object oriented language that you might convert back and forth with, you're gonna want to have real types. It's really annoying to have to do the encoding, decoding every time if you're doing JSON in those languages. And for me, one of the strongest things that I was really excited about is it's really compact on the wire, like it's really small. There are some downsides. We were talking about human readability. Being coded output is binary, so you can't read it. Does that really matter? I don't know. You're gonna be reading and writing all this stuff anyway and like Aaron was saying, you're gonna be moving to HTTP too and things are not necessarily gonna be human readable anyway without dissecting and decoding stuff anyway. Ruby encoding and decoding is not as fast but maybe we can fix this and the Ruby libraries for this are not the best though I'll talk about a new thing in a second. So what about the protocol? So we could use HTTP. You can just stuff them in the body. You can do this between apps, use HTTP as a protocol and talk call a day. I didn't like this because I was condensing this entire thing of request response into this tiny thing of the only things that I needed. I didn't want to write HTTP and have all this extra weight on the wire. So I invented my own protocol, yay. It was basically the easiest thing I could think of. It's not actually my own protocol. I didn't invent it. Other people have done this exact thing for many, many years but the format is really simple. You have a client and server. Oh, and I should say that's pronounced T-C-P-Z, not T-C-P-S. There's a client and server. You're talking back and forth and the way it works is you have a header which just is a Uint and it has the number of bytes of the body and that's it. And then you read that one byte header of the number of bytes of the body and then you congest that many bytes from the stream and the response is exactly the same way. And the body can be anything like T-C-P-Z doesn't actually care what you're putting in there but in the case of the applications that we're actually working in, what we did was we wrote, we used protocol buffers as the actual serialization format. So this would be protobufs over T-C-P-Z. T-C-P-Z is really simple. There's a client and a server. It doesn't do multiplexing really. And so far I only wrote a Go server and a Ruby client. The cool thing about the way T-C-P-Z works is that we stress that you don't write your separate load balancer. The client is actually the load balancer between all of these different services. Request response encoding are not part of the protocol. It's just a string or it's just a, not a string, it's a, in Ruby it's a string but it's bytes. It's just a byte stream. And each T-C-P project defines its own request response. But I wanted to build a bunch of stuff into this because we were using this over and over again. So if I could make a little format request response thing, I could add all the stuff that I actually wanted for every application that I was building. So there's good logging, stat-c is built in, protocol buffers and then pipeline requests you are just built in. And the pipeline request thing, I had a slide for it before but I thought I was gonna run out of time so I didn't include it. But the pipeline request thing is really cool and also following the Google thing, it's the simplest thing I could possibly get to work. You just say negative the number of messages and then you read that many messages in the T-C-P format. That's it. It's pretty interesting. And it works. So I was the CTO of Pibrose Post for six years and we worked on this there and we wrote multiple apps using this and have sent hundreds of millions of messages through this T-C-P-Z protocol over the past couple of years and it just works. We haven't had any problems with that. We've had lots of problems with lots of other things that I'm happy to tell you about those but we never had any problems with it. A quick aside about why I was trying to design my own protocol and what I was interested in, another every good thing comes out of Google, I don't know if there's a Papers We Love Barcelona. Is there, does anyone know? Has that made it over here yet? So there's this really cool meetup format that was started in New York where people get up and present different academic papers and take that academic paper and then present it to a group at a meetup just like a Ruby meetup or something like that and it's called Papers We Love and there's a bunch of branches all around New York or all around the States. So in that spirit, I've been reading and for the past couple of years reading a lot of academic papers because there's a lot of really interesting stuff there. If you've never read an academic paper, it might be seem daunting but I highly, highly stress that you should just try it because there are a lot of them that are really, really fascinating and there's a lot of stuff that you think, oh, I'm gonna invent this thing and no one's ever done it before. Someone's done it before. That's my lesson to you. If you take one thing away from this, someone's done it before and probably in academia and probably has written a paper about it and found all the problems with it so you don't have to. So one of the most interesting ones that I love reading are ones that come from giant production systems. I've never really worked in a gigantic production system. I've worked in large ones and Google's is larger than anyone else's and so they've written a lot of really interesting papers and the dapper paper is about how you build telemetry and introspectibility into these nested request response formats which is really exciting and you should read it and a lot of people have implemented ideas from this.  Similarly, to bouncing off of Aaron's previous talk too, Google has been working on this new application framework called GRPC which is basically just protocol buffers over HDB2 and takes advantage of the streaming and everything like that. It's really interesting. It's not quite there yet. Basically, the only server format for it right now is in Java. So you have to run a Java server which I'm sure none of you actually want to do but you can write clients in lots of languages and like I was saying before there are some new developments. Basically, Google has now written a Ruby client, protocol buffer client and library that they haven't really publicly announced or talked about but it's part of this GRPC project and I'm hoping that that will become the new de facto and be faster. Like I said, GRPC is a layer above protocol buffers that's protocol buffers on HDB2 but it's not just protocol buffers on HDB2. It defines a specific way of doing request response in RPC. It also relies on the new version of protocol buffers which is still in beta called Proto3 which has some really cool new features. It's cool that the format is evolving. JSON is not evolving ever like Douglas Crockford said basically. This is it, it's the simple thing. So it's cool that the serialization format of protocol buffers is actually evolving and there's some new things like reserve tags and compaction and stuff like that. So I'm about to wrap up and the moral of the story is don't accept, if you take one thing away, just think about other things that are possible before accepting the default and this doesn't mean just grabbing at new technology but it does mean that one, a lot of other communities out there have done really awesome work in web application and application development and we should be taking and stealing from them and not just facing inward. You should always check out what alternatives there are. Even if you don't use them, you can still use JSON over HTTP. I won't be mad but it's just really cool because there are other ideas out there and that's how Rails and all of our, the greatest things in our community got started was with people looking outward to other communities and basically grabbing ideas and pulling them into ours. So thank you, I'm AQ, thanks for your time. I have a question. So you compare the sizes of the formats on the benchmarking side. And my question is whether the non-binary formats were compressed or not? His question is whether the long binary formats were compressed, they won't compress by default but because the end result is binary, you can just GZIP protocol buffers and that just works and it works really well. But in Proto 3 actually, they're gonna start compacting things by default but that's not part of the format now. So is there an established mechanism to deprecate fields within the format? You said it handles change. So the way to do it is you just remove the, the current way is you just remove the field from the Proto and then you just never use that number again. But yeah, in Proto 3 now not only can you remove it but there's this reserved tags thing where you just add that number to this list of reserved numbers at the top and don't have to define the field. So like let's say I remove ID8 which was file name, then I would just put that at the reserved tags on the top of that type and then no one could ever use it again and it would error out if they tried. Okay, we've got one question up in the balcony. Yeah, I was kind of wondering the same thing because I may have a field like foo with an ID of eight. I remove that one and like two months later somebody else gets in and adds like bar with an ID of eight that would like completely mess up everything. Yeah, yeah. So why, I mean maybe it's like for keeping the size smaller but why not like hashing the value of the key or something and using that as an ID? I think it was just for simplicity. But you can also, I mean the way we've done it as a best practice is just like we've, before the reserved tags thing we just added, we basically had a comment in the Proto file that commented out fields.  I think we've got time for two more questions. We have one down here in front. Hi. Did you compare ProtoBuff to other JSON variations like Bayzone, it's a binary JSON. They added a few more types I think and it's a lot less in size. Did you? I should add that to the benchmarks. I haven't added Besan but it is about message pack too. I was in there and message pack is, I think message pack and Besan are about comparable in terms of their size. Besan might be a little smaller depending on what types you have but it's still not as small as protocol buffers because there's no schema basically. Hi, great talk. Just to play devil's advocate here, you're describing a format where you specify schema and then you generate code and you work with objects over any protocol including sockets and HTTP. Isn't that soap? Yes, I mean it is something like that but the big difference between I guess soap and GRPC or the new formats are just basically the ease in which you're able to go between languages and how, what the support is and a lot of these things like backwards compatibility but yeah, Google people and people in the community have thought about yes, this is RPC, RPC systems are always gonna give people the Twitch that they were going back to the early days but I think they've solved a lot of the problems that people had with those earlier formats. Thank you. Great, thanks everyone for your questions and now let's go get copies.


Gery at Faroaks. Search me, Gerry, all I could find out, even by asking Harold, is that Harold's dad told him that Mr. X was very necessary if we were to have a course in aeronautics here at Faroaks. Hmm. Necessary to a course in aeronautics. Say, you don't suppose he's a mechanic or something like that, do you? I don't think so, Gerry. They wouldn't be so mysterious about that. You know, I think it's something bigger. Well, come on, let's walk a little faster. We can't go tearing through Custer's hall We can't go tearing through Custis Hall or we'll get a few demerits. That's right, Jerry. Take it easy. Oh, Sergeant Alden. Yes? Do you have any idea who this Mr. X is? If I did, do you think I'd give away the show by telling you? Well, just have to wait, Jerry. I guess so. Well, here's Custis Hall. Well, I hope this new excitement doesn't take away from your interest in the riding meet, Jerry. Oh, no, sir. It won't. You see, Jerry, this meet means a lot to Faroqs. Edison took the trophy back to school last year and they're pretty confident they'll be able to keep it. Well, what makes them think so, sir? Well, because in the first place they've got a veteran team. The same team that won the trophy last year will be in competition again this year. And we've got practically a green team. You know, we were hit pretty hard by graduation. Well, gee, don't you think we've got a chance? Oh, just a moment. Sure. Yes, sir? Uh, you asked me if I thought we'd have a chance, Jerry. Yeah. Well, wouldn't I be a pretty bad coach if I didn't think so? Well, Edison may be overconfident. Oh, I don't think so, Lee. Sergeant Brandy's Edison's coach will see to it that the Edison boys will be right in there giving all they've got. Winning the trophy this year gives the school permanent possession if they win. Oh, they won't, sir. What did you say about Edison being overconfident, Lee? Well, I didn't mean to have it sound that way, Sergeant Alden. I just meant that if it's up to us, I mean the Faroqs team, well, you won't have to worry. No, that isn't what I mean either. I mean, well... You meant you'd give them a real battle, is that it, Jerry? Yes, sir, that's it. But I just couldn't get the right words to say it the right time. Don't worry about the words, Jerry. Just take it out in writing to be Edison. Oh, here comes Harold Inwell. Oh, yeah. Hey, Harold. Say, hurry up. What kept you fellas? Oh, he came right over. You must have crawled. Oh, excuse me, Sergeant Alden. Oh, it's all right, Harold. I guess you're on your way over to see Mr. X, too, aren't you? Yes, sir, and I know who he is, too. Oh, you do? Well, who is he? Wouldn't you like to know? How'd you find out? Oh, I knew right along. I've heard my dad speak of him many a time. There you are, Jerry. That's the advantage of being in on the know. Harold isn't running a temperature from curiosity. I had Jim get farther away instead of us getting closer to it. Hold your horses, Jerry. I hope you put the same enthusiasm into the writing me. Say, this new fella. What's his name? Dal Campbell. Yeah, that's him. I heard Eddie Winston telling somebody that he really could ride. Can he, Sergeant Alden? Well, he's all right, Harold. Somebody said he was going to ride in a team when we meet Edison. Hmm. Where'd you hear that, Harold? Well, I don't know. I don't know who said it, but it's all around the school. Gee. Is he, Sergeant Alden? In whose place? Oh, they didn't tell that. It's just that he might ride in place of someone. I wish I knew where that information came from. Well, it isn't true. It isn't. Is it, Sergeant Alden? What did I say back in Max's place, Jerry? Well, you said that the team would stand as it is. And that's final. I'll win or lose with a team that's been practicing every day. Somebody is trying to stir up a little trouble, and I'd like to know who it is. All right. Well... Yes? What did you say, Jerry? Uh, I wasn't going to say anything, sir. Sure you were, and I'll bet I know why. Cut it out, Harold. If there's something you've got on your chest, Jerry, let's get it off now. I don't want you feeling any way but good on the day of the meet. This rumor may throw the whole team off balance.  What were you going to say, Jerry? I... Nothing, Lee. I just thought of something and started to say it. It wasn't important. All right, Jerry. But just remember that I said I'll enter the team I have now. I'll win or lose with it. Pardon me, Sergeant Alden, but... but why does the meet mean so much? Why? Well, let's stop a moment and I'll tell you. Yes, sir. Did you ever hear of Captain Hunter, boys? It seems to me I've heard of him, sir. Wasn't he here at Faroaks for a while? Yes, he was. I served under him in the army in their regular cavalry. Captain Hunter was an officer and a gentleman. He left the army to come here to Faroaks, and when I had finished my hitch, my term, he brought me here. The horse I ride, Rascal, belonged to Captain Hunter. Belonged? You mean... Captain Hunter was killed five years ago. Oh, gee. That's a shame. And that's why you want the trophy brought here. That's not all, though, Jerry. Just a couple of months before he was killed, he had the trophy made. A mahogany plaque with a gold oak tree on it. Underneath the oak are five gold plates. Two of those plates have Faroaks Military Academy engraved on them. The other two have Edson, and one is blank. After the meet this year, the name of Faroaks Military Academy just has to be engraved on that last plate. Because Captain Hunter would want it that way. You gotta win, Jerry. Pardon me, Sergeant, but isn't it called the Hunter Craig trophy? That's right, Lee. You see, Don Craig was a cadet here when Captain Hunter was football coach. And Captain Hunter put Don off the team for unsportsmanlike conduct. I don't get it, sir. If Captain Hunter did that... Just a moment, Jerry. Later, Don Craig realized that being put off the team had been the best thing in the world for him. He realized that it had helped make a man of him by taking away the thing he liked best. So, Don Craig found out that Captain Hunter was his friend after all. Just as he was a friend to everyone here, cadets and officers at Faroaks. Don Craig, each year, comes back for the meet for all the games between Faroaks and Edson. He became Captain Hunter's greatest admirer. So, Major Davis put Craig's name with Captain Hunter's on the trophy. Well, there you are, Jerry. Something to fight for. Yeah. It makes me feel sort of funny inside. Well, that's good, Jerry. Good. Well, I'll be shaking like a leaf when I go out on the field. Just like I did in the circus the first time I did my act. That's all right. Being nervous shows you're keyed up and ready to go. Well, come on, let's walk on. I've talked too much now. Dad's waiting for us in the gym, fellas. Oh, gosh, we forgot all about Mr. Linwell. Yeah, we gotta go. Okay, boys, I'll see you all later. Well, why don't you come with us, Sergeant Alden? No, thanks, Lee. I've already met Mr. X. Hey, you told us you didn't know. Oh, not quite, Jerry. I just said that if I did know, I wouldn't give away the show. Well, we'd better be going. Goodbye, Sergeant Alden. Goodbye, Lee. See you tomorrow at practice, sir. Goodbye, Sergeant Alden. So long, boys. Oh, Jerry. Yes, sir. Don't forget what I said, that I'm going into the meet with a team I have now. Yes, sir. Thank you, sir. Okay. Come on. Gee, yes, Dad's been waiting for a first long time. I thought your fellas would never come from that place. Okay, let's go. Jerry. Uh-huh. I think I knew what you were going to say before. When? When you started to say something and then stopped short. I know, too. What was I going to say? Well, I think you were going to say that you knew who had been telling everyone that Bruce was going to ride on the team. Yeah, that's what I think, too. Maybe. You were going to say Red Morrison, weren't you? Well, yeah. I thought so.  What's he trying to do? If you ask me, it's just sour grapes with Red Morrison and with that new fella, too. Bruce Dark Campbell. I don't know about that, Harold. Why not? Just a minute. I kind of think that Bruce hasn't got a thing to do with it.  It just sort of started. Well... Well, here's the gym. Come on. Okay. We won't talk about the other thing now. I want to see Mr. X. He's down in the basement. Yeah, okay. This way. We can go right down this way. Yeah, step on it, Harold. I'm going as fast as I can downstairs. Hey, listen. Yeah, sounds like somebody pounding. Yeah, they're unpacking Mr. X. Unpacking him? Are you kidding us? No, honest I'm not. Here we are. Hey, Dad. Gee whiz. What is all this? Mr. X. Come on. Get a closer look at him. Right this way to Mr. X, Jerry and Lee. Holy smoke. So this is Mr. X. This is Mr. X. Almost uncrated and set up. Ready for their first class in aeronautics. Pretty big fellow, isn't he? Gosh, is it real? You bet it is, Jerry. Old Mr. X has been through a lot. He was with Bill Layton and me in the aerial circus. An airplane. Well, is it real? I mean, does it fly? Well, I'm afraid that Mr. X's flying days are over, Jerry. He hasn't been in the air for years. But as an aviation guinea pig, he's the best in the world. Dad and Mr. Layton used it in experiments, didn't he, Deb? Right. Many is the time we've taken this fellow apart and put him back together again. Oh, uh, clap there in the cockpit, Jerry. Gee, may I? Sure. Go right ahead.  All right. Oh, boy, a real plane. Here you go, Jerry. Put your foot on the wing service right here. Yes, sir. Here you go. Whee. Oh, boy. How's it feel, Jerry? Swell. Take all of the stick, Jerry. Yeah, this thing that sticks up from the floor. Uh-huh, that's it. That's how you steer it, huh? Well, not quite. The rudder bar has something to do with it. The controls aren't tied in yet, but we'll have them up in a jiffy. Boy, this is keen. Hey, how do I look, Lee? Like a pilot? Oh, sure. Just sitting in there makes you an aviator. Uh-huh. I'll have you know, Cadet Phil. What's it? Someday, I expect to be an agent. Me, too. Well, you've all got a long way to go. But I think we'll have a lot of fun in the class. Gee, Dad, I... Well, I can't tell you how glad I am that you're going to stay with us. Well, same goes for me, son. Yes, sir. I'll be one big happy family. Say, that reminds me, Red Morrison has signed up for the class, too. Oh, does a happy family remind you of Red Morrison? Oh, well, not quite. Well, I should think you wouldn't. Say, Mr. Linwell. Yes, Jerry? What are all these instruments? Well, uh, that one, the big one, is the airspeed indicator. The one next to it is the groundspeed indicator. Then there's the oil pressure gauge, the gasoline gauge. Well, how can you see them all at the same time? Well, you don't, Lee. You just sort of take a quick glance at the instrument board. And after you've been flying for a long time, you can take in the whole board a glance. Now, let's see. If I wanted to loop the loop, what would I do? Trying to get the little advanced information on the rest of the glance. That it? Oh, no, I just wanted to know. Well, uh, you'd pull back on the stick, give her the gun, and when you get to the top of the loop, you'd roll her out and back into a dive, and then out on the level. Oh, I see. Yeah, I'll bet you do. There's more to it than just that. Before you do any loops in the air, you'll have to do them on the ground. Say, how about giving me a chance to sit in there? That's the hot field. Sure, Oki. Hey, give me a hand. Will you, Mr. O'well? Right.  All right. All right. There you are. I won't go through it, will I? Nope. It's strong enough. There you are. Come. Oh. Hey, you wonder the class is going to start. Probably in a week or so. I was talking with Major Davis this morning. Hey, give me a hand up, will you, Jerry? I'll do it, Lee. It takes a little time to learn how to get in without twisting yourself into a knot. Hey, that reminds me. Take a look at the clock and you'll see we're all five minutes past recall. And that, my fine happy family, means demerits, which I can't afford to get right now. Oh, gee, that's right. Come on, we've got to make a run for it. We've got to get to our rooms because, well, you're right, Jerry. You can't afford to get demerits.


What's up everybody Jason from jazby's case brace calm number two of impeccable 2020 football Pikachu number two Just sold out with this R&B for the bangles dolphins bucks lions bears Ravens Jags and Giants And again This is only for these teams in the specific break round a number block style and as an example guys You're gonna get randomized a number from zero through nine and if you get randomized number three You will get all teams hits above With three being the first number next to the dash on the left side So for example, we get a card that is 243 out of 299 that'll go to block three 13 out of 99 3 out of 25 43 out of 49 and 93 out of 99 and so on that'll go to block three Our redemption cards go to spot zero even if we know it's a one-on-one.  Let's roll the dice and It's for the hard way or eight the hard way. Sorry four to four eight times one Two three four five six seven eight I don't matter. I thought we'd be breaking that by now, man. Honestly, that's tough stuff's fire eight times boss at the top Sinyin all right eight times here now zero three nine one Two three four five Six seven and eight seven down to one All right, so mouse with seven Kang with eight Gary with three mouse with four Alex with six Gary have a zero any redemptions will go to you And then Juan with five and nine Kevin with two and Sinyin with one So there you go. So any one-on-ones Sinyin you're gonna get as well And coming up next now guys is the break itself


The famous class medium endurance cutter USCGC Mohawk arrived in Lagos earlier for a scheduled port visit. While in Lagos, US and Nigerian navies would participate in engagements of the Western Naval Command and Naval Dockyard. Mohawk will also host ship tours and a dinner reception. The commanding officer aboard USCGC Mohawk Commodore Andrew Pate said maritime security remains critical to regional security and stability as the visit is an opportunity to collaborate on shared goals. As we come to partner with our Nigerian colleagues in combating piracy and working on interoperability here in Nigerian waters as well as in the Gulf of Guinea, we have been long-term partners with the Nigerian Navy and are so proud of that relationship and so proud of Nigerian Navy for the great work that they have done to reduce piracy in the last year down to no incidents this year and down 90% with their colleagues across the Gulf of Guinea. It is an incredible achievement and I think a mark of the increasing capacity here and we're grateful to be here. Naval security and open seas are absolutely critical to the global economy. 90% of the world's trade moves on our oceans and the ability to keep our oceans open and free to trade is essential to alleviating poverty around the world and to increasing our ability to work with one another. Our belief that security is everyone's responsibility and we're excited to be here in Lagos as the consular general mentioned will be conducting discussions, will be performing exercises, doing training and working alongside the Nigerian Navy. This is a collaborative effort. It is a deliberate effort. It is a planned work due to the leadership of the Chief of Naval Staff, Vice Admiral Awa Zubair Gombo, that has put in a task and a timeline and followed up with proper guidance, ensuring that we maintain close relationship with our foreign partners and this collaborative efforts of maintaining presence at sea with them always been around have been able to lead us to the state where we are. Going forward, such collaboration will continue and that is why you are seeing the more work here today. Next week, there's a ship coming from India. In October, another ship will be coming from the UK. So we continue to have this series of collaborative efforts of international partners working together with us to ensure the Nigerian energy in compacting this coach. Please do subscribe to our YouTube channel and don't forget to hit the notification button so you get notified about fresh news updates.


Bradford and Sheffield Wednesday contested Yorkshire Derby in the Papa John's Trophy. The lead two Bantams have a poor recent record in this competition with four successive group stage exits. So they'll be hoping for better in Northern Group H tonight. Mark Hughes makes seven changes, including a debut for Timmy Audicina and a start for former Owl for Dane Oliver. The Owls head to West Yorkshire on the back of an excellent start to that lead one campaign. Ten changes though for Wednesday. Michael Smith has recovered from injury to start up top. And there's a debut for new signing, Alex Meitner. Leicester under 21s and Burton also in this group. Group H, this is the Owl's sixth ever season in this competition. Shouts for Handball, but it's gone for a corner. As he first started fairly well, it did hit a hand. And the throw comes in, quite outside the penalty area. Then more appeals. Nothing doing, though. But with the backs to the wall at the moment, it's early Owl's pressure. It's been navigated nicely. Take a look what happened here. Been given for that. Finished at bottom of their group in three of the last four seasons in this competition. Here they come, though, with Jake Young. This is dangerous. Young driving at the Owl's defence. Tight game so far. Here comes the corner. There wasn't exactly a way, and Sheffield Wednesday. Meitner sought themselves out here, otherwise they're in trouble. In certain turns. Told to get up. And now Sheffield Wednesday on the counter. Good pressure from Bradford. Look at this. There was contact, I don't think enough, for a match in 90 minutes in this competition, since 2017-18. It is Young, and Young calls for 36 minutes gone. And Bradford have the lead in the Yorkshire Derby. It was a fantastic strike as well from Jake Young. A very, very even game, this nip and tuck. Bradford, not with a host of chances, but that was beautifully taken. He did it all himself. Jake Young trying to respond. And down in the EFL trophy. Searching ball into the area. Oh, and now that Bradford have got themselves in trouble here. And that's a penalty. Let's have another look at this. Was there enough contact? It's Michael Smith for his first Sheffield Wednesday goal. And he scores it. He's had a frustrating time with injury since making the move across South Yorkshire from Wutherham. But he does have his first hour's goal from the spot. Sheffield Wednesday level, 1-1. Confidence as this half has gone on. Some good stuff at times, the Bantams. 10th in week two on eight points. Down here at the weekends. He's had it towards goal. They do look a threat on goal here. And it's a big save from Harry Lewis in the offside track. He went to make himself big, Lewis, and did so. He won tonight at times, Sheffield Wednesday. Off the top in league one, who started beautifully. Now then Bradford playing some good stuff here. Oh, that was unlucky. It was very well worked. It was Levi Sutton. It was played into him by Chapman. Still time. The difficult one to turn home. But it was a big chance for Bradford City. Now Sheffield Wednesday. Looking to go up the other end, and that's a really fine looking ball. And attempted to take it first time. Malik Wilkes on as a substitute in the join last week. What's happening here? I think the linesman's in trouble. They have taken a tumble here, I think this looks too good, it's holding his right shoulder, and is in some discomfort. Do you want to build up to that Sheffield Wednesday attack? Bradford were at the other end, and this was a huge opportunity. Let's have a look to see what happens with the linesman here. He's running and then collides with something. And then takes a tumble. And he is getting some treatment. It's finally poised. And then the Papa Johnstrophy. And some ball juggling skills from Mark Hughes. The top player in his time. Look at this, still got it. I think the side could pinch this. Bradford have played well tonight. What a hard of a threat when they did on Saturday. That's a good looking delivery, and it needed the header away. Now then Chapman scries it off. This is dangerous. It's threaded forwards. Here's Jake Young again, he's done really well. Still Young, what a goal. It's a fantastic goal once again from Jake Young. And that's two absolute beauties from him tonight. Bradford retake the lead. 15 minutes from time. Jake Young once again, and look at this. That is stunning. Sheffield Wednesday equalised within a couple of minutes.  It was a risky crossfield ball, but the touch wasn't great either from Luke Hendry. He actually worked out well for Bradford, and here they come, looking to kill the game. And looking for the third, and there it is. And it's Harrod off the bench. Key and Harrod. And surely the points for Bradford. Two and eight minutes for the Bantams. Deep in the second period. And Sheffield Wednesday looked done for here. Great first touch, managed to get it out of his feet. And he kept his composure brilliantly. 3-1, Bradford. Is a job well done for League 2. Bradford sitting against League 1. Sheffield Wednesday. Mark Hughes will be absolutely delighted with that. Couple of outstanding goals from Jake Young. Ultimately proved the difference between the two sides. Sheffield Wednesday not at their best. Will take heart with Michael Smith scoring his first goal for the club from the spot. Here, Harrod. And it's close to the sky. Bradford up and running in the trophy. 3-1 with one tonight.


NeroPeak is one of the most affordable natropic supplements on the market, but is it strong enough? Let's find out. Hey, what's up, Greg here, the founder of your inception. Welcome to my channel, where you can learn top secrets about natropics. Subscribe below to start your journey. Now, today we're going to talk about NeroPeak, which is, as I said before, one of the most affordable, one of the cheapest natropic supplements that you can currently buy on the market. Usually, when it comes to such affordable supplements, I'm really cautious because either, you know, they're underdosed, they lack some ingredients, or they simply use low-quality ingredients and natropics. So, you know, you're never really sure what's the reason for such a low price. So with NeroPeak, I really tried to understand and figure it out, you know, what's happening, why does it have such a low price. And you know, if this supplement is really good for you or not. So I've decided to do a whole review, which I'm going to share with you in a bit. We're going to talk about side effects, the recombined and daily dosage. And at the end of this video, I'm going to share with you if you should buy it or not. Now this natropic supplement was developed to help you improve your memory, your focus clarity, and to help you with stress and get you in a bare mood. So to understand it better, I've decided to do a whole one week test period and see what really happens. Now the recombined daily dosage of this supplement is one capsule per day. If you know anything about natropics and natropic stacks, then you probably know that one capsule per day is very, very low. Like most companies recommend taking at least two to three capsules per day to get, you know, all the benefits you want to get from the natropics. Now the thing is, the reason why there's only the recombined dosage for this one is only one capsule per day is because it only contains a couple of ingredients. It only contains a few natropics. And this is the main reason so they can actually put all the stuff, all the natropics in one capsule and that's good enough. Now we're going to talk about the ingredients a bit later, but let me share with you my experience. So I've been taking it for about a week. I've been testing one capsule per day. I even tried two capsules. And during the test period, I didn't really experience or feel any benefits. I didn't, I mean, it's hard to say if I was more focused or not. Honestly, you know, it's really hard to describe how I felt. It was nothing, you know, special in any ways. Definitely my mood didn't improve. I didn't get an energy kick, but in general, I felt all right. That's what I can say for sure. Now the question is, is this really what you want to get from this supplement? Is this really something you will be satisfied with? And does this natropic stack work or it doesn't work? So here's the thing. You might be surprised with that, but this natropic stack was not developed to give you an energy boost. It was, I believe, not developed to dramatically improve your mood. It was developed though to help you with memory, to give you this competitive advantage, to help you get more focused and more productive in the long term. It doesn't contain any caffeine. It doesn't contain LTN, it doesn't contain Dwarana. So no natropics, no ingredients that would immediately boost your energy, but it does contain quite a few interesting and very effective natropics, which are very well dosed, which was a big surprise for me. So there is no doubt this product will deliver the benefits, at least some of the benefits that it promises to do in the long term. So I cannot say if I'm really satisfied with the short term benefits, but in the long term, yes, I think this product will definitely work. By the way guys, which one is your favorite natropic stack? Let me know in the comment section below. So if we look at the ingredients for a while, I mean this natropic stack contains Vitamin B12, Bacopa Moniery, Phosphatidylsorine, Ginkgo Biloba, Rudiola Rosa, and DMAE. It's not a very unique formula, but the cool thing about this natropic stack is that it really contains some very high dosages of most of the ingredients, and that's something I didn't really expect to happen, especially if you look at the price. So I was positively surprised. Of course, it lacks some ingredients, it lacks some natropics, but in general the ingredients that are in this stack are pretty well-dosed with two one or two exceptions. By the way guys, I've revealed seven special secrets about natropics that no one else will tell you. To get them, download my free handbook below. When it comes to the side effects, I didn't experience any side effects during my test in when I tried two capsules per day, which I do not recommend. And I don't believe you will or you should experience any kind of adverse side effects if you supplement this natropic stack. Of course, as always, do consult your doctor before supplementing it, but I think this is a pretty safe natropic stack to take. Now the recombinant daily dosage is one capsule per day. Do not exceed that because you will overdose some vitamin B12 at least and probably on some other ingredients as well, so do follow the recombinant daily dosage of one capsule per day. So should you avoid this product? Should you consider buying it or should you simply go to the store and buy it? Well, that's a tough decision here to make. First of all, we have mixed feelings about this natropic stack. The formula is pretty average. It lacks some very important natropics. It lacks caffeine at least in my opinion. It lacks LTNN. It lacks some other adaptogen herbs that can be and are usually very popular, very effective in the tropics stacks and often used of course. I think it's pretty well-dosed. There is nothing to say about it, but it's very difficult to feel any benefits when you take it, when you supplement it, especially if you take one capsule per day. I mean, it might, as I said before, it might work in the long term and I think it actually will provide some benefits in the long term, but in the short term it's really, really hard to say anything. Besides that, we had some issues with the communication with the brand. We didn't get some emails back and so forth. So we are pretty confused what to tell you. Now, I think you should still consider buying it, especially because it's so affordable at around 20 bucks per month. I mean, that's really affordable. But if you do decide to buy it, keep in mind you'll have to combine some other tropics with it to really get all the benefits that you can expect from a tropic stack. But if you search for a very high quality, if you search for the best on tropics stacks, at least for now in Europe, will not reach this list. Anyhow guys, that's it for this video. Thank you for watching. If you have any questions, don't hesitate to contact me and don't forget to follow your inception on Facebook and Instagram. I hope to see you soon.