Okay, that's the time to start. So I'm going to start. Daniel told me that I can't actually speak too quickly. So if I speak too quickly, it's his fault. And in 1963, JFK made what was the first transatlantic phone call via a geostationary satellite to our another world leader. He spoke from Washington DC through a satellite called Syncon 2 to the Prime Minister of Nigeria, who was aboard the US NS Kingsport, which was stationed just off Lagos. This is the first time the two world leaders had spoken via satellite, but it was also a big turning point in the ability for us to expand communications on Earth. In the 60s, the number of sort of transatlantic telephone lines available ranged at about the hundreds. So there was a very limited resource. And by flying the satellite, we managed to demonstrate that with a medium sort of investment that we could increase communication across the planet without having to deploy tons of infrastructure. So using the satellite was a big alternative to deploying with a transatlantic cable. Syncon 2 was a spinning cylinder covered in solar panels. The second to three Syncon satellites was put into a geostationary orbit. This orbit is an altitude that allows the satellite to be continuously in view. So a geostationary orbit is an orbit which is a high enough altitude that from a position on Earth, an observer sees the orbit as stationary. This orbit is created by putting yourself into an altitude above. This is achieved by putting the satellite into an orbit above Earth so that it orbits Earth once per Earth Day. So the orbit is synchronized to that of Earth. This is in comparison to Leo and Mio orbits. So a Leo orbit is a low Earth orbit. It's an orbit very close to the plane of Earth. And a Mio orbit is sort of everything in between. For Leo and Mio orbits, the orbit can't synchronize with the orbit of Earth. And so to an observer on the planet, the satellite will move across the sky. For a Leo orbit, the satellite will move across the sky quite quickly. This means that for a portion of the satellite's orbit, the satellite is actually in the shadow of Earth and you can't speak to it. And so to build up a complete communications network, you need to have multiple satellites flying. Because the satellites are moving across your perspective, you also have to track them to have good communications with them, to have a strong signal to get your link back. And this normally requires mechanical means so you get tracking satellite arrays and you have to have mechanisms to follow this through the sky. Sort of things that are in Leo are the ISS, Hubble, Starlink now, and a radium. In Mio, we have GPS and O3B. But the majority of V-SAT communications in still sort of last year has all been stuff in Geo. Because you can just point your dish at something stationary in the sky, it makes it very easy to set up a ground station and have something to speak to. Satellites today are a bit different and so this is Highless One. Highless One is parked over Northern Europe and North Africa. It has a nice big beam that covers Northern Europe. It also has a steerable beam section which can be repositioned based on customer demand. One of these is I think three to four hundred million dollars to fly so they're very expensive. They cost a lot of money to put into space but they're quite good. So my name is Tom Jones. I'm a researcher at the University of Aberdeen. I do internet engineering. I work on internet and transport protocol design and implementation. As part of that, I write standards in the ITF and it's a blame for RFC 8304 and RFC 8899 stuff about UDP. I like to hack on FreeBSD and I use FreeBSD quite a lot as the implementation part of the ITF process because running code is good code. Really, I like to try and make the internet better. I like to say I'm one eighth of the BSD hosting team or I have been since the middle of this year. For the last few years, I've been working with a European Space Agency funded project to make sure that quick works well in satellite environments. I have some ITF work in progress right now that could really do with some input and the ITF is a bit like an open source project and we'll solicit feedback from anywhere. And so the top one here, draft Jones transport for satellite is a document trying to describe the properties of satellite networks. So transport protocol designers can build test beds and harnesses and understand what's going on. And we're almost completely lacking information on Leo and MEO systems because on one hand, they don't really fly and there's not a lot of service there. On the other hand, no one will let us play with them. So if you have these and want to let me play with it, that'd be cool. If not, I'd love to take some text either on or off the record and we can figure out how to make these protocols more open to other people. This talk is an introduction to using dummy net to build networks for experimentation. It's really wrapped in the state of the art of transport protocol design. And I'm just going to get a bit lost in internet engineering because I like internet engineering. So transport protocols are the protocols that we use to move stuff around on the internet. The layer on top of IP, famous transport protocols are TCP, UDP and SETP. And they're used to move things around. So they offer services on top of the bare bones mechanism, which is IP, which just connects, hosts together and does routing. The web runs on top of HTTP. HTTP has seen a lot of evolution in the last 30 years since its inception. And it is grown from a protocol designed for dealing with very simple web pages, which are basically like what would go in an academic paper with maybe a couple of images. So what we now deliver, I mean, full-fledged interactive web applications where you can do streaming video and stuff, because I've got it over here. HTTP has grown to improve performance in a lot of ways. So the web pages that we have today now typically have sort of 200 or so objects on them. So they are packed with a lot of stuff. HTTP was designed for a page with maybe one, two other external resources being pulled onto it. And so HTTP has some scaling issues to work around some scaling problems. HTTP introduced multiple parallel connections. And so what you would end up with the web browser performing six HTTP connections to each server, described by the page, which encouraged people to distribute stuff over big CDNs. And this allowed you to speed up page performance. For a long time, Google has been working on an internal project to improve web performance on reduced web latency. And in 2012, we sort of made a hint of this with the release of a protocol called Speedy. Speedy was adopted by the ITF and Speedy evolved into what is called HTTP2. HTTP2 tried to address some of the HTTP1 series issues with performance by evolving the protocol a bit. One thing was to get rid of the TCP setup latency that impacted HTTP. HTTP offers something called multi streaming. So virtually on top of your HTTP tunnel, you're able to create multiple get requests and have multiple channels coming through. Coupled with TCP fast open, it was able to get zero RTT connection setup for subsequent connections. It added flow control. Flow control is very important because after you've asked for 100 resources, it's up to the client to then schedule when what is coming. And this is a really difficult problem actually to deal with. It was found that when HTTP2 helped, it helped quite a lot. But when it didn't help, it actually hurt. And so it wasn't it wasn't a massive benefit in all directions for coming through. Basically all web traffic ever so far has been HTTP over TCP. That is changing. So to speed up TCP, we work on the problem of dealing with the TCP handshake. And so a typical HTTP session will look like this from the TCP perspective. TCP has what's called a three way handshake. So the initiator, I'm going to call the client from now on, the client sends a hello message to the server, which is a SIN, the server response with the SIN act. And finally, the client will act with packet. And after this act, the third message in our three way handshake, we have a connection. After the act has been sent and the client can then send data. And so the soonest the server can have access to any date, any request from the server from the client is one and a half RTTs. So one, one and a half steps through here. And so the idea with using multiple HTTP connections is if you're doing serialized requests for resources on a page, you're doing this process the start of every connection. And this process takes time. And if you're doing a lot of these, it will take a lot of time and they build on top of each other. And so instead run these in parallel, you get more throughput and you're better able to use your link because you're not spending a lot of time just waiting for TCP handshakes to happen. Things in geo orbit are really far away. To get to a position where you are synchronized with our sort of it, you need to be 36,000 kilometers from the surface of the earth at the speed of light. If you're directly below, then it takes about 240 milliseconds for a signal to go from earth to the satellite. So this is very far away. And annoyingly, the speed of light is fixed and we can't speed it up. Actually, most things speaking to geo are not perfectly below the the satellite they're speaking to and they're actually at an angle. And we more see a propagation delay of around 280 milliseconds. This means that we get 200 takes 280 milliseconds for a signal to go from me to the satellite to earth, which is the one way satellite delay. So we get a run trip time or the time it takes for a message to go from one side and to come back. It sits around 560 milliseconds. Actually, in reality, we see that we get a lot more latency added and the ground station is to speak to the internet and so delays can typically range up to about 650 milliseconds. The delay hurts a lot. Anything that is going to work from the run trip time, anything that is interactive, is going to be influenced heavily by the delay. To give you sort of scale, my delay to the internet from here is about 30 milliseconds, so you're talking like 20 times as long for any of these connections. Lots of things we build the internet with, lots of the congestion control and recovery mechanisms we have and buffer tuning we have, are grow as a function of the RTT. And this is okay when the RTT is small, but it gets very big on a satellite network and things just get confused and Renault, raw, normal TCP Renault and satellite is very unenjoyable experience to use. We could talk about satellite networks a bit, and so a satellite network sort of looks like this. We have on the left of the image, we have a client device, which is a nice little desktop PC, and a client device is connected to a satellite terminal and the terminal is connected to a satellite dish and the satellite dish has a radio transmitter on it, I'm going to call it LNB today. On the there is a device which handles all of the modem stuff we're speaking to the satellite. The satellite will then communicate to a ground station, these are normally a centralized site, there might be a few of the satellite that act as a centralized site, and then the centralized site will then speak out to the internet. We can speed up the performance of TCP and satellites in satellite networks by using some performance enhancing proxy. The performance enhancing proxy acts as a middleman in the way of the communication from the client to the server and it does stuff to make the connection better. What we commonly come across are called split TCP PEPs, and so at the satellite terminal on the client side and the ground station on the server side TCP connections are terminated, so the devices there basically insert themselves in the way of the connection and they say, oh you're speaking to me. This means that the client device speaking to the PEP has a very low RTT and actually the PEP is normally running on the modem which is just like one hop away from the wireless route you're going to speak to and so you get RTTs of about a millisecond when you speak to the PEP. And equally on the other side the server speaking to the satellite customer might not know it's there, it's actually going to see sort of a normal internet scaled away and so end to end on this path the TCP connections that we know of the server on the client don't really know they're speaking over satellite. The PEP works by capturing traffic from the client and intercepting it and so in the diagram the handshake we have for TCP the SINAC we get actually just comes from the PEP and it gets terminated, it gets intercepted and with a HTTP request this means that the client will make the request before anything has had time to propagate over the satellite link. Equally when we send the SIN through the protocol that runs between the terminal and the ground station which is proprietary and of no view of will generate resource requests and start setting up to handle a TCP connection for us and it might even lead to the generation of a SIN before we've made any further requests. Data that will then transmit over the satellite link and it will get to the ground station's PEP and then it will make a normal internet connection. Using a performance enhancing proxy like this we're actually able to get packets at the client back from the server in around one RTT so around 600 milliseconds whereas normally it would have taken 900 milliseconds if we didn't have the PEP in the way before the server sent any traffic and so there's a big performance improvement here and a big reduction in latency for things that PEP can predict for us. QUIC is a next generation transfer protocol which is being published by the ITF. It's published across four RFCs this year. QUIC came from further efforts in Google to improve web performance. It's published over four RFCs the main QUIC RFC is RC9000 it's a giant document that's worth reading if you want to learn about QUIC I guess and then it's accompanied with three other documents it's accompanied with something called the Invariance which is RC8999. The Invariance are basically everything in QUIC which is in the clear on the wire which is very little. There's a TLS mapping document called RFC 9001 and a congestion control and recovery document called RFC 9002. The QUIC working group is not done the QUIC working group is going to continue to standardize extensions to QUIC in the progress right now there is a datagram extension to do unreliable transport over QUIC something called MASC which allows you to do proxying and there's also the core technology behind Apple's Privacy VPN they've rolled out this year and the QUIC working group is going to do what they've called a fast process to QUIC V2 they're not going to hang around they're going to let the protocol evolve as it needs to. QUIC runs on top of UDP it uses UDP as a substrate and so it uses UDP for port numbers but that's basically it. It is a multi-streaming protocol with a lot of flexibility in it it was before reliable in order by stream it was originally designed to carry HTTP 3 but now is actually being put to a lot of these cases. The transport protocol itself is fully authenticated and encrypted on the wire it's almost nothing visible as an outsider that has support for a zero RTT connection resumption, has support for connection migration and load balancing and so it is designed for the way we use the web today and it has mechanisms that allow more modern congestion control and loss recovery and these basically have taken a clean slate approach to what was in TCP it's been designed deliberately to resist ossification so if you think about the TCP PEP before the TCP PEP that was terminating our TCP connection so it could make its own special one it has to understand to speak TCP and be able to be involved in the communication if the PEP is not upgraded to understand new TCP developments then these things just don't work and so there's a lot of trouble deploying TCP fast open because the network could ossify around TCP QUIC has been deliberately designed to avoid ossification and part of that is the authentication and encryption another part is that basically all the protocol fields in QUIC that could be left as don't care can be greased greasing means just sticking random numbers in there and so it's designed to be hard to fingerprint QUIC and figure out what is in there there are a ton of QUIC implementations there all of them are in user space apart from one which also runs in the kernel QUIC did a great public interrupt process based on Docker where they run public test suites of all the implementations against each other and you can look this up it's still online it's still being used and there's a lot available as you as a network operator means you're going to see a lot more UDP traffic I imagine actually if you're paying attention you've seen a big spike in UDP traffic towards Google resources and towards Facebook your metadata is basically gone there is something called a spin bit available in QUIC so you can measure RTT of connections but it has to be used by both sides of the connection so you might not see it work interception boxes or dads any mss we're writing boxes or htp proxies or peps aren't going to work anymore you're going to see less of your network and you're just going to have to accept the reality I don't think you can have an argument with this one I think you're just going to have to accept that traffic has become encrypted okay so why am I looking at QUIC and satellites in 2019 and before as this protocol was being developed there was a serious concern the QUIC was not going to work well with satellites the perception is the tcp without a PEP on a geolink is is not not a good idea and it's it's not great I mean it's very unenjoyable you can go and set up one later with the stuff and talk and you can see that it's quite hard but the view was the connections without a PEP were just completely untenable and unusable because QUIC can't be accelerated because it is encrypted they basically thought this was the end of the road for geo and because these are 400 million dollar projects they were a bit worried that their investment was gone DNS acceleration is still possible for now until we see dodeployment but yeah there's a big concern about the future of geo so at the University of Aberdeen we've had satellite testbeds for developing internet protocol since the 80s over in the sort of middle left of the picture just above the dome there is our old satellite testbed which is a fallen diamond pile of satellite dishes somebody helped we built a library in the way so they they were no longer had a view to the sky anyway and on the right we have the modern visa infrastructure that we have we have two links from Avanti these look basically identical to satellite TV dishes they are a bit larger and the main difference is they have a massive L and B on the front so they can so they can speak back we have what is called a 10 to service from Avanti it's a geo service so it has all the problems built into there they kindly given us an engineering link we don't know what this means in reality we get something like 8.5 megabit down and 1.5 megabit up we typically see around 600 milliseconds of delay and then internet delay and so we can maybe hit google in about 620, 610 milliseconds there's a big variance in delay it's not uncommon to see spikes up to 8 seconds and so it's hard to use we have a limited SLA so we have a limited scale in our agreement we don't know what the limit is at some point if we move too much traffic the internet will stop so we can't just run constant back-to-back file transfer experiments because we will run out of our our resource for science so to work around this we need to use emulation emulation allows us to model networks that we don't have access to but also allows us to model accurate networks that we can't really abuse for network emulation we found dummy net or free BSD is the best choice we did look at using Q disks and TC and all of Linux's net and infrastructure but we found that it was very difficult to design a link that would give you the performance characteristics you actually require and so you could design a link that would give you the the delay you've configured or the bandwidth you configured but it was applied statistically which meant that the average would hit these limits and sometimes you get packets going through too fast and that wasn't really acceptable for the sort of tests we were going to do so to do network emulation we use dummy net dummy net is a traffic shaper bandwidth manager and delay emulator the traffic shaping means that it can consume and balance the traffic among multiple applications which is not something I'm going to touch on today bandwidth management means that it is able to enforce bandwidth limits and control the rates that applications can send out delay emulator means that we're able to emulate different lengths of networks so we're able to emulate networks from local hosts all the way out to to the moon I like to think about delay lines and mercury delay lines is a thing that existed before and they're great to look up dummy net has been in free bsd for a long time I think it was originally proposed in a 1997 paper by luigi riso but it's seen a ton of evolution and improvement since then just a short list of features are added to our bridging support it was integrated to ipfw since it was first proposed it grew packet scheduling and aqm algorithms in a really nice way that makes them quite pluggable it is the first place the sctp nap was implemented just tomorrow I understand and it has mac layer emulation it's sort of a great thing dummy net needs to interface interface with a packet classifier so dummy net doesn't have any idea really about how packets are specified and moved around it's grown this but it didn't originally so it needed to integrate with a packet classifier a packet classifier is also a firewall and so dummy net integrates really well with ipfw there are two interfaces into ipfw two interfaces into dummy net from ipfw there are pipes which I use to emulate links and there are queues which are used for doing traffic shaping and scheduling when we want to feed traffic into dummy net we just need to add a rule on ipfw and the packet will get given to dummy net and then at some point later the packet will pop out or won't or it might just pop out immediately and it is very very straightforward there's very little dummy net in this talk my first dummy net example was the one from the dummy net website and it's the first one I did and so this allows you to simulate an adsl link to the moon so you add to ipfw a pipe for your incoming traffic and a pipe for your outgoing traffic and then you configure the the four main parameters on the pipe so you configure the bandwidth the amount of buffering and the delay and there is also a packet loss rate which is available for for pipes which is left here anything you can figure with an ipfw command will be set and the defaults will be left for any of the fields you don't specify so it is a bit of a a bit of a minefield that you can hit before we can talk about emulating our network we need to figure out what the network is and what parts of the network we care about and there are four main properties that we like to talk about when we're we're talking about what the network is made of there is the delay which is the time it takes for a signal to propagate through the network and so how long it takes for a packet isent to get from me to the server i'm speaking to the bandwidth which is the number of bits per second the network can process buffering which is the ability the network's ability to accommodate bursts of traffic or its ability to accommodate when it has too much buffering is very important too little buffering and performance suffers and throughput drops and too much buffering and latency suffers it's a very difficult thing to tune there's also packet loss packets are dropped all the time ip is a best effort transport medium so it doesn't do anything to try and try and make sure packets get there on a satellite link there's no packet loss on the satellite side but there is packet loss on other parts of the network uh so we want to characterize our network before we try and build any emulation of the network and so we need to run measurements and so here's some quick rules for making sensible measurements you need to take multiple measurements and you need to apply common sense to the measurements you take you need to work from an average really you need to understand what the network can do before you look at any new protocol you definitely need to set up a baseline to make sure your network is configured properly and it's likely that your your environment will have its own peculiarities you need to test your measurements against your intuition and the understanding of the design and the configurations limitations so you need to be very careful the measurements you get that you're actually measuring something if you run an iper from you get 11 gigabit a second on your home dsl you're probably just measuring against local host and equally if your ping is 28 milliseconds then i am sure you're not using the satellite link and every time i use the satellite link i test to make sure that rkt is correct if everything matches your expectations then also be suspicious because the computers are are definitely plotting against you the the main characteristic that we talk about when we talk about satellite networks is delay we measure delay in seconds we normally talk about delay in milliseconds which is thousands of a second it's precise enough without being silly data centers will see lower delays than this i measure delay using ping ping is one of my favorite hacks in computer networking a delay will have a big impact on anything we need to feel interactive delay variation will have a big impact on anything that needs to feel interactive because it makes it hard to predict so if you have constantly you can actually start working over it a great test that's to just try using ssh over 4g and then start a download and you'll see your delay go a bit wild and it'll be really really unpleasant when we're taking delay we need to get a reasonable number of samples so we can get a min max average and a picture of what the delay variation is and the label vary based on tons of things so they're varied by packet scheduling and hardware and link clear losses networks like wi-fi will retransmit for you and so you won't actually see a loss but you will see a change in delay we found that the real satellite networks we use have a diurnal pattern of of use and so to get a real picture of what is going on we ran a ping every second for a week and we figured out where evening was and what the variants in different times of day were and we could we could actually put this out in the the delay variance so if you want to run a single test you can just ping your bsdcon.org i did this from home where i'm not right now you'll see the third packet here the delay is 115 milliseconds that means that something happened inside the wi-fi but you actually see in the summary that there was no packet loss so something something weird went on a characteristic you care more about because it's probably the one you buy is bandwidth or capacity bandwidth measured in bits we talk about millions or billions of bits so mega and gigabits there's loads of tools for measuring capacity i love ipr3 it can benchmark tzp utp and stp it can report in json and it can do a single short server mode which makes it great for integrating into testing annoyingly it defaults to measuring from the client to the server use ipr3 like this so i did a measurement from home the dash r at the end there makes the server send to me it's a secret your bsdcon ipr server don't use it and you can see that is measured my network capacity ipr3 defaults to using tcp so you can see that tcp will send it at 28 megabits per second if i measure the normal way so if i measure from the client to the server so without the dash r flag you'll see that my network capacity is is awful at home which is why i'm in the local hackerspace and why bsd now won't be getting live streams with me in them for a while because my network is just not up to it and i pursued those udp measurements udp measurements are a bit different for ipr3 udp measurements ipr4 will try to send as many packages as can and just see what happens it will default to sending at one megabit per second so if you run an experiment for this you'll see that you get 1.05 megabits per second you'll feel happy instead you need to tell ipr4 to send with the target bitrate flag and so i ran a test here so sending from a client in my house out to the internet um i asked ipr4 to send at 10 megabits per second and you'll see that we get a report from the client and a report from the server the report from the client is what it was able to send if you set this number too high then ipr3 won't get there with the single core it will struggle to do a gigabit per second so you'll see what it actually sent and it reports from the server and these are the packets that actually arrived and so running with udp tests we see that i have 3.39 megabits per second up which is dreadful and we see that somewhere 62% of the packets go away i did the get server upgrade flag here and so what we can do is we can look at the time intervals for ipr4 and you could look through these and if you see a big change in the packet loss percentage you might see that you have competing traffic and that might influence the measurements you're doing the the hardest question you're going to see today is how much buffering do i need um networks need to buffer packets um buffers are required to make sure that performance is good enough uh but too much buffering or performance suffers and too little buffering and performance suffers and yeah performance can have different meanings here and so too much buffering uh our latency will get really high because we've got to go through the buffer before we can get through the network and too little buffering means that uh the protocols we have just will struggle and so below i've just drawn out a quick uh plot of what reno looks like so this is a reno sawtooth um reno will go into grow until we see losses and then it will half the size of the sending rate um and so we grow the congestion window then we get a loss to go to 50 percent if we do this without any buffering let me get about 50 utilisation of the link um if we do this with one bdp of buffering we get closer to 80 utilisation of the link so adding buffering can help too much buffering though when we get buffer blue and everything goes the wrong way again when we talk about buffering we talk about the bandwidth delay product um this allows us to size buffers for applications um we get the bandwidth delay product by multiplying the the bandwidth and the delay um to fill the network we need to be able to send one bdp of data at a time and the sender and receiver have to be able to buffer this much uh or the reliable protocols we have require the receiver is able to receive this much traffic the bdp for satellite networks is completely unreasonable so i used calc and i made a quick table here um um when we were talking about um doing 50 megabit experiments for the transport for satellite document uh i i did the math so i found out we need to have a four megabyte uh window for us to saturate the link at 50 megabit in comparison uh data sent a link uh around five milliseconds delay um you could do 20 gigabit of traffic with that size of window so actually with satellite networks we're we're pushing on the the harder part of the network here and we need to have really large buffer sizes okay now we can talk about networks um for network experimentation we have a couple of topologies that we end up with but the most common one is something called a dumbbell network uh dumbbell network sort of looks like this where we have infrastructure at one side and it speaks through a bottleneck and the bottleneck is the internet or a router and then we have stuff come out the other side um we found that for delay emulation virtual machines just have problems because time in a virtual machine is too weird um and with the virtual machines we actually see packets coming through faster than they should be able to uh and so you need to use hard devices for this and so our delay networks are built with physical computers which means we've got some weirder stuff um the network that we used for doing satellite experiments looks like this uh it was built out of three apu2 boards all running 3bsd 12 um and they're connected up so the client connects to the router and then the router connects to the server and then traffic will go over the links to make this manageable we have a head node which we use to if we use as a point to ssh end to control any of the hosts and these are all connected together through an infrastructure switch and so the client router and server all all connect to the infrastructure switch gives us a way to manage experiments without sending traffic on the experimental link and we all connected together and it gets a bit like this uh and in reality it looks like this and in great COVID science you get to see our testbed sat on my bed um and is a nice tidy collection of cables but it was what was what we had um this network is is very simply put together at the entire config is in these slides some of it's hidden for later the the router is set up so that it acts as the the gateway on the interface connected to the client and the interface connected to the server um and it forwards packets the router's firewall rules look like these and basically it allows traffic it enforces forward direction uh delay and bandwidth on stuff from the client interface and it enforces return traffic on the server interface and that's all this is the entire firewall rule it's very very simple it's very easy to integrate into a test like this so the network actually looks like this so we get our return traffic which is traffic from the client to the server going out over the satellite link um and we can talk about the link and we get the forward link set up like this and so it's very simple and it's easy to integrate uh because dummy net is unfriendly to me um it clears out all parameters and so as we ran experiments with other configurations based on scenarios from transport for sat i ended up writing scripts to configure to control the reconfiguration of the of the test bed and so they look like this um but really this is all the interface into dummy net you need all of the hard work goes into figuring out what the network is and the dummy net does quite a good job of getting there um so we ran experiments for for satellite links inside this test bed um and while we were uh configuring the test bed we actually found it very difficult to get tcp up to speed and so if we take a plot from uh wireshark of a tcp connection i think this is moving 100 megabytes of data um we see the congestion window looks like this now i said before that rino has a typical sawtooth pattern this is definitely not that instead what we have is a staircase going up uh and if we we zoom in what we actually see is the blue line is the congestion window as estimated by wireshark and the green line is the received window as signaled by the other tcp uh and what we see is a nice staircase in the green line followed by the blue line and and what this tells us is that we're received window limited um but the received window is growing and so some digging into free bsd uh and we we actually found that the received window and free bsd by default is quite small i mean for a visa network um it's quite big for a normal network it's quite small um but it will auto tune and so it will automatically grow and so each one of these steps in the plot is 16k and you can go and calculate this out and look at it each step is 16k and that was the automatic grow size for the tcp socket buffer and so we had to do two things to get performance up we had to uh configure on the client on the server the the max socket buffer size which allowed us to have bigger buffers for the client on the server and then from iperf we needed to configure a window size so that the client on the server would signal signal a large enough window so that we could actually saturate the connection and to get dummy net to support the capacities we needed we need this this dummy net right here so with all this work done we were able to start looking at quick and we ran quiet log experiments quick and we looked at quick's performance in comparison to tcp and tcp with a pep and then we went on to look at other things with quick and there's a large EU report you can try and dig out that we'll talk about all of this but a really early discovery we made is that the quick we were looking at and so we were looking at quickly in 2019 which is an implementation from Fastly it's had a lot of development since then so this is not a valid result anymore and the quick we were looking at was having a lot of trouble saturating the link and so we made plots of the congestion window in blue and the flight size so the flight size is how much data you're sending at once and we found that the congestion window could grow forever well beyond the bottlenecks marked by the teal and purple lines on this plot that it was entirely governed by something else and we digged into this and we found that flow control and quick which is sort of quick's equivalent to doing a receive window was having a lot of trouble with the the RTT so flow control and quick is different from TCP so quick's flow control is credit based we were TCP's as windows based so window based flow control means that the the sender needs to track size of this window and not exceed what it's been told it can send and a flow control based window credit based flow control the the receiver sends you credits and every time you send a packet you spend credits and these need to be renewed by the receiver and what we found was that we were getting flow control credit release three times per RTT and it was enough to keep us at the the BDP of the network but it wasn't enough for us to actually have any congestion control happen and so we worked around this by completely disabling flow control and we we tried to offer some advice to the designers review and so the final plot I have is quick in comparison to TCP with TLS 1.2 and 1.3 so quick is in the middle in orange it does reasonably well the TCP's on the left and purple are using the V-SAT network with a PEP and so these are enhanced connections using TCP and so they're being sped up and the connections on the right are not using a PEP and so their traffic is tunneled through open VPN and we actually found that quick's doing okay I don't think there's actually lots to be worried about and there's some great opportunities to speed quick up but it seems to be doing quite well so doing this we did hit limitations of dummy net it's awful that you can't use dummy net in a virtual machine it would be nice to use dummy net with vNet but it just wasn't available when we ran these experiments dummy net is is quite old and a lot of 32 bit counter limits which are slowing it down and it would be good to be able to use dummy net above 4 gigabit in the future Luigi presented 2016 TLAM which was a a terrible bit emulation design but there's nothing public about it and we've not seen any growth from there so who knows what will happen there next dummy net is not frozen though and so this year Netgate are putting a lot of money into bringing their changes to dummy net back into FreeBSD and so this year Christoph Provost landed vNet support for for dummy net this is great because it means that you can now integrate dummy net into test suites in FreeBSD and other networks and so you could add it to your and developers test infrastructure and make them suffer and there has been pf support for dummy net for a long time it's been in macOS for quite a long time and in pfSense and it's now being ported across there are reviews in FreeBSD there's a link to the main review so you could go and test this and work on it and we think this will hopefully be MSc'd I mean I think there'll have to be a big blocker for not to be MSc'd so there will be dummy net for landing there is a work in progress high performance dummy net rewrite but it's private and so we'll see it if we see it and maybe watch the mailing list to see if it'll come through okay I have now spoken for 40 minutes I'm happy to take any questions how does quick deal with differing MTU so rc8899 is datagram packetization layer path MTU discovery I can say that because I wrote it it is a algorithm for doing detection of path MTU with networks that support ICMP and don't quick actually requires that paths be able to support 1200 bytes and so all the initial handshake packets are padded out to 1200 bytes and so it actually deals with a lot of the path MTU problems and then this algorithm we wrote is the next step a lot of work has gone into quick to make sorry the question is can quick be misused for DDOS attacks in the same sense a DNS amplification attacks short request large answer no no we don't think so it's been designed to avoid this and so part of this is it requires the packets before the handshake are padded out to 1200 bytes which cuts out a venue for amplification I'm pretty sure servers aren't meant to send more than 1200 bytes in response they're meant to stick to the maximum size the client is sent but even if there's an application it's going to be quite small with the 1200 byte limit and there's a lot of crypto involved and a lot of authentication for the source so it should be avoidable I'm sure there's an amplification attack hidden somewhere but there's been a lot of work to avoid this there's been a lot of thought put into quick to make sure it's safe can physical networks be replaced with jails and V image uh yeah for a lot of cases they can so I think for traffic shaping cases you could probably replace them uh for delay emulation you could probably replace them as well the issue we had was the because we're looking at the performance of the transport protocol uh if we get a packet which has come through too quickly then it will uh it will be an unfair experiment to run and so from a scientific perspective this wasn't allowed uh so we had to use hardware to make sure we were getting correct delay emulation but um you might not care I mean if you're running your web proxy and you just want to see how things work yeah you could still try it it won't be as scientific and you might not be the same as a real use case but it's definitely better than better than nothing what's one feature you wish dummy net had I wish that dummy net could have network rates described in mega and gigabits per second um but when I have tried to use them recently the client has given me bits per second instead maybe Christoph has fixed this that's not really a feature that's a bug um I'm actually quite happy with what dummy net offers right now it has been enough to build these experiments um I'm sure there is stuff available in TC and Linux and M and Linux that would be nice to have but it's it's not been ported yet I think we are lacking a lot of good examples of how to use dummy net I've definitely seen papers where people are trying to look at quick on satellite using net em and the networks they've built have not actually been accurate enough for some of their claims so it's hard and this isn't an easy thing to do it's really difficult to test and verify these networks the question at the beginning of the talk you mentioned that there was fear of quick being implemented in satellite networks because it would kill investments what needs to be implemented in satellite does not OSI model apply here anymore so the OSI model applies um the the meddling that perhaps do with traffic make the web much easier to use on a satellite network um people are very fickle in their enjoyment of the internet and the delay you get on a normal network can be actually be excruciating if you're talking about the best case where there's no packet loss and nothing is going wrong then it is not fun to use if there is packet loss and things are being retransmitted a lot it can be horrible to use people are buying these these services um and if they don't like them they might just not buy them and the fact is that it is entirely possible that um that another service maybe with less capacity can become available so people might just install wireless links and point-to-point links um that will serve the matter field but yeah i mean it's it's like a weird fear but people are just scared of everything that's new new is scary okay are there any more questions okay i don't i don't see anything else thank you for for joining me today i hope you enjoy the rest of your bsd con it's it's been great getting uh most of the conference to happen and i can't wait we can do this again in person


