Hello, in this presentation we will take a look at multiple choice questions having to do with the adjusting process. First question, a principle requiring identifying the activities of a business with specific time periods is the A operating cycle, B time period assumption, C revenue recognition principle, D matching principle, C a cruel principle. If we go through these, once again, the question of a principle requiring identifying the activities of a business with specific time periods is the A operating cycle. So I don't think that's going to be it. We're not requiring the identifying of activities of a business with a specific time. Operating cycle kind of talks about a time. We're talking about a timeframe, but it's not going to be the operating cycle. Time period assumption, so that's going to assume that we have a time period that we're going to be applying to. It sounds pretty good. We're going to keep that here. I'm going to go to the next one, revenue recognition principle. That's going to tell us when we recognize revenue, basically when it is earned according to the revenue recognition principle, but it's not going to be identifying the activities of a business. It identifies the revenue, but that's actually not going to be it. And then the next one is going to be the matching principle. And that also applies an accrual principle, this being related to the expenses, recognizing the expenses in accordance with the time period that they helped to generate revenue to match them up to the revenue, but that's not going to be it. And then the accrual basis, that's going to be these two principles here. And you might be able to, when you see a question like this, if revenue recognition sounded good or matching sounded good, and then you say, oh, well, they're both there and they both might be good. And then you see the accrual basis, which again covers both the revenue recognition and matching because they're all basically in the same kind of wheelhouse. Maybe we obviously can't pick all of them. So possibly none of them, that could be a grounds to eliminate them in other words. And we're going to be left then with the be time period assumption. So we're going to say B is the answer. If we read this once again, we have a principle of requiring identifying the activities of a business with specific time periods is the time period assumption principle. Next question. Prepaid expenses, accumulated depreciation, accrued expenses and unearned revenues are examples of A items that require contra accounts, B assets and equity accounts, C items that require adjusting entries, D asset accounts and E income statement accounts. Once again, the question of prepare prepaid expenses, accumulated depreciation, accrued expenses and unearned revenues are examples of A items that require contra accounts. Now contra account is an account that had that is contra to the normal balance. The most common one that we run across would be accumulated depreciation because it's related to the equipment account or some type of property plans and equipment and it has a credit normal balance to bring it down the total equipment. But the others are not contra so it's actually not going to be A. One of them has a contra account but they all don't and then B assets and equity accounts. So if we go through there, we can say prepaid expenses that looks like an asset, accumulated depreciation that's a contra asset, a kind of asset, accrued expenses, you could say it's going to be and not an asset but a liability, unearned revenue also going to be a liability. So we're going to say assets and equity, no items that require adjusting entries. That sounds like it could be it. If we go to D, we're going to say asset accounts. Again we have some liabilities up there so that doesn't look correct and E says income statement accounts and I don't think any of them are income statement accounts that are listed here. Not that there wouldn't be income statement accounts in the adjusting process but that's not it. So we're left with C here, items that require adjusting entries. We read through that one more time. We're going to say prepaid expenses, accumulated depreciation, accrued expenses and unearned revenues are examples of items that require adjusting entries. Last question, an adjusting entry could be made for each except A, prepaid expenses, B, depreciation, C, unearned revenues, D, owner investments, E, accrued expenses. Reading through that one more time we're going to say an adjusting entry could be made for each except A, prepaid expenses. Prepaid expenses are an item that we do have adjusting entries for. That's one of our categories of expenses, the most common being prepaid insurance. So that is not going to be our answer because we do have an adjusting entry for it. B says depreciation, depreciation related to the depreciating of property plants and equipment is an adjusting entry and therefore it will not be it. C says unearned revenues, unearned revenues is going to be revenue that or cash received that was not yet earned. And therefore we do need to adjust it and therefore it will have an adjustment and not be the answer here. Then we have the owner investment and that doesn't, I don't recall an adjusting entry for owner investment. I'll skip that for now. And then the last one says accrued expenses. Once again that's going to be one of our categories of adjusting entries and so it will be an adjusting entry. We can cross that out leaving us with the answer of owner investment. Once again question and adjusting entry could be made for each except answer D owner investment. Next question. Preparing financial statements based on the principle of recognizing revenue when earned and matching expenses to revenue is A, cash basis, B, the matching principle, C, the time period assumption, D, revenue basis, E, accrual basis. Question once again preparing financial statements based on the principle of recognizing revenues when earned and matching expenses to revenues is. So we're going to say A, cash basis, that's going to be the opposite of what we're talking about because we're recognizing revenue when earned. So that's not going to be the cash basis. B says the matching principle and that it is going to include the matching principle because we are matching expenses to the revenue. So we can leave that right now because that kind of sounds like it's part of it. C says the time period assumption and you can kind of see whether we have something to deal with timing, but it's actually not going to be that item because that deals with us being able to basically record things in chunks being typically months, quarters, years. Next one revenue basis. So we do see revenue here. So I mean who might be saying maybe that has something to do with it. And then E says accrual basis. So accrual basis is our normal generally accepted principle of recognizing revenue and expenses. So if we look at what we're left with, our question once again being preparing financial statements based on the principle of recognizing revenues when earned and matching expenses to revenues is. If we look at our left answers here, we've got the matching principle, revenue basis and accrual basis. Now I'm going to say that the accrual basis is really the overarching thing. And if we look at the matching basis, it only applies to half this. It applies to the expense side of this because it's one of our accrual principles. And the other is the revenue recognition principle. So this isn't even really the right term. If it was revenue recognition principle, it would be given the other half of this recognizing revenue. But the term that covers both halves would be the accrual basis. So answer and question is preparing financial statements based on the principle of recognizing revenue when earned and matching expenses to revenues is E accrual basis.


Good evening, welcome to the DCU, 24 hour block, nope, hang on again. Good evening, welcome to the vlog! This is the first vlog of 2019, and you know what it means with the first vlog of 2019? If it's the first one, it means it has to be the best one, so remember that people. So, what have I got this week? Well, I've just come back from in Canberra, England, where I'm on. This lovely dude right here. And as you know, I'm part of the DCU Social Democrats, so... I'm just gonna say the straights first. If anyone's out on the Monday next week, even though I'm nearby in Angus and please come around, but otherwise I've got a great week in store for you. I'm gonna be off the bus for the next three days. Then I've got boring old lectures on Friday, but at least on Saturday I've got other planning to now show you advisory panel. So, if you want to see more of our week to the hit like, keep watching, and wonder why it happens to you, case. It's not like I'm going on a trip to Brussels or anything. You know what kind of thing though is? The fact that you don't even realise you're going mild hypotermia, and what it feels like freezing the conditions, even though the best errand says it's otherwise. Help! Look at that. That's so cute. Welcome to Brussels. Not much happening tonight. Unfortunately I don't think there'll be much happening tonight by eating, but otherwise I'll stick with you tomorrow. It's absolutely freezing out here. Probably a thing that's going to be supposedly snowing or as well as cold as Dublin. So there you go for that and probably delayed flight and whatnot. But otherwise, hopefully you'll stick around for tomorrow. And the most exciting day by guaranteed. Except the day after, but don't count that. Welcome to day two of the vlog. Currently it's about the lovely early time of 7.20. If we look outside, it's actually possibly snowing, probably sleeting, but you know, there's a bit of stickiness. I'll take it. And otherwise I've got a busy day. I've got to get some accreditation. Also got to get some other stuff, like sort of meeting with MEPs, sort of what now. So it's going to be a exciting day. And hope you're all ready to join. Wait, my coat. Oh well. It's going to be across the EU.  I think the followers in the British court at the moment and really I think they're waiting for them to put it back to them before they can do anything. So apologies for being late. As was said, I'm the MEP. An MEP from the Midlands West constituency. It takes up 15 counties. So that was my three days in Brussels. I ended up being the only student journalist from DCU, not even doing journalism. I'm mainly stuck with people from DIT and NUIG. Which sounds bad in theory, but it actually turned out to be a really good experience. And even got a few tips from my politics radio show coming next week on DCU FM at 3, from 3 to 4pm. So keep listening then. I also got to be nine of the 11 MEPs for Ireland, which is an absolutely amazing time. I even got to shake the hand of Marine McGuinness, who's the Vice President of the European Parliament, I believe. And I also got to be the Factor Journalist, also having about eight security checks for going through the parliament and any other building in the EU, each and every single time. So I think that kind of got annoying at the end. Even if you did have your pass, you still had to also show that. But I've no regret about missing lectures when it went like that. So that was amazing otherwise. So today, Friday, I'm back home. And I got the funny thing about the timetable. I ended up being much more of a mess myself than timetable. I ended up coming at 11 for the lecture I thought I had and then ended up not having any lectures till 12. So that probably tells you enough. And I also have to say in advance, Dylan McGuin, I'm very sorry with all the messages I sent to you. I just can't read. I'm probably illiterate, so don't worry about that. But don't worry, the time will stick to this week and definitely other weeks there because I can't read a five-letter combination. Otherwise tomorrow, I got an early wake-up for the plan in Ireland, even. Advisory panel, amazing and Dublin, in the Kharamalai community centre. So you stay tuned for that and I'll tell you more about that when I get back home and get some good sleep. That was my week. I hope you all enjoyed. Make sure to stay hydrated and tell you if you're watching the vlog and see you some other time, probably next week. Bye!