Transcribed. Ladies and gentlemen, the railroad hour. And here comes our star-studded show train. Tonight, the Association of American Railroads presents the delightful Rogers and Hart musical success I Married an Angel, starring Gordon MacRae and his lovely guest, Lucille Norman. A choir is under the direction of Norman Luboff, and the music is prepared and conducted by Carmen Dragon. Yes, tonight another memorable musical is brought to you by the American Railroads.  And now, here is our star, Gordon MacRae. Thank you, Marvin Meller, and good evening, ladies and gentlemen. In this delightful Rogers and Hart hit, Lucille Norman plays an angel. Wings and all. My name is Count Willie Pilafi, the head of a Budapest banking firm. And have you heard, I'm married an angel? Well, if you haven't heard, it's quite a story. So let's go back to the beginning, because it's pretty amazing the way it all happened. How you heard, he married an angel? This beautiful change of day, hopefully good to see. Now, quiet, quiet, everybody. He's coming up the stairs. Now, remember, when Willie comes in the door, everybody yell, happy birthday. My dear brother will be so surprised. Now, turn out the lights. Quiet, everybody. Quiet, quiet. Peter, are all the lights in the place? Oh, hello, Willie. The fuse blown out. I feel terrible. Go to bed.  Bridge. I don't know anybody in this town, but half wits. A surprise! Surprise. What a surprise. Brother, dear, what's wrong? Oh, hello, Peggy. Should we sneak away out into the balcony and have a little brotherly sisterly talk? Sure, birthday boy. Come on out with it, tell sister. Here it is your birthday at springtime and you're the unabvious character I've ever seen. Anything wrong at the bank? Oh, that's funny. That's not it. It's just me. Starlight doesn't mean anything. Springtime doesn't mean anything. Once there was a thing called spring When the world was writing verses like yours and mine All the lads and girls would sing When we sat at little tables and drank may one Now April, May and June are sadly out of tune Life has stuck the pin in the hole Why doesn't my heart go dancing? Why doesn't the breeze delight me? Invite me, baby. It's because nobody... What you need, Willie, is a wife. You need to get married. Oh, sure. Name somebody. Willie, you're not looking for a woman. You're looking for an angel. You know, if one flew down from heaven, I'd marry her in a minute. Come back to your party. Come back to Earth, Willie. I'll join you in a minute, sis. Good. But don't you be too long. Where'd you come from? Heaven. Huh? I'm an angel. Oh, yeah, yeah, sure. What are those silly things hanging down your back? Wings. Wings! We angels all wear them. Now look, look, this is a birthday party, not a masquerade. Whoever you are, please go away and tell my sister that practical jokes aren't very funny. I don't know your sister. I don't know anyone on Earth. I saw you down here, and I looked in your heart. And I loved you. Huh? After all. No desires because nobody... You look like an angel. But she couldn't be. Why are you so unhappy about women? The earthly kind I mean. Well, I'll tell you. Every woman is a cheat. That depends on whom you meet. Angels can be kind of sweet, so... I have fallen once or twice, and they always gave me ice. But they also look so nice, so... Did you ever get stung? Did you ever get starstruck? Did a glamorous skirt ever piled for your shirt and tongue? Did you ever get flung?  Where does it sit? Now at last you got hit by the blast. Then you must have been stung. Then you must have been stung. Where the doctor can't help you. Where the doctor can't help you. And you swear that you're good to another queen.  Even above the music of the heavenly choir, I heard you say you wanted to marry an angel. Well, here I am. Well, uh... Now I know you're an angel. But, uh... What's wrong? Well, those wings. What do my friends say? Well, just tell them the truth, that I'm an angel. They have eyes they can see. Oh, they have eyes, but they can't see, my darling. Come on, sneak down the back stairs with me, and then let's get married. If you just hang on and hug me tight, we don't have to sneak any place. We can fly to our wedding. Angel, it was a wonderful wedding. But, uh, what was that name you gave the minister? Brigitte, it's what my sister Angel's call me. But I'd like it better if you just called me Angel. All right, I shall always call you Angel. Willie, have you ever kissed a girl before me? Well, I'm afraid I have. Oh, that's wonderful. Hmm? I should think it would make you mad. Mad? Oh, no! Because you told me the truth, and the truth is always beautiful. I have married a beautiful man who tells the truth like an angel. Well, uh, on earth, my angel, you must occasionally tell a neat little lie. Oh, no, never. What is the world like? Tell me, Willie. Oh, the world, my angel, is a wonderful place. Now that you are in it... And are you happy? I've never been happy before. You know, I'm a different man. Have you her married an angel? I'm sure that the change will be far bigger for me. Have you her angel I married to heaven? She's carried his fellow with a kiss.  Oh, the mental love, she loves me. Beautiful change will be far bigger for me. A big one? Yes. An extra-special Warner Brothers super-duper one? Means she can never fly away from me. Well, I'll be an earth woman, but I must continue to be this much of an angel. I shall always, always tell the truth. The absolute truth. Have you her at this change of age? We'll return for the second act of I married an angel in just a moment. At the beginning of last week, thousands of servicemen and women were back at their posts, camps and stations after a pleasant Christmas visit with family, relatives or friends. And thousands of other young men and women were back at school or college. But during the holiday season, America truly went on the move with more people traveling than at any other time since the end of World War II. At some major junction and transfer points, crowds in stations and on trains even surpassed the crowds of wartime. With the combination of heavy military travel and peak civilian travel, there were some inconveniences for some. But in the end, thousands of passengers who otherwise would have found it impossible to reach their destinations were able to make their trips by train. Or as you probably well recall, on the eve of the holiday season, winter descended with all its fury in many parts of the country, bringing abnormal cold, heavy snow, icy highways. Under such conditions, travel by highway became all but impossible. Movement by air was severely curtailed. But because of careful advance planning by the railroads, trains continued to operate, carrying the additional thousands to whom a trip at Christmas meant so much. Extra locomotives and cars were spotted where they would be needed. Additional men were placed at terminals and on trains. Extra sections of regular trains were run. And special trains were operated by the hundreds. Thus the advance preparations, the ability to meet unusual conditions as they occur, the determination to overcome difficulties, resulted once again in getting military personnel and countless other Christmas travelers home and back. For in all kinds of weather, the railroads are prepared to provide the kind of dependable, efficient transportation that is to be found only on train. Now here is act two of Rogers and Hearts I Married an Angel starring Norman McRae as Willie and Lucille Norman as the Angel. Well Angel, this is where we live. This is where my heaven sent wife is going to be beautiful and dutiful. Willie, is this a secret marriage or are you going to tell everybody? Oh everybody, no musical comedy dialogue for me where the guy tells his love to a little star or a red red rose or a whipper will. Because after all, how many men get to marry an Angel? I want to tell everybody too. I'll tell the man in the street and everyone I meet that you and I are sweet hearts. I shot it out from the roof the papers flew that we are too complete. When I'm said all my say Willie, here's something that's strictly confidential. I'm not sure I know what confidential means but it sounds exciting. Well, it's not. To tell you the truth dear, my bank is a bit shaky and I have got to negotiate a loan from the rich duchess. My sister Peggy is bringing her here now and this is my wife, you must help to entertain her. This should be fun. Plotty, but fun. Well, not too much fun now, Angel. Don't do things on a sudden impulse like this morning when you gave your new fur coat to that horse. Well, he looks so cold. Maybe that's the way they do things in heaven but not down here. I won't do a thing. Only talk. Fine. Oh, good morning. Willie, you remember the duchess. Oh, delighted to see you, your grace. Thank you, my dear Count. May I present my new wife? How do you do? Oh, I'm not to do anything. Only talk.  And she's jolly. He calls her Angel. That's because I am an Angel. Modest, too. Willie, don't you think the duchess looks marvelous like a young girl?  She may be kind but she's not exactly truthful. She's terribly old duchess. Well, really? Uh, duchess, I merely wish to talk to you about a business matter. Run along, Angel. As you know, duchess, our bank is one of the soundest in all of Europe. Willie, how can you say that out loud? It's not angelic. It's not the truth.  Shaky? Well, get out of here. We've ruined everything. Get out of here. Oh, I've done something wrong. Well, I'll go. I'll go right now. Oh, dear. I need help. Sister Angels, can you hear me? Fly down and help me. Senda, Clarenda, Filomena, Rosalina, Arabella, Serenella. Where did you come from, sisters dear? Out of the everywhere, into the here. Where are your wings? I've lost those things. How can an angel lose her wings? It just happened. It wasn't planned. But how? Tell us now. It's just one of those earthly things you wouldn't understand. Brabita, what seems to be your trouble? My husband doesn't love me anymore. The heaven you say? I don't belong here. I'm nothing now. Not an angel? Not a woman? Oh, take me back. My dear Brabita, you must awaken. You are sadly mistaken. You've come down to earth, and here you must stay. It's too late for us to take you away. I'll make him unhappy. You must take me along. You're not an angel anymore. But one of those strange things. A woman without love? Or an angel without wings? Other than his words, they just left Peggy. Some relatives of mine. They just went out the window. Went out the window? Oh, sister-in-law. What am I going to do? Well, angel, I think you need some lessons on how to become a woman. And I'm just the cookie to do the teaching. Where is she? My angel's left me? She's only gone out to do a little shopping so she can become alluring and feminine and womanly. Oh. Here she comes. Oh, she got her fur coat back from the horse.  Angel. Well, hello, you fascinating man. Whoa, whoa, whoa, what happened to you? I've been taking lessons on how to be womanly from your sister. What did she teach you? Plenty. You can do that, you don't mind. But don't forget that little twinkle in your eye. Now, for example, the next time I meet the duchess, I shall bat my eyelashes and say, sweetly, old duchess, you are the youngest-looking woman in all of Europe and parts of Asia Minor. Now you can get a but you must do it. Well, angel, I love you just the way you were. I don't change. You tell the truth if it kills me. But be your own angelic self. Don't be too blamed womanly. Telephone husband. Hello? Oh, yes, duchess, how are you? You what? You did? You will? That's wonderful. Thank you, duchess. We'll sign the papers in the morning, duchess. Duchess? That was a duchess. I decided to lend my money to you. Bang!  Oh, come here, you angel. Sisters, what do you want? Goodness, no girls.  Why, it's awful, terrible. I can't stand it. Come here, woman. Thank you very much. Angel will be back in just a moment. I mean Lucille Norman. And meanwhile, our thanks to Betty Lugerson, Myra Marsh, Lamont Johnson, and to our entire company. I Married an Angel by Richard Rogers and Lorenz Hart was adapted for the railroad hour by Lawrence and Glee. The railroad hour is brought to you each week at this time by the American Railroads. At the urgent request of the government, American industry is busily at work. Increasing productive capacity to meet the demands of national defense and civilian commerce. As they're part of this big job, the railroads have been intensively improving and expanding every part of their plant. Essential to this program is the construction of freight cars and locomotives on a scale to match anticipated American transportation needs. And only through the allocation of adequate steel for these purposes can railroad carrying capacity be increased at a time when it is so necessary for the nation's strength and security. Now here again is lovely Lucille Norman. Thank you, Gordon. I'm glad I lost my wings. I'd much rather take the train. The show train. Oh, anytime, Lucille.   Well, Lucille, Mimi Benzela is our guest. And we're going to be singing the great Sigmund Romberg melodies of the Desert Song.  Good night, Gordon. Good night, Lucille. Oh, the board. Well, it looks as though we're ready to pull out. And so until next Monday night, and Desert Song, this is Gordon McRae saying, goodbye. Gordon McRae can be seen in Warner Brothers' Starlet. Our choir is under the direction of Norman Luboff, and our music is prepared and conducted by Carmen Dragon. This is Marvin Miller saying goodbye until next week for the American Railroads. Now keep tuned for your Monday night of music on NBC. Hear the voice of Firestone. Now stay tuned for the telephone hour on NBC.