at the end of the day, it is about growth. It's not about growth at any cost, though. It's really about the metrics and the KPIs that you put in place to really make sure you're building a foundation that's sustainable for long term growth, because there are a number of things you can do to kind of maximize short term growth, but sooner or later the foundation crumbles if you haven't really built it. So it really comes down to thinking about there's plenty of opportunities for growth. But how do you do it the right way? Because at the end of the day, you don't want the big ebbs and flows in the business. You want sustainability and that starts with a strong foundation. So that's everything from how you build out your platform to how you think about the organizational structure to how you address the opportunities in the market.


anager to execute an mou with santa cruz community credit union to help implement the program Thank you. Let's move a motion made by vice-mayor meyers I'm happy to second that motion or Council member matthews Well, I'm hoping to second it. That's good for you Again, I can't thank you Justin and the department enough everyone involved in the really talk about a rapid response team Reaching out and finding out what was the need and I think all of us have helped the the real sense of desperation and creativity and desire to recover from our local businesses and I think it's so important that we're taking this step to try and Provide a quick response at bill staff. So just gratitude to everyone who makes this happen so quickly very much appreciated And I really hope that we can you know do the best we can working together moving forward to Provide the most help we can for our small businesses and other sectors of the community Are there any other council members who'd like to speak at this time? It's a none. We'll turn it to the clerk and we'll do a roll call vote on this item Council members Watkins Matthews Brown Boulder fires as absent vice-mayor meyers And mayor Cummings. I that passes unanimously So the last item on our agenda is oral communications Oral communications is an opportunity for members of the public to speak on items that are not listed on today's agenda If you are interested in addressing the council Please call one of the numbers that will be displayed on the screen Once you've called in, please enter the meeting id number and when it's prompted for participation id, please press pound If you are interested in addressing the council, please press star nine on your phone to raise your hand And you will have two minutes to speak When it is your time to speak you'll hear an announcement that you have been unmuted We request that you clearly and slowly state your name before making your comments So that we can accurately capture in the meeting notes However, that is not required Please remember this is a time for council to hear from the public It is not a time to engage in dialogue And when we are able we will address the questions raised at the end of oral communications So at this time if you're interested in the public and you're watching Please Call one of the numbers that's listed and then enter the meeting id So we'll move on to our first Person here for public comment If you could please press star nine If you're interested in speaking during public comment Several days ago looking for specific information and reassurance some basic questions How many of those crammed into unhealthy shelters have been offered the option of motel rooms Rather than the dangerous conditions in the vets hall the armory the laurels free shelter Toad smith community house and appall Lee lost How many will any council member be demanding these figures from the city manager? How many of these have been tested for co vid 19? How many are sick? How many have recovered? Where's the fema and governor's funding specifically for those motel rooms where people can be safely lodged and not transmit the virus How much longer will city and county bosses withhold the money? How many motel rooms are currently being occupied? How many kept empty while the virus spreads? The most vulnerable people in our community are those with disabilities and medical conditions over the age of 65 outside Crowded shelters are unsafe In san francisco this produced outbreaks last week in shelters and finally residents began to be relocated Will we be too late here to themselves away in their homes? Send door groups The blatant brutal truth homeless people outside are simply discardable not worth providing access to decent bathrooms Regularly clean porta potties much less the minimum required safe shelter in place Stay but now told us at homeless or at least be left alone to shelter in place Why am I being told that a homeless man trying to enter his campsite in a park was blocked threatened with arrest Separated from the survival gear. It is an outrage a telling truth That there is nothing on this agenda to protect the entire community by immediate safe shelter for the homeless This may please those who engineer the silencing and removal of council members glover and crone They couldn't get this mayor to hold an emergency meeting to address this So now do we simply await the death toll as the virus spreads? Thank you We have one more member of the public who looks like they've called in for world communications.  Yes, we can Yes, you may want to turn down your uh tv or um your computer Yes Yes, we can hear you Can you hear us? Yeah Yes, you can. There's quite a delay here between what I hear on the phone and and and what uh You know, you're saying online here, but uh, anyway, uh, yeah This is not going as well as it could Anyway, our best offense against the virus is a healthy immune system. That's a health directive that never changes I voice concern over the heavy-handed government response to the covid emergency This is in no way a negative comment on the need for social distancing I'm alarmed at the widespread jackboot measures and swift and increasingly apparent make expensive examples of overreaching punitive actions Taken by many levels of government There are fundamental differences between behaviors that cause actual harm and those that are statistically risky That are cases cause harm There is also an issue with assigning a single level of criminal punishments that can apply to any future Unlimited number of orders for any emergency for any act for any level of safety risk The fact that there was no bail set for violations of emergency orders was not an oversight It never came up because the public is normally very cooperative in emergencies Many of these social distancing orders fall into this category of statistically risky acts, which may or may not cause harm Actual harm difficult to prove or assigned to one individual and in this present case Concerning the few known cases of code 19 here any one low density violation is extremely unlikely to cause harm This is absolutely identical in nature to crimes such as speeding which contribute to our 54 annual county vehicle deaths But speeding is an infraction not a misdemeanor with 500 or 1,000 dollar fines and possible jail time My judgment is assigning misdemeanor status. This case is a panic mode power grab of the authority Unwarranted by the facts as we know them as facts such as mortality rate are still incomplete And prior panic drug projections are turning out to be false I am not comforted by the city attorney's claim warnings will be given first As anecdotal reported evidence suggested otherwise I have no problem with harsher penalties for those who after warning or infraction citation refuse to obey direct safety officer Directors or interfere and obstruct But this possible arrest and misdemeanor conviction for a single person or low density groups for example walking on a closed Meager park seems extraordinarily harsh as technical social distance violations are occurring in the thousands every day like speeding I would reconsideration Sorry, uh, your two minutes is up. So I'd like to thank you for calling in and for your comments And they will be noted in the record Hey with that, um that actually concludes our meeting for today So thank I would like to thank everyone for tuning in thank all the staff For their hard work and all the items they brought forward and all uh, my other colleagues who are able to join us today So with that, uh, we'll adjourn our meeting


A general case analysis. Break it apart, it'll make more sense. General case. So a general case, and you're analyzing the general cases. This is about teaching, this is about training, this is about teaching, right? So we're gonna select examples. So teaching examples, and we're gonna select enough of those, exemplars, training sufficient exemplars. It's another term you might want to recognize here. So general case analysis is the process by which you go through to decide which things you want to teach, right? That represent the full range of stimulus variations that you're gonna run into in a certain context, right? In the real world, stop lights. So when you're teaching a kid at a drive, there's a couple of different ways stop lights are lined up, right? They're either this way or they're this way. The red light is always the one on top or the one on the left side, sorry. So the idea being that once you teach enough of those, that skill will generalize across the world, except in places that pay no attention to their stop lights, it doesn't generalize to there, but you'll just, that's just shaping and you need to experience that on your own in those natural contingencies. So I hope you get it. It's really just about analyzing all the different exemplars that you need to do to teach a skill effectively.