Diga, I have Cynthia here. Two years ago, was diagnosed with an inflammatory breast disease, a very rare case. There's no cure. She said, I can verify the lumps are no longer there. That's a creative miracle. They're gone. Yes, they are. Doctors have been trying so hard to find treatment for me. I've seen five doctors in total. The skin would get so red and so thin that it would cause open wounds and draining. And bleeding, when you said, place your hand on your sickness, I placed it on my chest. And I immediately felt something in my chest. And I believe he's healed me. And to Jesus belongs all the glory and the honor.


Hello, once again, let's talk about media and communication. A hot topic today, a well-timed topic today. I invited Martina Novotna to discuss barriers to participation in online discussions, especially on social media platforms like Facebook. And Martina and I will focus our conversation on two topics, very important topics and well-timed. The COVID-19 pandemic and the Russo-Ukrainian war. And Martina and I will explore the role that negativity has in this online discussion. So the impact it has on online participation. Martina, welcome to our episode. Thank you very much for having me here. Martina, I went through your article and you mentioned that online discussions can be, of course, and we all know, hostile and civil. They can be filled with disinformation, negative perceptions.  So is this the core and the importance of your research? Yeah, I would actually say that these are two main actors we are looking at, in civility and cross-cutting discussion, because when it comes to disagreement, conversation just became more flawed and heated and emotional. So what is actually the importance of our study? It lies in a connection with democracy, we all agree that online political discussions are related to healthy democracy because people can exchange opinions with each other, they can interact and it might actually, ideally just lead to other more complex maybe online political participation. And what is important here about the online public sphere where people just talk with each other is that they can be exposed to different and new perspectives, which again, based on previous research, might lead actually to a decrease of polarization or even critical thinking about the topic. So, however, even though online discussions are very important, there are some uncertainties by the scholars who worry about the barriers. And this is the topic we also look at. These barriers, namely, in civility and disagreement, which on previous studies seems to be as problematic when people exchange opinions. So the core thing here is to look at who is not actually present in this conversation because imbalance of opinions might be very crucial, especially during the crisis time such as COVID-19 pandemic and Russia, Ukraine and war as people, there was a high demand for information. So people are not just actively contributing to conversation, but they are also reading these opinions, which might be actually biased. So a link to democracy and focusing on the barriers and why some people, some groups are not there. And correct me if I'm wrong. Your article intends to feel a void, which is the lack of qualitative studies on the matter as they tend to follow more quantitative approaches. Is that so as well? Yeah, this is the absolutely correct. It's one of the research gap we actually found here. The most of the research is made by quantitative researchers using surveys or experiments. They mainly focus on factors or determinants, but really you will find some study that do it qualitatively. And that was our intention to talk to people who actually actively contribute to this conversation and see what is discussion dynamics, what they feel, what's their behavior and what's other people behavior. And now I'm talking about these participants in the conversation that have different point of view, how participants perceive this disagreement and if it's really problematic to them. Let's hear about them, let us know about the findings. So coming to the findings, the main interesting thing is that as crisis unfolded, we realized that people are just less motivated to contribute to conversation, even though we are talking about very active people who are engaged in conversation, but even those people became less motivated after second year, COVID-19 pandemic. And the reason was quite simple. They had a negative experience with conversations, experiencing and also negatively evaluating this conversation partner as being less educated or as being less intelligent, doing grammar mistakes and so on. But we are then talking about, not only about other participants, but also about the people who doesn't share their point of view. And coming back to the interesting point for me, it's that those people just lack a neutral position. What wasn't here was some middle ground. So taking example of COVID-19 vaccination, there were people who were against the vaccination and those who were supporting, but our participants reflected that there is no middle ground, no opinion that would be just in the middle. And a part of negative feelings and negative views of other participants, some of them also felt kind of uncomfortable to be part of this conversation. These people were usually less active on social network sites, maybe less assertive and less extreme. Those people were most likely to be discouraged to take part in conversation. To summarize maybe our findings, I would point out also this information that was one of the characteristics prescribed to the people from the other side, those who doesn't share the opinion. So they were described as those who shared this information. So to get, take it together, disinformation, negative evaluation, but also perceived polarization between those two groups where the main characteristics that discourage people to be active in online conversation, especially those less active, which is just in line with previous research for instance, Hamilovsky et al. 2014. And I assume as you said, the exclusion of these groups can have consequences on the quality of the public discourse, I think. So let's explore this. Let's explore the impact of your findings can have on public policy, your society, policy implications of this. I think coming back to the harmful impact of that we are missing some voices in conversation might be related to content moderation, which is also already happening on social network sites, but I would just push policymakers or social media owners to work more on how we should filter this problematic content out, because there are several types of uncivil attacks that are problematic, but some of them we can all agree. And also the participants kind of recognize the red line because it's a matter of personal characteristics, how they perceive the problematic and civil attacks. But when it comes to xenophobic comments, racism or comments against human rights, they all felt that this is beyond the red border. So together with content moderation, we should be sensible of which content should be blocked and which not, because we are kind of balancing on a border between free speech and censorship as well. Some suggestions maybe also for users, which is based on our study will go for blocking problematic behavior that can help not only to those people who have struggles, but also other people who feel more sensitive and uncertain to contribute to such conversation. Maybe toward the conversation about more extreme opinions because it doesn't mean that we just miss some people in conversation, but it can also lead to extreme opinions sharing, which again in the context of crisis time it's even more crucial. So policymakers maybe here needs to establish some tools or education programs, how to actually perceive information on social network sites, because as I already said, online conversation may be also the source of information not only contributing actively to these talks. So some recommendations for the platforms, the users and the policymakers. Let's get back to academia now. So what's left to research now? More groups, more platforms, more qualitative studies. What's ahead of us now? That's a really nice question. So I believe that we kind of shed light on dynamics and online conversation from the perspective of qualitative research. But to be transparent, this is case study from Central and Eastern European regions. So we need probably more research that is done within this area and compared with other contexts, because I can talk about the Czech Republic where the Facebook, it's the most popular platform and we did research on Facebook. But there are differences in different contexts and also within different social media platforms. So the Facebook in 2021, 2022, when we collect the data, it's not Facebook, which is today. So we need more studies that will focus on comparison between and across different platforms, such as TikTok, YouTube and so on. But also to pay attention, like to behavior of these users online, which may be different Facebook users two years ago might be different than now. So I would really recommend to look at the platforms and also different contexts. And as well, the qualitative study, which are really, really here within this area, my last recommendation for further research would be connected to this information because I found it really fascinating to see the connection between civility and disinformation as people have evaluated people with different opinions as more uncivil, spreading disinformation. So definitely there needs to be done more on this topic. Still a lot to research there. Can you provide some additional resources about the topic discussed today? Yeah, we are kind of in a podcast format. So my first suggestion would go for podcast episodes, social media and politics, especially episode with Patricia Rossini, who has done a lot of work on civility and intolerance. So I highly recommend this. If you're maybe more fun of some books, so I have also some suggestions that I really love about this topic. For instance, Gina Masoulo, Chen Nesty Talks, or Emily Sidnor, who looks at the civility from more psychological perspective. One of other actors that was important for our study was crosscutting discussion, disagreement. So the last book recommendation would be Christian Vakary and Augusto Valeriani, who has done work on outside the bubble, social media and political participation in Western democracies overall. My last suggestion would be related to specific context, maybe a different one, because we detect some characteristic that might have an impact on discouragement to be imparted on a conversation. So the wonderful work has been done by Lenka Bohotsova, who focused on the context of immigration, which is another controversial and polarizing topic, same as the COVID-19 crisis or Russia-Ukrainian war, and she has done an article named Frustrated Women Invite the Immigrants to Europe. So that would be my last suggestion. Sure. And to our listeners, all these recommendations that Martina just shared will be available in the Let's Talk about Media and Communication website on that episode page. Below the video, if you scroll down, all these materials will be available. Martina, this has been a straight-on-the-point episode, but I'm going to ask you to, as I ask all our speakers, if there is anything you want our audience to remember about this talk in one or two sentences, the punchline, what would it be? So one of them will be that instability is a problematic pattern, but we need to take into account personal characteristic of participants in online conversation, because some of them just feel resilient towards it, even though this group of people was just a minority within our qualitative study, there was a rapid decrease in willingness to participate within the crisis context, which I think that it's important because we can look at the other crisis and to see if there is a different or similar pattern. And lastly, incivility and perceived polarization has been a significant barrier for engaging in discussions for most of our participants. So to look closer for demobilizing patterns of discussion to go, I think. Martina, it was a pleasure. Thank you. For those who are watching us on YouTube, all the resources that I said before and the article that services base for this conversation, you can find them on, let's talk about Media and Communication website on the episode page. You can also listen to this episode wherever you get your podcast, if you prefer alternative content, subscribe to our newsletter there and follow us on social media. Thank you very much. Thank you.