Toffy TV is your boy Astro post-wals match reaction. I Know everybody's hurting right now everybody's angry right now and and and this is probably gonna fall on deaf ears, but We all have our role to play in this okay as supporters we're asked to be enthusiastic we're asked to be vocal We're asked to be present. We're asked to be positive and we're asked to be engaged Okay, and and it's a social contract with the club and the players and what we expect out of them is effort and energy and and And and and you know the best that they can deliver. All right We can't seem to find an answer for any team we play yet the other 19 teams in the Premier League seem to know exactly what to do To us. I don't know how this plays out over the next 10 games. All right But I can tell you this. All right when it's all said and done You're going to be left with What you did your end of things Now for us I Get it. We you guys boot at the end of the match, right?  I'll be up for it by then. I'll be positive. I'll be Making the sounds because if this all goes sideways or even if it goes right and we managed to stay up I want to be able to look myself in the mirror at the end of the day and know that I did everything that I could To support Everton football club Now I wish We had players who had the same mentality who? Who are are going to be able to look at themselves in the mirror when this is all done and know that they did everything they could And if that's the case then we just aren't that we aren't good enough everybody be kind to each other hang in there and Listen whatever happens It happens to all of us and it happens to us together. All right, so take some comfort from that


So yeah, welcome to extending a high-performance data streaming system with WebAssembly. We're going to talk about both what is this system and why would you want to extend this system with WebAssembly. My name is Tyler Rockwood. I'm the tech lead for data transformations at Red Panda Data. I'm happy. And we'll talk and dig into what are data transformations and what is Red Panda. So agenda, we're going to talk through three main points. We're going to talk about just a quick introduction to what Red Panda is, what data transformations and streaming is, and we'll work through a case study. And then last one is just what are the challenges of embedding a WebAssembly runtime within Red Panda. We have a high-performance computing environment, so we impose a lot of restrictions on ourselves, which I'll get into later, and that pose some challenges. So we'll work through some of those. So first, introduction. What is Red Panda in 60 seconds? Red Panda is a high-performance data streaming engine. We speak the Apache Kafka API. So if you're not familiar with Kafka, that's OK. The simplest primitive I can give you is it's a log, and you can produce to the end of that log, and then you can consume from some offset in that log to the end. So it uses a message broker to power a lot of applications, sort of decouple your producing events from your consuming events. So these go into partitions, which is sort of the smallest level of abstraction, and then you can kind of group those into topics. And you get ordering for each of these logs within a single partition. So you can think of a partition as essentially a log. It's a distributed log as well. We generally have lots of logs of these partitions per cluster. And then each of these partitions is a raft group. So we use the raft consensus protocol to ensure that your data is replicated safely. You don't have any data loss, things like that. And then one of our major selling points, besides we're very high-performance, low TCO, we also are simple to manage and deploy. So it's not a bunch of different services you have to set up. We're one single binary that you can deploy and that runs on any Linux system. OK, so that's a real quick overview of RedPanda. I'll talk more about some of the interesting bits of RedPanda in its architecture in a little bit. I'm going to start by talking about what is data transformation in this streaming pipeline when you're producing and consuming events in these architectures. So this is a quick example of an e-commerce sort of application use case using any sort of Kafka-compatible API like RedPanda or Apache Kafka itself. This use case is sort of we have transactions that are happening in this business. Those get pushed into a log topic called transactions, which has the information about how much the transaction was, who made the transaction, credit card information, all these sorts of things. And then that gets consumed downstream by a separate application doing fraud detection. So this is a use case that we see for data streaming in e-commerce applications. So let's say your business then wants to go, OK, we want to do restocking of our inventory very quickly. So we want to consume this real-time events of transactions and has things are being bought. We want to make sure we replenish our stock. So if you want to add this, then you say, oh, simple. I just add in another component that will sort of do this processing and consume from this log. However, there's one problem with this is that there's a bunch of, like I said, credit card informations and information in there that the fraud detection system needs, but you don't want to expose to sort of the supply chain side of the wheelhouse part of your company. So a way that you can do this is, well, let's just write this to a separate log that doesn't have any personal identifiable information or any sort of sensitive information in it. And then we'll just have the restocking subsystem kind of stream in data and consume data from that. So how would you do this in a sort of today and a normal sort of thing is you'd stand up a whole separate distributed application to sort of read in this transaction, original data, do these really simple transform and strip out a few fields and write it back in. You can use Apache Flink. There's lots of different sort of solutions to these sorts of really simple, stateless transformations. Now you're spinning up an entire new infrastructure and cluster just to apply these really simple, small transformations on your data. And now you may be seeing where WebAssembly can come in. So with Red Panda, we have the ability to, within the broker itself, as these events are being streamed into one of the logs, we can read information that are on these logs, process it through whatever your custom business logic is in your WebAssembly module, and then output it to a separate topic for you to then consume. So this allows you to sort of build really nice, pluggable, extend your broker to satisfy your business requirements without needing to set up a whole bunch of extra infrastructure, figure out how to monitor it, figure out the costing and sizing and all those sorts of things. These can all be built into the broker. We'll have all the metrics and logs and things for you built in. So this is sort of at a high level. What happens, you have one log and each of these in the log is a series of records. And we'll take each of these records, push it through your Wasm transformation, and we'll get a record back out. And then we'll write these into the output log on a different partition. And these can exist in sorts of all sorts of different ways. So here's a really high level. I'm gonna kind of fly through this overview of Red Panda's architecture. So we have the Kortokovka API compatibility layer, and that goes down into the RAF subsystem, which then handles replication of this to multiple nodes and getting all the appropriate consensus, and then also f-syncing it to disk so it's safe. So that happens today. What we've done is added WebAssembly on top of the RAF subsystems and pull in data as it's committed to the original input topic. We process it per each log and then we'll write it to wherever it needs to go. So let's say in the example I have, you have your transactions and your output of like clean transaction data, right? So as transactions events, records are written into the input topic, we'll, for each of those different partitions, we'll have a VM deployed on that core, and we will pull those logs and push it through the WebAssembly runtime. So Red Panda is a thread per core architecture. I'll talk a little bit more about that in a little bit. So we run one of these on every core, which these are needed, and we run these transformations on the input partitions leader, it's RAF leader. So the RAF leader is the one that knows whether or not something's committed, it's been successfully act, and then that's when you can then go ahead and process it. So we get the same sort of safety and durability guarantees that we already provide. So why use WebAssembly for this task? So obviously the appeal to use any language that you want for our use case of a high performance broker is the very strict runtime limits you can impose. So I'm gonna detail here at the end some of the challenges around these runtime limits and the constraints that we have programming within Red Panda that we're able to impose on the WebAssembly virtual machine so that you don't have any sort of latency hiccups or any sort of performance issues as you're running and deploying this sort of and running these user code. And then also the WASI standards really great gives us a sort of like sandbox politics environment. So for us we use this, you can deploy configuration via environment variables. So you can sort of configure it, in this environment I have these different policies or whatever it wants to be, whatever you want your application to do, you can embed these as sort of like runtime injectable configuration. We also use standard out and standard error as a logging mechanism. So you can just print land or however that is in your language and you can consume those via the normal logging frameworks. Now how do I actually use this? So we have this tool called RPK which is our sort of one stop shop for interacting with Red Panda and built into RPK we've provided the developer experience. So a way to initialize projects of, you can specify what language you want, you can give it a name, description, some other metadata. And then from there you get a single file. So this example is using the tiny go compiler to build a transform. You can edit your transform to do whatever business logic you want. We'll walk through sort of what that looks like very briefly and then you can build it. We for some more obscure sort of tool, tool chains and compilers will embed a sort of tool chain for you and download it and manage it. So you don't have to, but then for more common things we'll just use the system compilers that you have installed. And then lastly you can sort of, you can deploy these to any sort of input and output topics and we'll manage all the machinery around replicating this safely, persisting it, making sure it runs in all the right places within the broker and within the entire cluster. So here's a very short snippet of code that is sort of a hello world so to speak in streaming transformations. So I'm gonna walk through this one for one. If you're not familiar with Go, hopefully it's fine. So I just want to talk about the signature to start. So this is sort of the programming model that we expose to people. Is that you get a write event, which this means, so an event has happened post write. We've successfully confirmed it's fsync to disk. Now you can take that event, it contains a record and you can do some sort of transform and you're gonna return a set of records or an error. Which sort of like a generic Go pattern. But the set of records, the nice thing about it is I can do filters. So I can do one record to zero. So say I wanna just fork a subset of my data stream to another topic for whatever reason. I can do that. I can also flatten records as well. Let's say I get in from some third party, like an array of JSON events or something and I wanna flatten that to just one record per output. I can do things like that as well. Or also just the standard sort of one to one transformations of I wanna take JSON data in, spit it out to Apache Avro, Protobuf, whatever it is. Or if you wanna do what we talked about in this case study of just stripping out PII or things like that. So you can do any sorts of simple transformations. So this is an example of taking some XML input data. I don't like working with XML. I've written lots of Java. Yeah, it's more friendly to work with JSON these days. So it takes a small go program that will take the input XML data. It'll un-martial it into some sort of structure. And then we'll serialize it into JSON and then we'll output that copying the key over. A record in Kafka in parlance is basically a key and value pair. There's also some headers for additional information but for the most part there's just key value pair. And that's sort of a very simple transformation that you can write in just a few lines of code. You can deploy this to your Red Panda cluster and we'll scale this up as many partitions that you have and run it at very high scale and high throughput and all the sort of tenants that we hold to at Red Panda. Okay, so that's sort of my whirlwind talk through sort of what is data transformations, how it's architected within Red Panda. Now I wanna dive into some of the more technical challenges of embedding a WebAssembly runtime into Red Panda. So first, I'm gonna talk about a little bit what makes Red Panda efficient and fast. I mentioned it's a fast piece of software. We hold our hanger hat on really efficient, low resource utilization workloads for at very high throughput and scale. So the ways that we do this is we're a thread per core architecture which is something the high performance computing environment is very familiar with but we spin up one thread per each logical core in your system and then we use all asynchronous system calls. So whether that's talking to network or disk, nothing ever blocks. And then what we do is we run in a reactor loop similar to like an event loop and Node.js if you're familiar with that programming paradigm to each loop to sort of process tasks as they happen. And then we share nothing in terms of memory between each of these cores. You can kind of think of each of these cores as own logical little computer and we allocate all the system memory upfront and then we divide it up onto each core in sort of a NUMA friendly sort of pattern in distribution. And then we communicate between cores. Cores need to talk for example where network requests may come on in core one but core two needs to then like actually process the right for example using a bunch of single producer single consumer message queues. It sort of makes a little mesh for them to talk to between and we use a framework called C star for this which is a really great high power performance as written in C plus plus 20 modern C plus plus which has a lot of great advantages. I'll talk a little bit more about we love C starts it's what empowers us and is the framework of which we've built this high performance message broker upon. So there's a little bit of architecture overview and some of the constraints that we I wanted to go through some of the constraints by this programming model that we sort of have to apply. So we have these sort of reactor loops that I talked about. So and we use async IO. So we use cooperative multitasking to sort of manage all the different tasks that are happening to a single local core since there's only one thread processing a logical subset of the system. And what this means is that each task is responsible for giving up its share of the CPU when after some period of time. So if failure to do this is known as what we call a reactor stall. So the important thing about these reactor stalls is that they impact your P 99 latencies which we care a lot about keeping those very low. So for example, we only have one core processing let's say 10 network operations. If one of those operations takes 50 milliseconds for example to do some work then that means there's 50 milliseconds where those other network connections nothing can happen. You can't process IO, you can't do work for them. So what we need to do is any long computations we need to break up to prevent blocking IO from happening on other workloads and make sure they're shared, scheduling and fairness. So we heavily use stackless co-routines to do this. And just for a sort of a mental model for us a long task our budget that we use to execute a single task is about half a millisecond. So 500 microseconds is our policy for about how long a task should go before it needs to yield control. So we have lots of different ways of doing this. Like I said, stackless co-routines and C++20 is a really nice programming model for us to do this. So here's a simple example of taking some data off an input stream. Let's say from network or even disk and just reading some data. Now in a normal sort of system you may use blocking IO and you'll just have a while loop that kind of runs and it sort of eats that thread while it's processing and reading data, right? So we don't use this paradigm. So what we use as co-routines you can kind of see this co-awaits keyword here is it inserts a scheduling point and tells the scheduler for C star of don't resume this code until this event has finished. So if you're familiar with Node.js programming this is sort of the async-awaits sort of paradigm or if you're familiar with Rust even it's sort of the same async-awaits sort of model although Tokyo for Rust uses a work stealing sort of scheduler which we don't use. Everything is locked onto a single core. So it's of utmost importance that we yield CPU control because we don't allow any sharing. So that's sort of the paradigm here. So now how do we prevent as we're embedding a web assembly runtime how do we prevent that runtime from stalling and hogging up the CPU for a second? So let's say you have a transform that's relatively expensive and takes let's say 50 milliseconds of compute. I think the average developer probably doesn't blink or that long of a computation but for us within Red Panda we can't allow that because that means there's a ton of requests now that just encountered a 50 millisecond latency spike. So how we do this within Red Panda is we use stack full core routines, stack switching. So we run all of Red Panda in the sort of stackless core routines within Red Panda as normal the event loop runs and then within the web assembly VM we allocate a separate stack to execute that on. So that allows us to swap back and forth between executing the VM and executing our actual code itself. And the advantage of using these sort of stack full core routines over a actual like spinning up a separate thread for the web assembly VM is these context switches are very cheap. Most of the premise of Red Panda allows us to do kernel bypass for very fast and efficient processing. So these kernel switches or these stack switches only take about nine CPU cycles on sort of modern machines. So we sort of allocate these separate stacks and then the nice thing is a lot of these very advanced web assembly VMs such as wasm time allow you to inject into the compiled code sort of instruction counts. So you can say after X number of instructions yield control VM and switch back to my stack so I can run. We've also been able to do this sort of same model and other frameworks that don't support the native stack switching as well. You can do stack switching sort of in user land so to speak as well. So that's how we prevent these stalls is what we do is we will run our web assembly VM for our task budget and then we'll swap it out for running the actual client IO and other sort of important information important tasks the broker needs to do. This also allows us to do sort of I talked about this sort of message passing model this allows us to use that within the VM as well. So there are certain host calls that we expose within Red Panda in our SDKs to be able to read data on different cores. So for example, some of our data is sharded to every core for memory reasons because we don't have a ton of memory on a single core. So it may be that there's a transform running on core one that needs to go grab data from core two. So what we do with the stack switching is we're able to switch out the stack and run other sorts of computation while there's a message in flight to talk to core two get the information at need and bring it back to core one so that we can then copy it into the web assembly VM. Next I want to talk. Sort of an overview of memory and some of the things there I want to talk a little bit about or excuse me that was talking about CPU I want to now talk to memory talk about memory and some of the constraints here. So I talked about each core has its own equal share of memory on startup. There's a buddy allocator we run on each shard. So there's no synchronization of memory between shards at all. We also don't use a page cache for any of our IO. This is sort of a separate detail but we do all of our caching within the application we don't rely on the kernel to do that for us we use DMA writes and things like that so that we can get the optimal caching strategy for our application not the generic one for the kernel. One of these things about this model is since we allocate everything in the way of these fixed pools up front is the allocation can fail of memory during the execution of our program. Normally if you malloc stuff in a normal C program the OS will sort of hand out virtual memory until it sort of runs out or it'll swap or things like that. So we don't allow that mostly because those are end up being like sort of soft failure scenarios in your applications where you're swapping memory and performance starts to tank. So using this sort of constrained memory model allows us to make sure we're going very fast. So we need to force WebAssembly to also respect these constraints. WebAssembly defines a linear memory as sort of one large continuous address space and this is sort of for performance reasons and things like that. And there's also another structure called a table that stores things like references to functions and things like that. These are potentially large contiguous chunks of memory that as Red Panda runs, memory fragmentation builds up. We may not be able to allocate those large structures as we boot up VMs. So you don't want to deploy WebAssembly function and then all of a sudden not have enough memory to do that and that either wooms your Red Panda broker or something else. So what we do is for linear memory these are large pools of memory. We have a budget, we sort of have a budget of like under this fixed amount of memory we can always say we can allocate a contiguous chunk of. Anything over that our strategy is to reserve a pool of memory up front. So sort of the computing model since you're now sharing the computing model that we use in Red Panda when you're embedding your own functions is you have to carve out how much memory you want that we can allocate for the VM. So on startup each core sort of reserves some you know a few megabytes maybe multiple megabytes if you're running something like JavaScript on each core so that we can then use that memory that's pre-allocated and isn't subject to fragmentation for the VMs itself. And then for the tables themselves those are usually fairly small so we just limit that to our maximum allocation size that we try to fit everything into. Awesome, so takeaways. So Red Panda can help you transform your data directly in the broker, message broker in a high performance way. You can use whatever language that compiles to WebAssembly to use this sort of simple programming model that we've exposed. WebAssembly itself is friendly to thread per core architectures and sort of these more advanced and better requirements. And then WebAssembly runtimes itself have yeah support these sort of advanced use cases of thread per core or limited memory usage. Thanks for joining. I'd love to take some questions. We're gonna be in the main section at booth F13 if you wanna talk more. There's a link for feedback. I would love to hear your feedback on the session, the talk, the content. And also if you're interested we are hiring as well on my team and other teams within Red Panda. So this sounds like an exciting sort of space for you. I'm happy to talk more. Thank you. Any questions? I've got a question for you. You know, I think one of the things that really you guys crushed is making sure that you're always zero copy. You know, and just really fast transformations of data. And what's the performance impact for the inside, you know, inline WebAssembly transformations? Right now you're pulling the data into WebAssembly processing and then coming back out. Soon you'll be able to keep it outside I believe to the guest house barrier. But what performance are you seeing? Yeah, so right now you have to copy every record into the VM and record out. We do this on a per record basis for like lower memory overhead. But we've been able to push like a few megabytes in our sort of constrained environment per core per second with WebAssembly. And I've done some benchmarking where we've been able to get over a gigabyte a second on larger, a few like medium-sized clusters pushing through the WebAssembly VM. So that's sort of the, I think power of sort of just in time compilation. There's a lot of other things I didn't talk about. Like some, there's a lot of tricks that WebAssembly run times use to prevent bounds checking for all the memory accesses by using some virtual memory tricks. We can't necessarily do that in our environment. So we have to enable a lot of the extra security steps that advanced VMs have removed in more generic contexts just so it works for our embedding. But we're still able to push the performance envelope quite well. Great, other questions here in the back, Sean. All right, so I have a bit of a technical question. One of the performance bottlenecks in really highly parallel systems with WebAssembly in the runtime side can be in how you use the WebAssembly store and how you use the linker, for example, in Wasntime. So there are cases where, are there cases where you're like spinning up a new linker for every transformation that's being applied or like what does the parallelism model actually look like in the runtime context? Yeah, yeah, that's a great question. We've done numerous iterations of our ABI to sort of like figure out what the right model is. So we actually only composed, we generate a single instance of a module within Wasntime on a per, so one per process. So we do one, and then what we do is every core then gets a, not a copy of that, but a reference to that module. And then at runtime we look up the host data through the embedding to make sure we're grabbing information for that instance of the VM in particular, if that makes sense. So there's a way to like, within a store embed very specific information and one of the pieces of information we embed is what the underlying, what we call engine, is that has the actual records being pushed through for metadata and things. So we only have to compile a module once for an entire broker based on our ABI and how we sort of structured our embedding. Okay, that makes sense, appreciate it. Yeah, of course. Just a question back here. Hi, great talk. I found your use case kind of fascinating being able to like strip out privacy sensitive data and offer sort of like two copies of the record and record logs. I'm wondering first off, is that transactional? And if so, how does that handle the case where like the WebAssembly runtime, you know, the code in there fails and like throws an exception or doesn't deliver a record? And what does that mean? Does the like the raft leader reject the record or do you get like, how does that work? Yeah, no, that's a great question. So first of all is we support at most, or sorry, at least once delivery semantics. We don't have exactly once yet we want to get there. There's some ideas we have to get there, but they're larger system changes. So it's fairly common in Kafka to have at least at least once processing. So that's sort of the model we've rolled out at first with that model. And the other thing is you mentioned with the raft leader, these are all an asynchronous sort of process. So we don't ever block incoming rights and throughput from clients directly to process these. There are ideas that we want to do this later on to be able to validate payloads and things like that. But for now, this is sort of, you can think of it as like a background process running in within the broker that sort of consumes this data and then writes it back out. That's sort of the processing model, which allows us to do for failure modes, we can just sort of restart and reapply for at least once and sort of periodically commit data. But we would like to do more things like, if your code's just failing, throwing exception, whatever it is, then the web assembly run time's ooming. What we can do is like create a dead letter queue or something for that. So you can resume processing. For now we sort of halt processing as sort of a safe default, but we would like to do more dead letter queue, which is more like a standard for stream processing applications. Great question, thank you. All right, please join me in thanking Tyler.