Association is the concurrence of two factors more than expected by chance. The following are the considerations used to assess whether an observed association between an exposure and an outcome is likely to be causal. A higher strength of association or effect size between exposure and outcome consistency or reproducibility observed in different studies, populations and circumstances. Specificity exposure is associated with a specific outcome and the outcome is not linked to multiple exposures. Caus must precede the effect in time. Biological gradient or dose response relationship that higher levels of exposure are associated with a higher risk of the outcome. Plausibility and the proposed causal relationship aligns with current biological knowledge that causal relationship is coherent or consistent with other known facts and does not conflict with established principles. Experimental evidence can provide stronger support for causation. Analogy similarities to other established causal relationships. Some epidemiologists prioritize ruling out chance, bias and confounding to derive causation from association over Hill's criteria.


The atrociraptor is bred for great dexterity and high intelligence. They possess immense agility and are versatile hunters. In a pack, these efficient predators are relentless in pursuing their prey.


As much as I was actually seeing youth issues in my country, girls' issues were always many and pressing. And child marriage in particular was one issue that really frustrated me a lot of time because I was part of different advocacy meetings that would discuss about, you know, how we are going to ensure that minimum age of marriage in that country is 18. And I saw little progress. So I asked myself, what can I do as a lawyer now? And as a young person that I feel my voice is something that I can actually lend in this movement to speed up the process of raising the minimum age. And that's where even the petition came about. In my country, Tanzania, two girls out of five girls are married before their 18th birthday. As a country, we need definitely to speed up. For us, we always stayed as citizens of Tanzania and our constitution. It's actually our right to challenge laws that we feel infringe some sections in our constitution, specifically articles on the basic human rights in our constitution. At the end, when we won the litigation, it was actually a victory for our country, not just for us as young people, but, you know, for our country, Tanzania, that finally we are able to say girls below 18 years of age will not marry.