Dedication and Preface of Fables in Rhyme for Little Folks by Jean de Lafontaine, translated by W. T. Larnard, read for Librevox.org by Karen Savage. Dedication. To all little Americans with the hope that they may become better acquainted with our friends the French. A Preface for Parents. Lafontaine composed the most entertaining fables ever written in any language and made them a model of literary perfection, yet our translators and compilers have somehow neglected him. His fables are lyric poetry of a high order, and this alone has doubtless been a barrier to a better acquaintance with his work when transferred to our own tongue. Done into prose, the fables are no longer Lafontaine, but take their place with the many respectable dull translations which English readers try to admire because they are classics, though the soul that made them such has been separated from the dead body. It has seemed to me that while the full enjoyment of Lafontaine must always be reserved for those who can read him in French, it might be possible at least to convey something of his originality and blithe spirit through the medium of light verse. In making the attempt I am fully aware of my temerity and the criticism it will invite. To excuse the one and to meet the other I have taken refuge in the term adaptation, even though the word applies only in part to my paraphrases. Some of the fables in this book are translations in a true sense, and keep closely to the text. From others I have erased such political, mythological and literary allusions in which Lafontaine abounds, as are either obsolete or unintelligible to a child. But my chief literary sin, if sin it be, is twofold. In the first place I have departed wholly from the metrical arrangements of the originals, substituting therefore a variety of forms in line and stanza that more accord with the modern and American ear. In the second place I have had the hardy-hood, as in the lion and the gnat, to modify the elegance of the original with phrases more appropriate to our contemporary beasts. Animal talk, I feel sure, has lost something of its stateliness since the days when our French author overheard it. The owl is no less pedantic, perhaps, but the lion certainly has declined in majesty, along with our human kings. For these offenses Lafontaine, who forgave everyone, is bound to forgive me. The most good-humoured Frenchman he could condone all faults but dullness.  One thing more. This little collection from his two hundred and forty fables is meant, first of all, for children. In assembling it, no fable was admitted that has not been approved by generations of the young and old. No apologue addressed to the mature intelligence alone, or frame to fit the society of his day, is here included. Many books which men have agreed to call classics are seldom taken down from the shelves. It is otherwise with Lafontaine. His fables were eagerly read by the great men and women of his time, and are still read and enjoyed all the world over. The causes of this lasting popularity are not obscure. From the earliest period, whether in India, Greece, Arabia, or Rome, the fable has pleased and instructed mankind. It told important truths, easily perceived, in an entertaining way. And often said more in a few words, than could be said through any other kind of writing. Now, no one person is the author of the fables we know so well. Esop did not write the fables bearing his name. There is even reason to believe that Esop is himself a fable. At any rate, the things ascribed to him are the work of many hands, and have undergone many changes. These old stories of animals began to be written so long ago, and the history of them is so vague and confusing, that only in recent years have scholars at last been able to trace them, and to fix their authorship. The significant thing to keep in mind is that for twentieth-century readers the best fables are not merely the best ones ever written, but the best ones rewritten. In other words, the fable was for centuries an old story in a rough state, and the writers who have made it most interesting are the writers who told it over again in a manner that makes it art. A Greek named Babrius, of whom almost nothing is known, is remembered because he collected and versified some of the so-called fables of Esop. A Roman slave named Babrius also put these fables into Latin verse, and his work today is a textbook in archaeologists. Among modern writers it was reserved for Lafontaine to take these ancient themes and make them his own, just as Molière, taking his own wherever he found it, borrowed freely from the classics for his greatest plays. Just as Shakespeare reformed forgotten tales with the glow and splendour of surpassing genius, so Lafontaine told to India, Greece, Italy, and furnishing the old fables and facetious tales refreshed them with his originality. Some of them were his own inventions, but for the most part they were Esop and Phaedrus made over by poetic art, and vivified with a wit and humour characteristically French. But if Lafontaine's fame endures, it is not alone that he was the greatest lyric poet of a great literary period. Apart from the wit and fancy of his creations, apart from the philosophy, wisdom, and knowledge of human nature that so delighted Molière, Bois-Lors, and Racine, his fables disclose the goodness and simplicity of one who lived much with nature, and cared nothing for the false splendours of the court. Living most of his life in the country, the woods and streams and fields had been a constant source of inspiration. He saw animals through the eyes of a naturalist and poet, and when he came to make them talk, the little fishes talked like little fishes, not like whales. With Shakespeare's banished Frenchman in the Forest of Arden, he finds tongues in trees, books in the running brooks, sermons in stones, and good in everything. An anecdote often told of him aptly illustrates his habit of mind. He was late in coming to a fashionable dinner, and his excuse was this. I hope you will pardon me," he said. I was detained at the funeral of an ant, and I could not come until the ceremony was over. This was not a pleasantry, but the truth. He had been watching an anthill, and was so absorbed in observing a dead ant carried off by the living colonists for burial that he had forgotten his engagement. The first six volumes of the fables, published in 1668, when he was forty-seven, and in Paris, were an immediate and brilliant success, at a time when French genius was in full flower. But the literary men of that golden age got their pecuniary reward not from the public, but from patrons. Later in life, when Lafontaine, at last, was graciously recognised by the grand monarch, he appeared before the royal presence to receive his due. Even then, with his usual absent-mindedness, he forgot to bring the book he was to present, and left behind him in the carriage the purse of gold the king bestowed upon him. However, the fables brought him in much fame and friendship. Everybody loved Lafontaine. Favourite of great lords and ladies, the court of Louis XIV could not make him otherwise the natural. Poor and improvident, poverty had no pangs for him. No sorrow ever gave him a sleepless hour. To the last he lived up to his nickname, Bonhomme. And it is the gentle and good man who is always looking out at us from the fables he refashioned for all time. William Trowbridge Larnard, New York, July 1918. End of dedication and preface. This recording is in the public domain. The Frog Who Wished to Be as Big as the Ox, from Fables in Rime for Little Folks by Jean de Lafontaine, translated by W. T. Larnard. There was a little frog whose home was in a bog, and he worried, because he wasn't big enough. He sees an ox and cries, that's just about my size. If I stretch myself, say, sister, see me puff. So he blew, blew, blew, saying, sister, will that do? But she shook her head, and then he lost his wits. For he stretched and puffed again, till he cracked beneath the strain, and burst, and flew about in little bits. End of The Frog Who Wished to Be as Big as the Ox. This recording is in the public domain. Recording by Ben Ebel, Columbus, Ohio, mycastnotes.blogspot.com. The Grasshopper and the Ant, from Fables in Rime for Little Folks by Jean de Lafontaine, translated by W. T. Larnard. The Grasshopper, singing all summer long, now found winter stinging, and ceased in his song. Not a morsel or crumb in his cupboard, so he shivered and ceased in his song. Miss Ant was his neighbor, to her he went, O, you're rich from labor, and I've not assent. Lend me food, and I vow I'll return it, though at present I have not assent. The Ant's not a lender, I must confess. Her heart's far from tender, to one in distress. So she said, Pray, how passed you the summer, that in winter you come to distress. I sang through the summer, Grasshopper said, but now I am glimmer, because I have no bread. So you sang, sneer the Ant, that relieves me. Now it's winter, go dance for your bread. End of The Grasshopper and the Ant, this recording is in the public domain. Recording by Ben Ebel, Columbus, Ohio, mycastnotes.blogspot.com. The Cat and the Fox, from Fables in Rime for Little Folks by Jean de Lafontaine, translated by W. T. Larnard. The Cat and the Fox once took a walk together, sharpening their wits with talk about the weather, and as they're walking sharpened appetite, too. They also took some things they had no right to. Cream, that is so delicious when it thickens, pleased the Cat best. The Fox liked little chickens. With stomachs filled, they presently grew prouder, and each began to try to talk the louder, bragging about his skill and strength and cutting. Poo, said the Fox, you ought to see me running. Besides, I have a hundred tricks. You, Cat, you. What can you do when Mr. Dog comes at you? To tell the truth, the Cat said, though it grieves me, I've but one trick, yet that's enough, believe me. There came a pack of foxhounds, yelping, banging. Pardon me, said the Cat. I can't be staying. This is my trick, and up a tree he scurried, leaving the Fox below a trifle worried. In vain he tried his hundred tricks and ruses, the sort of thing that Mr. Dog confuses, doubling and seeking one hole than another, smoked out of each until he thought he'd smother. At last, as he once more came out of cover, two nimble dogs pounced on him. All was over. End of The Cat and the Fox. This recording is in the public domain. Recording by Ben Ebel, Columbus, Ohio, mycastnotestopblogspot.com. The Hen with the Golden Eggs, from Fables and Ryan for Little Folks, by Jean de Lafontaine, translated by W. T. Larnard. To this lesson in greed, pray, little ones, heed. Each day, we are told, a most wonderful hen laid an egg made of gold for this meanest of men. So greedy was he, he was not satisfied. What is one egg to me, I want all this inside.  End of The Hen with the Golden Eggs. This recording is in the public domain. Recording by Ben Ebel, Columbus, Ohio, mycastnotestopblogspot.com. The Dog and His Image, from Fables and Ryan for Little Folks, by Jean de Lafontaine, translated by W. T. Larnard. Read for LibriVox.org by Karen Savage. The Dog and His Image. A foolish dog who carried in his drawer a juicy bone, looked down into a stream, and there he saw another one. Splashed! In he plunged. The image disappeared. The meat he had was gone. Indeed, he nearly sank and barely reached the bank. End of The Dog and His Image. This recording is in the public domain. The Acorn and the Pumpkin, from Fables and Ryan for Little Folks, by Jean de Lafontaine, translated by W. T. Larnard. Read for LibriVox.org by Karen Savage. The Acorn and the Pumpkin. Once there was a country pumpkin who observed a great big pumpkin to a slender stem attached. While upon an oak tree nourished, little Acorns grew and flourished. Said he, that's badly matched. If, despite my humble station, I'd a hand in this creation, pumpkins on the oaks would be, and the Acorn light and little, on this pumpkin stem so brittle would be placed by clever me. Then, fatigued with so much thought, he rest beneath the oak tree's sort. He soon in slumber found repose, but alas, an Acorn falling on the spot where he lay sprawling, hit him plump upon the nose. Up he jumped, a wiser pumpkin.  After all, if I had made things, I'll allow that I'm afraid things might be somewhat out of place. End of The Acorn and the Pumpkin. This recording is in the public domain. Learned. Recording by Alanna Jordan. The Raven and the Fox. Mr. Raven was perched upon a limb, and Reynard the Fox looked up at him. For the Raven held in his great big beak, a morsel the Fox would go far to seek.  Such feathers, if you would only sing, the birds of these woods would call you king. The Raven, who did not see the joke, forgot his voice was just a croak. He opened his beak in his foolish pride, and down fell the morsel the Fox had spied. Ha, ha, said the Fox, and now you see, you should not listen to flattery.  I'm sure the lesson is worth the price. End of Fable. This recording is in the public domain. The City Mouse and the Country Mouse. From Fables and Rhyme for Little Folks by Jean de Lafontaine, translated by W. T. Larnard, read for LibriVox.org. The City Mouse and the Country Mouse. A City Mouse with ways polite, a Country Mouse invited to sit with him and spend the night, said Country Mouse, delighted, and sure that proved a royal treat with everything that's good to eat. Alas, when they had just begun to gobble their dinner, a knock was heard that made them run, the City Mouse seemed thinner, and as they scampered and turned tail, he saw the Country Mouse grow pale. The knocking ceased. A false alarm. The City Mouse grew braver. Come back, he cried. No, no, the farm, where all-not-quaker-quaver suits me, replied the Country Mouse. You're welcome to your city house. End of The City Mouse and the Country Mouse. This recording is in the public domain. Recording by Brianna Roup, Sturgeon Bay, Wisconsin, briannabird.vlogspot.com. The Lion and the Knat. From Fables and Rhyme for Little Folks by Jean de Lafontaine, translated by W. T. Larnard, read for LibriVox.org. Recording by Alana Jordan. The Lion and the Knat. The Lion, when said to the Knat, you brat. Clear out just as quick as you can now, scat. If you meddle with me, I will not guarantee that you won't be slammed perfectly flat, dizzy.  Why, an ox weighs much more, yet I drive him before, when I get good and ready to sting, now roar. Then loudly his trumpet he blew, and whoo, how fiercely and fast at his foe he flew. From the tail to the toes he draws blood as he goes, then he starts into sting and to chew his nose. Sir Lion was mad with the pain and vain. He roared and he foamed and he shook his mane. All the beasts that were nigh fled in fear from his cry, but the Knat only stung him again in the eye. He looked and laughed as he saw, ha-ha, the lion self-torn by his tooth and claw, so his majesty's hide with his own blood was dyed, said the Knat, shall I serve you up raw or fried? It's finished, the lion's loud roar is oar. He's bitten and beaten, he's sick and sore, but a spider's web spread, trap the Knat as he sped with the news he will never fight more. He's dead. End of fable this recording is in the public domain. The crime for Little Fox by Jane de la Fontaine, translated by W. T. Larned, read for Librivox Orc. The Dove and the Ant An ant who in a brook would drink fell off the bank. He tried to swim and felt his courage sink. This ocean seemed so wide, but for a dove who flew above he would have drowned and died. The friendly dove within her beak, a bridge of grass stem bore. On this the ant, though worn and weak, contrived to reach the shore, said he, the tact of this kind act I'll cherish ever more. Behold, a barefoot wretch went by with slingshot in his hand, said he, you'll make a pigeon pie that will be kind of grand. He meant to murder the gentle bird who did not understand. The ants and stung him on the heel, so quick to see the sling. He turned his head and missed a meal, the pigeon pie took wing. And so the dove lived on to love, beloved by everything. End of The Dove and the Ant This recording is in the public domain. The Fox and the Grapes from Fables in Rhyme for Little Fox by Jean de la Fontaine, translated by W. T. Larn, read for LibriVox.org The Fox and the Grapes Rosie and Rhype and ready to box, the grapes hang high over the hungry fox.   When the jump proves to be beyond his power, Poo says the fox, let the pigs devour fruit of that sort, these grapes are sour. End of The Fox and the Grapes The S in the Lion's Skin From Fables in Rhyme for Little Fox by Jean de la Fontaine, translated by W. T. Larn, read for LibriVox.org The S in the Lion's Skin An S in the Lion's Skin arrayed, made everybody fear, and this was queer, because he was himself afraid. Yet everywhere he strayed, the people ran like deer. Aha, he is betrayed. No lion has that long and hairy ears. Old Martin spied the tip, and country folk, who are not in the secret of the joke, with open mouth and eyes, stare at Old Martin's prize. A lion led to mill with neck in yoke. End of The S in the Lion's Skin The Fox and the Stork From Fables in Rhyme for Little Fox by Jean de la Fontaine, translated by W. T. Larn, read for LibriVox.org The Fox and the Stork Old Father Fox, who was known to be mean, invited Dame Stork into dinner. There was nothing but soup that could scarcely be seen. Soup never would serve any thinner. And the worst of it was, as I'm bound to relate, Father Fox dished it up on a flat china plate. Dame Stork, as you know, has a very long beak, not a crumb or drop could she gather. Had she pecked at the plate every day in the week. But as for the Fox, sly old Father, with his tongue-lapping soup at a scandalous rate, he licked up the last bit and polished the plate. Pretty soon Mr. Stork spread a feast of her own. Father Fox was invited to share it. He came and he saw, and he gave a great groan. The Stork had known how to prepare it. She had meant to get even and now was her turn. Father Fox was invited to eat from an urn. The urn's mouth was small and it had a long neck. The food in it smelled most delightful. Dame Stork, with her beak in, proceeded to peck. But the Fox found this fasting is frightful. Home he sneaked. On his way there he felt his ears burned, when he thought of the Stork and her tall, tricky urn. End of The Fox and the Stork The Monkey and the Cat from Fables and Rhymes for Little Folks by Jean de la Fontaine, translated by W.T. Land, read from livervox.org. The Monkey and the Cat. Jocko the Monkey, mouse his chum, the Cat, had the same master, both with sleek and fat and mischievous. If anything went wrong, the neighbours were not blamed, be sure of that. Jocko, said was something of a thief, mouse her, if truth be told, was just as leaf. Much stolen cheese as chased the midnight mouse, the praise bestowed on either must be brief. One day these rogues stretched flat before the fire, saw chestnuts roasting. Ah, could we conspire?  We smashed the shells and have our hearts desire.  Alas, that eye and monkey was not made to play with fire, but you were not afraid, so mouse her please, like mini-capped old man, with pretty words, slide Jocko with a bathe. Into the fire he put practice poor, out came a chestnut clinging to his paw. Another and another as they dropped, Jocko devoured them, whether roast or raw. A servant enters, off the rubber's run, Jocko, you may be sure enjoyed the fun, but mouse's paw is sadly singed for what? Just to get the nuts for Jocko, he got none. End of The Monkey and the Cat. This recording is in the public domain. The Hair and the Tortoise, from Fables and Rime for Little Folks, by Jean de la Fontaine. Translated by W. T. Larnid. Red for LibriVox.org. The Hair and the Tortoise. Said the tortoise one day to the hare.  I'll bet you cannot arrive at that spot as quickly as I can get there. Quote the hare, you are surely insane. Pray what has affected your brain? You seem pretty sick. Call a doctor in quick, and let him prescribe for your pain. Never mind, said the tortoise, let's run. Will you bet me? Why certainly. Done. While the slow tortoise creeps, Mr. Hare makes four leaps, and then loafs around in the sun. It seemed such a one-sided race, to win was almost a disgrace. So he frolucked about, then at last he set out, as the tortoise was nearing the place. Too late, though he sped like a dart, the tortoise was first. She was smart. You can surely run fast, she remarked, yet you're last. It is better to get a good start. End of The Hair and the Tortoise. This recording is in the public domain. The Hair and the Tortoise, from Fables and Rime for Little Folks, by Jean de la Fontaine. Translated by W. T. Larnid. RedfordLibervox.org. Recording by Megan Kunkel. The Hair and who is hard to please. A long-legged hare and with long neck and beak, set out for a stroll by the bank of a creek. So clear was the water, that if you looked sharp, you could see the pike-caper around with the carp. The hare and might quickly have speared enough fish, to make for his dinner a capital dish. But he was a very particular bird, his food fixed just so, at the hours he preferred. And hence he decided it was better to wait, since his appetite grew, when he subbed rather late. Pretty soon he was hungry, and stopped to the bank, where some pond fish were leaping, a fish of low rank. Baa-baa! said the bird, sub on these? No, not I. I'm known as a heron, as such I live high. Then some gadgets swam past that were tempting to see, but the herons said haughtily, no, not for me. For those I'd not bother to open my beak, if I had to hang round come next Friday a week. Thus begged the big bird, but he's bound to confess, that he opened his elegant beak for much less. Not another fish came. When he found all else fail, he was happy to happen, upon a fat snail. End of the hare and who is hired to please, this recording is in the public domain. The raven who would rival the eagle, from fables and rhyme for lowl-folks, by Jean de la Fontaine. Translated by W.T. Larned. RedfordLibervox.org. The raven who would rival the eagle. An eagle swooped from out the sky, and carried off a sheep. A raven seeing him said, I could do that too if I should try. His meal comes mighty cheap.  The raven rose and lit upon her back, she seemed to weigh a ton, so very fat was she. And oh, her wool was wondrous thick, it would have made a mat. The raven's claws are caught and stick, he's played himself a pretty trick, to fly with one so fat. Bah, bah, ca, ca, crybird and beast. The shepherd comes at last. Sir raven who would find a feast, is from the woolly one released, and in a cage kept fast. End of the raven who would rival the eagle. This recording is in the public domain.  From Fables and Rime for Little Folks, by Jean de la Fontaine. Translated by W.T. Larnet for Libervox.org. Recording by Alanna Jordan.    He looked up, with heels up, like some huge chandelier. One person who passed them cried out in great glee. Was there ever anything so silly, said he?   No matter. The miller now made his son ride, while he followed after, or walked alongside. Then up came three merchants, the eldest one cried. Get down from there young fellow! I never did see such manners, a greybeard walks where you should be. He should ride, you should follow, just take that from me. Dear sirs, quote the miller, I'd see you content. He climbed to the saddle, on foot the boy went. Three girls passed, said one. Do you see that old gent? There he sits, like a bishop. I say it's a shame, while that boy trudging after seems more than half lame.     It's a shame, and a sin. For their faithful servant they care not a pin. They'll have nothing to sell at the fair but his skin. Dear me, said the miller, what am I to do? Must I suit the whole world, and the world's father too? Yet it must end some time, so I'll see the thing through.  Yet the people who passed them continued to talk.   Said the miller, you're right, I'm an ass, it is true. Too long have I listened to people like you, but now I am done with the whole kid and crew. Let them blame me, or praise me, keep silent, or yell. My goings and comings they cannot compel. I will do as I please, so he did, and did well. End of Fable End of Fables and Rhyme for Little Folks by Jean de La Fontaine, translated by W.T. Larnan. This recording is in the public domain.