Know what it's like to underperform and take that quiet car ride home.  Everyone's quiet You know, they're disappointed, but you're disappointed in yourself. I know what it's like to be cut from a team overlooked by a coach. I know how it feels to Not even want to go to practice Because you know your teammates are gonna make fun of you and humiliate you Football can be extremely frustrating, especially when you're not playing well, but I want you to know that I've been through all that and I've come out on the other side and I say that Not to boast and not to brag but to let you know that it's a possibility and you can do exactly the same So whatever you're struggling with right now I want you to know there's a solution to your problem and it all starts with you Seeking that information. If you don't know about me I used to be a huge underachiever, but through obsessive self-improvement I found my success earned a college scholarship played for my national futsal team a YouTube channel with over 100 million views I've helped players worldwide and I'd love to help you improve faster and achieve more And that's why I'm here today I want to show you that it's possible to make noticeable improvements in your game in a short period of time To get more playing time to earn a starting position to become the go-to player For your team and I want to show you how you can do it without training five hours a day For you to get better skills fitness and confidence You have lifetime access to this content and you can do this at your own pace However, I want you to get the best results possible So my advice is to fully immerse yourself in this program for the next 60 days first get organized with the soccer success System the reason most players fail is not because of their talent, but their discipline This kit includes a set of powerful tools designed to help you stay motivated Track your progress and make the most out of your training You're gonna start training with the five-star footwork formula as I said There are multiple training routines in this program But this is the mandatory one that I'm asking everyone to do There will be an introductory video to give you more detail on how to use that But there are three phases everyone should start at the beginner routine move into intermediate and then to the advanced I wanted to create something that you could do in a small space with no equipment So there are no Excuses each day you will do a different workout routine which will focus on a different area of your development Below each training routine you will find an in-depth tutorial Explaining how to do each drill more effectively tips and ideas to get the most out of each session Complete the total player transformation system This is a 12 module coaching and education program that will help you understand how to improve every single aspect of your game From your technical skills to tactical knowledge mental toughness and physical fitness on this page You'll be able to access all of the different modules in this Educational program as I mentioned in the beginning you have lifetime access to this content So you can complete this on your own time. However to get the best results possible I think it's a better approach to go through this at a relatively quick speed The more you can consume this information and get these new ideas and add them to your game The better your training will be with this program the better your mentality will be and the better results You will get if you have any issues with the training you need advice Send me a message. I'm here to help you and customize your training with additional routines Depending on your schedule and your personal goals You may want to push yourself beyond the minimum training requirement and focus mainly on your football What you can do with the ball at your feet? However, if you want to add more physical training and specifically weight training I would suggest doing that once you've added the other components now customize your coaching experience with additional Lessons position specific training. So whether you are a defender a midfielder or an attacker of forward There are specific tutorials to help you better understand how to play your position what to do Defensively offensively off the ball movement and everything you need to know to have more confidence when playing in games Goal achievement guide is a very in-depth course on how to achieve your long-term goals and soccer for most players This will be making a higher-level team earning a college scholarship or playing professional football This course is going to force you to think a lot deeper above the goals that you want to achieve and the actual steps You need to complete in order to turn your dreams into reality improve your personal nutrition Play better in games and leverage your losses to improve even faster You will also get access to 12 professional match Analysis videos where I'll break down movement decision-making Technique from the best players in the world to help you get a better understanding of what you should be doing when you're on the field On top of all of that I'll give you access to programs I've created in the past these range from interviews with professional football players FIFA agents club scouts college coaches at home cooking tutorials Additional training routines you can use at home in the gym and on the pitch and you can go through all of these at your own pace So if you're the type of player who is really serious about becoming better You don't want Opportunities to pass you by you don't want to look back in your career and say I wish I would have done more Then I would really encourage you to hop on this opportunity What's the worst that can happen? You're gonna get better regardless and the only way you're not gonna get better is if you don't actually go through the videos And you don't actually do the workouts But if you do those two things I guarantee you'll see great results and I will be here to help you Thousands of players have already improved with this training system And you can too the only thing that will stop you from getting results is a lack of Execution remember you're not gonna be a brand new player in one day of training But if you stack up those small wins on a daily basis following the system You're going to be a completely different player in 60 days as you scroll down this page I'm gonna show you how I myself and my clients have improved the quality and consistency of our performances in big games Where it actually matters have gained respect from coaches One countless trophies, and I'm going to show you how you can do exactly the same