This research paper examines the relationships between performance and technical parameters in electric vehicles. It found that the weight of the vehicle had a strong correlation with the energy capacity of the battery minus 0.687 while the autonomy was positively correlated with the vehicle weight minus 0.355. Additionally, the authors concluded that the design and construction of electric vehicles should take into account both performance and technical parameters such as the weight of the vehicle and the energy capacity of the battery. This article was authored by Florin Maria Su, Yoan Oral Chereshes, and Horia Roboka.


who's whose decision was it to get on tiktok with it um honestly i think there was a woman rachel from digital marketing and i had been doing some stuff with trailer before i still do stuff with trailer sometimes but they they were like well there's this new app coming out and they're getting like 100 million new uh new 100 million 100 million new like users a month we want you to go on here we think you'll be good at it and we think your songs could go so they put all the songs on there and i had done a couple videos just like not really understanding what tiktok was or how to grow on that platform but just using my song and they didn't really do anything but people like the song valentino and i do do some some miracle it it got the right people that the right creators that needed to see it saw it and the song just kept going and going and i caught on that it was starting that it was going to blow up at probably around like 12 000 videos because every time every hour i would refresh it every day i would every hour i'd refresh it would be another thousand videos every day another 5 000 videos 10 000 videos so once i started going up i was like i'm gonna i'm gonna make my own tiktok account and i'm gonna continue using my own tiktok account and just make videos for my songs for other songs funny videos pranks whatever just so that like people would know oh that's the valentino guy and we want to follow him because he made that song so now people fuck with me not just my song and now i can promote whatever song i want on my own tiktok i got like 650 000 followers on there now and a couple months even now like a lot of artists who are moving now and getting songs blow up on there they're not thinking about yo i need to actually create content i have a hard time getting artists to create content when we're making their songs take off because there is like okay yeah i'm happy with the results that i'm getting over here it's like no you need to do what you said right yeah go from hey i like this valentino song to hey here's that valentino guy right and oh i like that valentino guy yeah next thing you know this valentino guy has another song and now you know you're just 24k golden you know like like they're not willing to take it through that process while it's free and easy and you have something recognizing of that you can be recognized for like um what was your experience as a content creator on that side of things did you feel like it flowed naturally for you or was there kind of like a few a period of like bumping your head and having to figure it out uh there was definitely it was a learning process you know uh luckily for me i just turned 19 in november so i'm at the age where where i think it would be easier if i was in high school because it's like organic everyone's using tiktok and now people are using tiktok at my age but it's like it's still it's it's not a platform that we grew up on like we're not being introduced to it at the same time excuse me at the same time that we were introduced instagram or twitter so it was a lot of just watching videos just always being on tiktok and just letting my brain like soak it up like all right what is doing well what is on my for you page and then also reaching out with tiktokers like you think tiktokers don't want to meet meet up and collab with the rapper like take most tiktokers are just regular people that that that blew up or that want to do social media and for me like being a rapper is like the coolest thing that that you could do basketball players want to be rappers man fucking brah the patch wants to be a rapper like everything your rapper like yeah so so i leveraged that too to to collab with other people that were more familiar with the platform and that could that could give me knowledge about how to best use the platform too so so steady learning researching yourself and then leveraging other people's knowledge and flipping understanding your position so i think one thing that i think that's gonna help you win big brah is multiple times out of this conversation i've heard you have self-awareness about your position at the moment and then that allows you to flip it to the next point right yeah right because a lot of people don't understand being a rapper is a thing being having a certain stigma well listen i use stigma that's with that negatively but like having a certain perspective that people view it you do us even if the numbers aren't there there's still this idea like there's some i don't know let's just say like jet magazine or essence magazine right it's not a popping magazine or something to this day but a lot of black people used to you know that was popping in the day and if they asked me to do something even if their name isn't popping just because i have that perspective growing up and understand what that might look like to my family or something like that right it's like just for all other types of reasons understanding the position of where you are in the brand like you can do a lot of things that might not seem to be justifiable because of how people see you versus the the regular landscapes i think that's real i don't know to me that stands out man that you were able to kind of figure that out as far as like hey i'm a rapper these people are still normal even if they got more followers than me or whatever right that that makes me somebody thanks for watching today's video it wouldn't be possible without our sponsor ditto try it out for your next release no money you can try it out for completely free but start making money as you reach more fans across the globe all while owning 100 percent of your royalties so visit www.dittoem.us slash brand man dash network we'll put that in the description and on the screen because i know it's a lot but i gotta add if you use the code brand man 50 you will get 50 percent off of already cheap it's an unbelievable deal check them out