All right, welcome back. Okay, so in this video, what we're gonna do is we're going to work with the normals on these scattered points here. And what we need to do is we need to create a direction for the branches. So, you know, if you've ever looked at a lot of trees and stuff like that, you'll notice that the branches at the bottom kind of tend to droop down a little bit. And as they get younger and younger, they kind of still have a lot of strength to them. And so they start to fan out. And so we wanna create this kind of fanning type of look to it. So the other thing that we also need to take care of is the way that the branches kind of grow in this spiral kind of fashion around the tree. So as they grow out, they kind of spiral out from the trunk. All right, so we need to create those two types of interactions there. Okay, so let's get started. Let's go and drop down and attribute wrangle node. Attribute wrangle, there we go. Okay, and let's name these. So this one is going to be reverse normals. And this one's going to be branch normal directions. Okay. All right, so let's turn this guy on. And the thing I wanna do now is I wanna create that gradient value because if you're familiar with what we're gonna do here, let me actually explain a little bit better. What we're gonna do is we're gonna utilize the sine and cosine values. First to create that spiral action. So I just wanna create some flat normals that just basically spiral around. And then let us control the spiraling action. So let's actually take a quick second here and just take a look at that for those who aren't necessarily familiar with the sine and cosine. All right, so now let's drop down a line here. Okay, and this line is going to be, we can do it in the y direction. That actually will probably be better. All right, so let's just add a whole bunch more points to it. And let's come into the attribute wrangle node that we created. Again, this is just a test here that we're going to do. I really wanna just show what sine and cosine does. All right, so what we wanna do is we wanna create that gradient value. I need a value that goes from zero to one. All right, because what I'm looking for is a way to pull out the rotation values. And now the sine and cosine value will return for me a value of one to negative one. It basically creates this kind of sine wave. All right, it just creates a wave. All right, so to do that, remember, we can create that gradient value. Now I have a preset for it. All right, so there's the gradient preset. Okay, but let's just type in one more time. All right, so what we're gonna do is we're gonna say f at gradient is equal to that at PT num. So the current point number divided by our number of points minus one. All right, and that will give us that float value. Okay, and again, I wanna be able to cast it. All right, so let's create the cast. There we go, and there we go. All right, so now if we take a look down in our geometry spreadsheet, we have a value from zero to one. And this is perfect because we can feed that value into a sine function. All right, so let's say at P plus equals our sine. You can see it comes up right there. And we'll just pass in the at gradient like so. And you can see that we're starting to get the beginning of that curve. Okay, well let's actually just do one direction. So right now, the reason why it's facing off in the positive value is because we're adding on to this vector. So we're adding on that value to each component of the vector in the X and the Y and the Z. Let's just do the X for now. So we can see this in action. All right, so we're getting the beginning of that curve. All right, so if I were to do something like times CHFs, or a float channel, and we're gonna say offset, not offset, it's amplitude, frequency. That's what it is, we'll call it frequency like so. And then change that. You can see that now as I start to add more frequency to it, we get more and more of that wave function in there. Okay, so if I'd add more points here, we'll get a smoother curve. So we're getting that higher frequency now. All right, and then you can go and you can multiply that value by some other value. So we can call this global FREQ for global frequency. And we'll just do that and there we go. So now we can control the, what they call amplitude. So we should actually, let's just rename that to amplitude. And let's go and we'll leave that for now. So there's our amplitude and here's our frequency. Okay, so that's what that does. And it goes the same for the cosine as well. So if we were to do the same thing, let's do this like so. And then the z direction, so let's say dot z. And instead of the sine, we'll do the cosine. All right, so you can see now we're getting a spiral. Okay, so that's how you would create a spring. Now we can actually just control the length of this. Now we have a spring. Okay, so that's the basics behind the sine and cosine. So what we're gonna do is we're gonna take a look at how we apply that then to normals, all right? We went and adjusted the x and the z positions of the points on that last line in that test, all right? So what we can do is we can actually apply the same theory or concept to the normals as well. So what I'm gonna do is I'm going to drop in my gradient. All right, that way I don't have to type it again. That's why those things are really useful, all right? And what I wanna do now is I want to just adjust the normals in this case. So what I'm gonna do is I'm gonna create a float value and this is gonna be called our x-pods. And our x-pods is going to be equal to the sine of our gradient. Let's just start there, all right? And then our float z-pods is going to be equal to the cosine of our gradient like that. Very cool, okay? So with that done, what we can do is then just pass that into the normal, okay? So let's go and just set our at n dot x to equal the x-pods, all right? So instead of the at p or the position of the point we're just affecting the normal now. And now we're gonna say at n dot z is equal to our z-pods. There we go, let's take a look. And now you can see that we're starting to get a little bit of value there. But the crazy thing is that we don't have an ordered set of points. So let's take a look at our point numbers. You can see that our points aren't ordered which is why we're getting this weird effect. We want it actually to spiral from the bottom to the top. And right now it's kind of random which might actually be what you want. Let's go first before we go and fix that or at least I'll show you how to fix that. Let's create a float and we'll call this float the rotation amount. And we're gonna equal that to a float channel. We'll call that the rotation amount, all right? So then what we'll do is we'll multiply that by the rotation amount. We'll just copy that and do the same for the z. So we get the same effect on the other end and we'll create that parameter. And now if we take a look here and you can see that we're spiraling around. Now that might be perfectly valid solution to what you're looking for, okay? But if you do want more of an ordered kind of point control or control over the normals there, so you get a spiral starting from the bottom and going to the top, what we need to do is we need to do a sort. So I'm gonna drop down a sort node here, okay? And what we can do is play around with the different settings here, all right? So the point sort I'm gonna do by y. And you'll notice now we have zero, one, two, three, four, five, six, seven, eight. Perfect. And that's because it's checking the y direction.  Okay, so that takes care of that. And if we now take a look at our solution here, you can see that we're getting an actual spiraling rotation. So I did it really slowly. You can see now we're spiraling around. And if you overpower it, you get this kind of natural looking spiraling effect. All right, that's cool. So now what I wanna do is I wanna control the y direction. You notice they're all pointing in that same direction. They have the same y value. And again, that might be what you're after, but I actually wanna add some control to that. Okay, so let's put in a little bit of information for ourselves. I'm gonna put in a comment here and we'll just call this the x and z normal positions. Okay, and then what I'm gonna do down here is I'm going to build a y position. All right, so this y position is gonna be a float value. All right, so we'll just call this the y pods. And this is gonna be equal to a ramp. All right, and I'm gonna feed in that gradient value. Like so. All right, so let's go and I need to give it a name. That's why that's complaining. All right, so this is gonna be called our y pods. There we go. All right, and we'll just create that parameter. And what I wanna do now is put in another line. This is at n.y is equal to our y pods. Like so. And you can see now, as they start at the bottom, the branch is really flat. And as they get to the top, they're pointed up more. All right, and that's exactly what I'm looking for. So now I can overpower the top value here. Like so. All right, and we can make a negative value for the bottom to get those bottom ones to droop. Very cool. But you'll notice that our normals, as they get overpowered by this value up here, that they are actually greater than a length of one. And really, you wanna keep those values normalized. So at the very bottom here, let's say at n is equal to normalize at n, like so. And that'll keep them at their normalized lengths. Awesome, so we're doing pretty good here now. So now we've got the directions for all these. And if we were to go and place a line on these, so let's just create another line. This will come our branch line, like so. All right, and we did a copy to points. Do a copy to points. There you are. All right, we've passed that into the point, or the primitive to copy. And the points to copy to, you can see that we are getting a weird result there because we need this direction to point in the z direction. All right, anytime you use that copy to points there, you need that z direction. Or the line needs to, or the object that you're copying onto the points needs to be pointed in that forward direction, the z direction. All right, so now we have our points.  Somewhere. Let's turn off all these values here so we can take a look. You can see that the line is getting scaled from top to bottom. And that is not what I'm wanting. We can say that the at p scale is equal to one. Let's see if that takes care of it. And in fact, it does. So there was some p scale values left on that particular branch. Let's actually comment that out and take a look here again in the geometry spreadsheet. So that's one way you could do it. I don't necessarily recommend that. If you want to do it the clean way, what I do is do an attribute, attribute delete just to get rid of it. So what we can do is turn that on, go to our point attributes here and get rid of that p scale in the gradient because we're creating it again. So that cleans it all up. So now we don't have to put that in there. So now as I add more branches to this or more points using our resample node here, you can see that we're getting something pretty cool. All right, we can go back into our branch normal directions and change the amount of rotation again. So just pump it up even more.  So if we were to merge in the trunk here now, so let's get the final result of that sweep for the trunk. We're starting to get something that's kind of like a tree. All right, we're obviously gonna make it more like a tree. So I'm gonna close out the video there now that we've got most of that work done. All right, and what we're gonna do is move on and start to take care of the branch. All right, we need to do a little bit more work on the branch itself, the branch line. Okay, thanks so much.


Josh it seemed like the Yankees offensive fortunes changed after that second rain delay What do you think was the biggest difference in getting you guys going? I mean I feel like we you know hit some balls hard had some good at bats there And you know I feel like we've had we had better at bats today than what we've probably been having the past few days How much do you credit Anthony Rizzo for just getting the first one on the board? Yeah, I mean the first one's always the hardest once you get past the first one normally starts rolling You know Riz has done a great job so so far for us this year and You know, hopefully we can keep it up first home run as a Yankee some productive at bats for you tonight What was the biggest difference for you? What clicked in the batters back?  It's getting close Michael King put in yet another big situation What did you think about the poise he had to be able to get that final out of the inning? Hey, you know I've been here for a little bit now, but I know you know Michael He's confident in his stuff and his ability and we want those guys on our side He's doing a great job and he's showing that Josh. Thanks. Thank you. Send it back to you


we're gonna, we're gonna say that we put more, we got a decent amount of capital here that's just sitting here until we actually buy what we're gonna buy for the assets, we might want to put some of it in an investment account. So we're gonna put some of it in an investment account, the idea here being that we're not holding it in an investment account as our business structure, meaning this business is in business to sell guitars, generate revenue that way and have guitar lessons and whatnot, not to generate revenue through investments in stocks and bonds, generating revenue with dividends and interest. Some businesses might be in that business, but that's not what this business is designed to do. So what I'm trying to emphasize is the fact that if we had excess cash due to the business doing well, and we, we, we then would want to, if we had excess cash, we're not going to use in the business, give it to the owner. So the owner could invest meaning draw it out of the business. So the owner can invest it in stocks and bonds or whatever investments they want to do. The reason it's in this business is to achieve the business objective revenue generation from selling of guitars and whatnot. But we might put some of it in a short term holding account so that we can hold on to it until we're ready to, to spend it on machinery and equipment. That's the general idea. However, you can also have QuickBooks being used for your personal bookkeeping as well. It works quite well. And in that case, you have a different objective. Your objective is basically to live well. But so the accounting is actually a little bit more confusing in that case, but you might then organize your, your investments in, in general, in, in the QuickBooks software. And so you can kind of apply this concept to that as well. We'll kind of touch on that. Okay. So we're going to take the money out of the checking account and put it into like an investment. We're thinking like mutual funds, for example, or a money market fund. We'll just imagine stocks and bonds that we're going to put money into.