Thank you, Nathan. Thank you very much for the invitation. So I switch gears a little bit back from a lot of phonology to a lot of morphology. Here's some preliminaries concerning morphology and subgrouping, my basically my talk here. So the major advances of Indo-European historical comparative linguistics in the last 50 years were made in the morphological internal reconstruction of the pre or proto-Indo-European nominal and verbal system. Maybe not accidentally due to progress in and in cooperation of the understanding of the two major branches discovered 100 years ago, namely Anatolian and Tocherian, which will figure more prominently in a minute. And I'm a Tocheriologist and always strive for making Tocherian great again. So this will, of course, figure here prominently. And maybe not accidentally due to progress in incorporation of general linguistics in our understanding of historical linguistics concerning these advances in the last 50 years. Compared to other traditions and other, well, historical linguistic family traditions like Semitic historical comparative linguistics, Indo-European linguistics is a bit of a late bloomer concerning higher order subgrouping that is subgrouping above the level of the attested daughter languages and basically between this level and the proto-Indo-European level. Today, I think that's kind of fair to say, only proto-Indo-Ranian as a higher note is completely uncontroversial. Though this is also fair to say, the systematic reconstruction of proto- Indo-Ranian is still in its early stages. And I think Martin Kümmel is working on a book on the reconstruction of proto-Indo-Ranian. And this is another caveat concerning Indo-Ranian. There are, of course, issues with the status of the Nurestani languages and the exact affiliation of subbranches within the Iranian part of the family. And we will hear about Nurestani at this conference. So if you looked or look at current handbooks, you basically, you kind of get this big bang tree, everything out of Indo-European all at once, which of course cannot be possible and which is kind of strange. And we are one of the historical fields that still get away with presenting our tree like this. And we should not get away with that. The underdevelopment of subgrouping in Indo-European, I should really be able to pronounce it, is due to several factors. One is a long-term focus on archegisms, rather than on shared innovations. A focus on lexical items, rather than on shared non-trivial innovations in the morphology. And a negligence toward the reconstruction of the immediate ancestors of the tested daughter languages of a branch. We already talked a little bit about in the Iranian. But for example, in my speciality, we have not even really started to systematically reconstruct the morphology of proto-to-carrying. We're basically in the process of doing this. But this negligence, of course, is not negligence because some people don't want to do it, but partly also some fields like Anatolian and Tukeirin saw rapid development in their understanding, the philology in the linguistics. And these new discoveries are just in need of incorporation into our reconstructions. Okay, so the sub-branching that has been proposed, of course, figured very prominently, or Anatolian figured very prominently in this because it is very different from the other languages and it has become widely accepted that this otherness of Anatolian, otherness where in verbal morphology, so rarity of so-called simple thematic presence, these are basically presence that are formed with an up-loading OA. Lack of perfect, as we see in Indic and Greek, for example. Then in nominal morphology, lack of feminine gender, so there's no feminine gender in Anatolian. And a very important lack of participle with fixed diethesis built on the tense spectral stems that at least Greek and the oldest Vedic have. And so this otherness, as we just examined in this sub-groups of linguistics of Anatolian, is due to its Anatolian branching of first. In this scenario, the other languages share a common ancestor. So basically what we get is Prolindropian and Anatolian splitting of first and then whatever comes next. And different people call this stage with different names and I will also have one later, so we'll come to it. Yes, in our growing camp over the last 20 years or so that takes Tukarian, the other language that was kind of recently discovered and almost at the same time as the Anatolian languages. Also, well, split of early and split of second after Anatolian. And the arguments for this are quite similar to the ones found in Anatolian. So lexical archaeisms, so we did not have that and these will go eventually. Verbal morphology, again, rarity of simple thematic presence, lack of perfect in the nominal morphology, otherness of the feminine morphology and lack of participle with fixed that this is based on tense aspect stems. So basically what these people who proposed the Tukarian split of first think is we have pro-European and Anatolian, whatever you call this, then Tukarian and then what I think is now almost established in in the European with sub-branching that has not been figured out yet, but with the other languages coming after Tukarian has split off. Okay, so what to do? I follow or try to follow Martel here since the reconstruction of in the European was done without much in the way of higher order subgroups and since the precise characterization of the inflectional properties of individual nouns and verbs at the in the European rather than the proto-European stage and of classes of nouns and verbs and of the system as a whole is a task which has to be which has not been seriously undertaken at this point. I think it's necessary to start to systematically trace the evolution of individual morphemes and the morphosyntactic features and systems of morphemes and their morphosyntactic features regarding shared non-trivial morphological innovations. And in the following the focus will be on the participle system of in the European and how Anatolian and Tukarian fit into this. Participles as we saw already have been in the discussion and Anatolian does not have anything like the other languages and for Tukarian this was also proposed. Then the association of nominal morphemes of participle morphology with the verbal system can be considered I think a non-trivial innovation and therefore potentially lead to new insights in the understanding of the evolution of both nominal and verbal systems in the European languages generally and regarding of course subgrouping. Okay so these are our participles in what I termed here uh brookmanian in the European uh brookman uh wrote the great grondries of the in European languages so the system of reconstruction before Anatolian and Tukarian was discovered. My former teacher J. Jasimov in a recent paper wrote and I like this expression the ink on the grondries was not yet dry and then suddenly they discovered Anatolian and Tukarian and basically the whole grondries would have had to be remodeled but it wasn't. Anyway so we start with the brookmanian system here here are morphemes these are participles in a strict sense and this year especially the toe is the verbal adjective. The ont is associated with morphologically active verbs it shows up loud and the morphosyntax is basically the same morphosyntax than the associated verb has. Mykhno is the medio passive participle non-uploading and again morphosyntax associated with the verb and medio passive means that it is associated with with finite verbs that are medio passive and then we have the was us perfect which is uploading it is associated with finite perfect and again the morphosyntax depends or is exactly the same as with the finite verbs they're associated with and then toe basically also non-uploading a verbal adjective that kind of has stative semantics. So if you look here well this distinction is not really important but I just wanted to to give it anyways so that a thematic thematic distinction is not super important for what is to come but anyway a thematic just means no uploading or eval and thematic means an uploading or eval in the finite verbs and no no upload in the presence. So I give you Vedic in Greek as the classical group manian in european languages and these are always a cognate right so Dharant is a direct correspondent of Tidus, Dharant is a direct correspondent of Pheron, I have a pointer, Jant is a direct correspondent of Ion, Sravant is a direct correspondent of Rion. So they are super nicely cognate. Okay then let's look at Muthno and here I just took the medi-passive versions of the cited verbs before so the dana is secretly the the mana but with some sound changes but anyway direct cognate with the dominoes, baramana, direct cognate with Pheronmenos and here these are just blank because they are not attested but Rio has a medi-passive realm and and we saw Rion as the normal active participle and here we see Rionmenos as the middle participle. Then here are wass suffix or perfect participle. Here are just the third singular corresponding perfect forms so Jagara from the root gar, egregora from the verb egero and we get participles. Jagarvas and Greek egregoras okay and which I somehow humoristically translated as woke. Okay and now we turn to the top participles and here distinction of Actions art of lexical aspect becomes important why that you will see in a minute in Anatolian. So non-stative here are lexical aspect and the differentiation so this differentiation will become important in a minute but anyway we get Peter from Pa, Potos from Pino, Stita from Stal, Statos from Isdemi and they're completely nicely cognate, Gata from Garm, Batos from Baino completely cognate. Okay good if we look at the evidence of all the bookmanian-Indian languages we basically see some that behave very nicely but the fact is are what I tried to show that in the Iranian Greek they're very nice cognates for anti-Muchno was Tor and actually also Baltoslavic has anti-Muchno was the Tor becomes in most of the languages kind of a new specialized perfect participle passive participle like we know in Latin and we don't have to go over all that but I mean some languages don't behave nicely like Armenian we have relics of the system but the system as such is gone and of course same is true for Albanian and Celtic but this is just to give you an impression that are of course our nicest languages are in Iranian and Greek here but for all the other we have to assume the same system okay good yeah now let's look at Anatolian first impressionistically Muchno is not there, was is not there, Tor is not there and anti is kind of there but it is a verbal adjective exactly like the Tor in the Romanian-European languages okay to show you this again here it's a lexical aspect so if we have Quincy to kill Kunand means killed exactly like Potos from Pino if we have a stative Arta stand then we get Arand standing and if we have a non-stative Aki die we get Arkan died okay so it's exactly the way we have exactly like the Tor participle in the in the European languages and if you want to look for the gory philological details consult the excellent dissertation of Michael Frotcher who basically tracked every single anti at the station in detail okay Laura Geistenberg and I and she will speak tomorrow we tried to reconcile the anti in Anatolian with the anti in the rest of the languages because kind of before we did the people started to think well anti is so different in Anatolian that this is just I think that looks like the anti of the other languages but it's something completely different but I think it's easier to come up with a way of bringing all of these together and we did that in assuming that basically anti was original, denominal, theoretical, possessive which in in European jargon means adjectival suffix like we actually see so burghheit in in burges or burgs gothic castle and bergont having height high like in western burghant and burghant or so this was the original function and that we see also in Hittite so we have nada read and we get nada and having a read really so this is the first step the second is in Anatolian this was reanalyzed as a resultant state so we have our denominal here and then they transferred this kind of concept on the verbs and we get kind of what we saw before so we have a resultant state interpretation of this anti and this is how we get the verbal adjective in Anatolian so what happened in the post Anatolian in European languages well we also have a reanalyzed analysis as a resultant state but this is then further interpreted as a processual so we saw our denominals here so burghant high to burghers height and this is actually a very nice example because here we get in Vedic Jivon we basically get all the steps that we need for our explanation this was originally denominal and meant having life and from having life it got this resultant state interpretation being alive and being alive of course is living and with this processual interpretation this one expanded to the other verbs to non-stative and transitive like yant going and then further to transitive and here we go we have burghant caring so this is what we assume now let's look good to caring we find the anti like in prokmanian in the european we find mykhno like in prokmanian in european and we find was us like in prokmanian in european and we're not sure about the status of tol stay tuned i have argued against well yeah against one of my own teachers Melanie Markzahn that all these participles in in tokaren into mykhno behave exactly like like anti mykhno participles in the prokmanian languages before they were kind of thought to be like ancient nouns of some sort but they're real nice participles and directly correspond to their final verbs so we get prancha prant this of course directly corresponds to barant and ferron carry and carry we get kliancha kljant standing to stand and we get jnancha and jant must exist but we just accidentally don't have it going we just have not so much to karen a as to karen b and the the difference is like we have 80 more to karen b than we have to karen a but jant must have existed then let's look at the mykhno guys here so trinkmane trinkmane from trink say for oneself being said premane per man caring for oneself being carried jenemane jeman because we also have finite passive or medial inflection of the verb we have going and then katkemane katkmane being led from the root or the verb good and then finally our was and they come in reduplicated and non-reduplicated forms so our so this is the so-called oblique they all go back to was with different vowel things happening but believe me they all go back to us and here we have a kursal kurso and here we have a reduplicated one kekamu kakmu and of course this is the same root that we have here the gram root to go and and actually this is directly cognate right kekamu is directly cognate with chaganvas and bebaos here i gave you just the finite forms the only difference is that the reduplication vowel into karen is an all but this is just the copy of the root vowel into the reduplicant which is kind of trivial innovation okay so let's take stock again and now we're talking about our suffixes here in the participial sense and etolian does not have the nt in the participial way does not have mukno and does not have was but to karen basically behaves exactly like the brykmanian-indrupian languages so here is the development we started with the denominator possessive nt in etolica the verbal adjective and brykmanian-indrupian which now includes to karen has the innovation of associating nt with active verbs mukno with middle verbs and was with perfect and here's a slight twist here namely the origin of the perfect participle here i follow also one of my teachers Jeremy Rao who assumed that originally the perfect participle started out as a developable adjectival used them derived from the perfect or directly from the root so we get basically or perfect and then we get which is this derived used them and we kind of have this i mean they're close enough related so chakra is our final perfect and then we get awake as the participle or for a theoretical derivation we have weight and we get way to we dev this is one of our accent upload classes and this is also directly attested so this is the first step to go to the perfect participle next step is this adjectival used them created a neuter as them abstract so we start here with this u adjective and we just add an s i mean we not the problem Europeans added an s and made this into an abstract and there are there are parallels in the living languages for that like tapu hot and you can make an abstract but directly adding an s and you get tapu in very heat okay and here's the third step and then we are at the perfect participle origin and that is this neuter abstract made internally derived that means by changing the accent upload pattern basically acquiring here an emphykinetic so-called emphykinetic animate as them with this kind of upload behavior was us that we see in the perfect and this emphykinetic derivative from state of being awake was one who is awake or as a translated walk and widows and one who knows okay and parallel for getting an animate emphykinetic now from a neuter abstract is for example Greek PR which means fat substantive and then we get animate peon fatty as an adjective okay but this means if we believe Jeremy and I do this means that in order for to carrying to have this particular was that is derived from and use them you have to have had the perfect and this means to carrying inherited the perfect and then we can look at to carrying again what is the evidence for having for it having split of second lexical archisms in the world morphology relative simple thematic present like of perfect uh otherness of the family morphology like of participle with fixed the thesis bill intense as factual stems lexical archisms have to go because lexical changes are unpredictable uh and should not be used for subgrouping arguments in the world morphology sorry nominal morphology otherness of the family morphology I showed that to carrying just got normally inherited both the ih2 feminine and the ih2 feminine and we can talk about that but this was not part of of this talk today like of participle with fixed the thesis bill intense in spectral stems has to go that's what we saw like of perfect has to go because we have the perfect participle and the perfect participle says at some point the language are the perfect well it changed the perfect but so did other in European languages Latin made a new patriot category is composed of perfect and iris and something similar must have happened to carrying and we have to figure out exactly how this worked out so we're left with rarity of simple thematic presence and accompanying things like thematic optative that is interesting to Karen does not have a lot of thematic presence does not have thematic optative but anyway but we see not so many arguments for to Karen having split off second okay here's just a little preaching uh because to carrying subgrouping is very often reinforced by arguments that are not from linguistic so artifacts without inscriptions are not linguistic evidence mummies are not linguistic evidence genes are not linguistic evidence and this is just an aside and to kind of kindle your interest the earliest linguistic evidence for to Karen's because near Xinjiang where the texts were found and where they are attested over a period of 600 years between 400 CE and 1000 CE furnished by long word and this is ongoing work with Bill Baxter and here are just some good long long word but this is basically just to kindle your interest and and stay tuned in this respect okay so to conclude participles with fixed stethesis building tens of spectral stems are shared innovation that happened after not only split off the to Karen part to Karen branch was part of this major innovation uh to Karen inherited the classical uh book money in european perfect to Karen inherited all participles in their classical book money in european value uh and later of course changing bits and pieces like almost everyone else except our preciously friends Greek and the Iranian uh what's the perspective the perspective is tracing the evolution of individual morphemes and the morphos and tactic features and systems of morphemes and just morphos and tactic features regarding non-trivial innovations uh hopefully at some point soon reasonably computer aided and this will lead to modifications in the subgrouping and here's marquel again and since any modification in subgrouping changes the value of individual data points for the reconstruction of the proto language we can anticipate many modifications to reconstruction as we finally do the work necessary to confidently establish subgrouping relations and what i presented here today was just a bit of how we have to change uh individual data points here uh and here is a good uh in the european uh seromon um in order to do this uh the subgrouping uh the focus of the field i.e. i.e. should be on building uh on and advancing the great achievements of the historical comparative method in the morphophonology and morphosyntax of the european languages instead of shaky evidence purely based on lexical items or worse combined with evidence of shady evidence of population genetics uh and instead of deconstructing the system uh that are kind of established uh in favor of of having memory sector and projecting every t-stem that looks funny in an individual language directly back to the proto language where we then get seven different t-stems instead of one t-stem which i um termed i hope to be not to root here and a lot for me a lot for me like infamy anyway as to carrying these speakers would say yes palsku kryptonian yes so thank you for your attention


I need to start right like it's 5 30 Okay, so I'm here to talk to you about the MySQL universe in 2018. It's a very exciting time to be in the MySQL world So who am I? I work at Prokona before that I was in the founding team of MariaDB server Before that I used to work at MySQL and just to make sure it's all fair. I Own options in Prokona. I own shares in MariaDB because they bought our company And I actually bought Oracle shares, so I'm interested in the entire ecosystem from a financial perspective So I love everybody Extremely mature ecosystem, right?  It must be horrendous Actually Oracle's been doing a wonderful job of making it better So 5 5 that was heavy refactoring 5 6 even more 5 7 and 8 0 seems to be getting even further refactored and 8 0 actually they're paying a lot of attention to Making sure things like a well sanitized and I think a lot of people who are Engineering MySQL now are actually engineering on the new code base to be fair I think most of the engineers here never had to touch the 5 1 5 0 code base maybe at all Prokona server is also like 9 plus years old MariaDB just celebrated its 8th birthday Because it made its first release in February of 2010 Drizzle anybody heard of this one before it's obviously dead and WebSkill SQL I think you are you had a question about the Facebook tree and you know they they tried to make WebSkill SQL the tree that everybody would use but it turns out that it's it's actually quite hard to make everybody use one thing and They they still actually keep a Facebook tree Independently whereas the other people like who backed WebSkill SQL like Twitter actually stopped and they actually migrated back to Stop my SQL and Facebook. I mean, I don't think they're as big as Oracle's engineering team to be fair But I think they have easily about 20 20 to 25 production engineers who actually can change the code base But the bonus of what they do at Facebook is they've also got a my rocks team to do and they want the rocks DB team and The engineers deal with my SQL can go in and actually change the The query patterns, right? They can go and change queries or they can just block stuff off So why did WebSkill not really work out? It turns out that I should just read from this it's from their blog post They said we learned over the course of this experiment that sometimes each company Needs may not be similar enough to make sustained collaboration possible Everyone was at a different stage of my SQL lifecycle timelines. This is absolutely true So out of all the WebSkill SQL players This includes Google, LinkedIn Twitter, Facebook Everyone ended up using some variant of my SQL as a base Google Actually switched to Maria DB 10 0 as a base and then they heavily forked Maria DB 10 0 to have Data at rest encryption, which is what you see in Maria DB 10 1 and now they are the only ones internally running Maria DB 10 0 fork But they don't offer it as say as part of your cloud So if you use Google Cloud SQL, which I think there are a bunch of talks here If they only offer my SQL as a service We don't actually have any learnings from why drizzle died Lots of people were very excited by drizzle But one of the major learnings from that was don't have all the core developers hired by a single company Because rack space hired everybody Rack space said look we're not so interested in this drizzle thing anymore Why don't you do this open stack stuff and then boom drizzle died? I know this is really small. I Promise the next slide will be better. It's actually made by a guy called Daniel van Eden You can check this out from GitHub. I've modified it to make it more accurate for the current situation today So that's that looks maybe reasonably more much better I think we've had some important milestones in in the past So in 5 5 in a DB became a lot more scalable and I guess the added bonus is that in a DB became the default storage engine So it's that it's at the path for everybody using in a DB 56 at a whole bunch of optimizer enhancements And I think tomorrow's talk on the optimizer will not even cover all the five six changes. It'll cover everything That's cool in 8-0 But it should not be discounted that there was a lot of work done in five six and even in five seven to be fair Hakona server five five actually Was the first to port group comment in the binary log So that means that instead of calling as seen each and every time you call it in a group Ported it from Maria DB and then eventually Maria DB released it in 10.3 In 5.3 and my SQL has an implementation in 5.6 that that sort of differs and Now of course we're at a stage where my SQL eight zero four is in its second release candidate Then they did something weird with the version numbers. They they jacked it all out It's now so the next release will be eight zero was it ten or twelve twelve Yeah, so And Maria DB is in its second beta So the race is on to see who releases a GA first because it turns out that My SQL five seven and Maria DB ten one will release two days apart from each other in October of 2015 So open source community. We're at a FOSS Asia conference. So everybody here is all about FOSS I think if we had to rank everybody Maria DB probably ranks the best in terms of accepting community contributions Because you can send in code either via this thing called the Maria DB contributor agreement Which is very similar to what the Sun contributor license used to be or you can just commit code as BSD new Maria DB also participates actively Google summer of code. In fact this year there there are still a participant I mentored every year except this year Because I have other things to do but Google summer code is excellent and in addition Not only has Maria DB mentored students and have shipping features also managed to hire developers to join And develop Maria DB going forward my skill five seven has taken say one good example was this thing called generated columns You can obviously contribute, but you can't commit to the code base In fact, if you look at the eight zero release notes as a whole bunch of people being credited including Prokona Facebook whole bunch companies that contributed to my SQL, which is great Prokona we could do a much better job in terms of Allowing people to write code or comic code. We tend to only want to work on stuff that's customer related The other thing that's probably important when it comes to an open source community is who is going to maintain the code going forward I think you can just say hey this this feature looks cool Let's just take this drive-by contribution and then you also want to all be obviously evaluate What is the state of community contributed code? So we we actively do this even say at in Prokona server where we have things like oh hand let's lock it As an example where you could actually make Crud operations create read update elite operations directly to inner DB skipping the entire SQL layer of my SQL, but then we realized people don't really use this very much nowadays So that and it's not really well maintained and then there's this memcached interface which can do put get Why don't we just get rid of Handler socket and nobody's complained Lot of people say my SQL is dying You know oracle oracle actually has owned my SQL now of more or less for 10 years When we just celebrated 10 years of selling to sudden January Oracle probably can celebrate some eight or nine years of owning my SQL. So honestly oracle obviously isn't bad at all My skill keeps on getting better at every release There's a lot of external contributors shared knowledge, which is why you know people know what inner DB is about right?  There's plenty of tools. I wish I'll show you a handful of them as well I think my SQL 5.7 has a whole bunch of underrated features like a lot of people don't talk about them or use them Multi-sauce replication for example is is very handy when you have multiple masters writing to a you know a single node I'm hesitant to now say master and slave because in In some places people get offended by that even though that's how we we call it leader follower Everybody's getting more politically correct now Um Things like statement timeouts turning on GT IDs in an online fashion as opposed to having to restart everything in like you did in five six Resizing the buffer pool in an online fashion, which actually does obviously while you do a resize it will actually Feel like your queries are being processed, but you know, you don't have to restart the server so much better I think this these last two features are extremely underrated right the whole mysql shell xdab API a lot of people Always talked about having you know JSON functionality, but then you know did any other open source projects say we're going to start using it No, we haven't really seen that and that's partially because we need to talk about it more and even encryption at rest. I Should put the Maria DB once from ten one to and ten two because they have made two releases in that same period of Southern's actually because this is snapshot came into ten one Well, it was it was around even before ten one It was a by-product of group comment that is also now actually in mysql five seven so another maybe underrated feature Having Galera cluster integrated is actually quite nice And I think going forward you'll see more from the mysql world in terms of group replication So that's something that even now we have not done in prokona where we you just get one download and you get to turn on Galera application or not The thread pool How many of you here write web applications? Okay, you what what do you write not that web applications or? Yeah Okay, so most most web applications anyhow they you know their short running queries They may be running less than one second, and that's why having something like a thread pool makes a lot of sense Mysql has this in in the enterprise release Maria DB and prokona server have this in an open source fashion, which is kind of nice because the way because Maria DB made it first prokona enhanced it Maria DB got to take it back and Everybody's better off because that's how open source works Extending the regular expressions came in Maria DB 10-1 as well And this is actually the the regular expression library in mysql 8 has also changed, which is maybe another feature that needs to be talked about more and And roles sql standard roles very important and why why what these last two features again didn't come from Maria DB Core developers it came from Google summer of code students So which we mentored them for three months, and they produced real usable code that we could push to the server In fact this guy even got hired the roles guy I know hired by Maria DB Yeah, Google wants other people to hire Yeah, they they're only going to give you that five five thousand dollars life Ten two came out and Big change in Maria DB in the sense that inner DB became the default inner DB That means they for the first time really be stopped shipping extra DB as the default inner DB But also my rocks alpha release If you're doing a large-scale analytics Window functions kind of make sense also coming to mysql 8 recursive common table expressions similar AWS key management, so it turns out that when you encrypt your data at rest You may find that you need an external key server of some sort the easiest way to get started is to keep the To choose the file key management plugins that are available But it turns out that if someone breaks into your server they'll walk away with said file Which is obviously pretty stupid. So then you get this key management plugins So most of them offer very expensive solutions But AWS offers this with the power of your credit card and Maria DB tend to actually includes this as well Yeah, but don't I serve a five six and five seven is not a fork of My SQL it is a branch of my SQL it still remains it aims to be always very close it aims to constantly be a drop-in replacement and The bonus of everything we do at prokona is we'd like to contribute back upstream so that we don't have to maintain it the engineering burden goes back to Oracle Some bonus Actually, it's a very good way to have sustainable engineering because at prokona We have a whole slew of products and our engineering team is approximately less than maybe 35 people And that means we and that's also us doing in a prokona server for my SQL MongoDB the monitoring and management we managed to keep things small because we managed to contribute things upstream tremendously and We like that we like that model So every time we make improvements to extra DB We also do contribute them and sometimes Oracle accepts them and then the creditors and then we don't have to maintain it any longer We make a lot of enhancements that are focused generally around Usability manageability The ability to monitor things we really focus on it from a dev-op standpoint And then we hope hope that upstream gets it and then we can move on to doing other things but we also are happy to remove things so at at Previously before in five six and and previously if you wanted to warm up your inner DB buffer pool We'd have this idea called inner DB fake changes Which will actually do these operations and then roll them back to warm up the buffer pool so that when you have a start You know, you're 60 gigabyte buffer pool isn't all cold Then we said look we don't need this feature any longer because it's actually it's kind of hacky and My SQL has interest in my parallel replication available.  You just turn you just start using interesting my parallel applications a replicate across and You've already warmed up your buffer pool when you start the server and that is You know a proposed solution that we have to replace fake changes so we can remove features I don't know how many of you have read this blog post before but maybe maybe it's well worth looking at It's a it's fairly long. It might be like 10 to 12 pages long And at one stage or maybe it still is probably the most popular blog post in the Pocono website Because it compares my SQL with Maria DB as well as Pocono based on a white paper that Maria DB wrote and that's going to be what I speak about over the next maybe 10 minutes or so So we we always like compatibility and in a database We care about the fact that you may want to move around from one database to another I'm sure if you tried you know my SQL you may want to try Maria DB because has a new feature and then maybe you want to go back to my SQL and compatibility really matters From standard standpoint as well It matters a lot because Maria DB server is the default my SQL in pretty much every Linux distribution except Ubuntu That means when you ask for my SQL you get Maria DB for free instead. So all the cool my SQL features That are not part of to Maria DB You suddenly can't use them which means all this wonderful engineering that Oracle puts effort into goes unnoticed So I always like to say to distributions take a page out of the cloud offerings You know Amazon for example doesn't just offer RDS my SQL and say hey, here's Maria DB for free They don't they actually tell you you can choose my SQL or Maria DB As your just launched this week as it became a generally available product They offer my SQL in GA and Maria DB as something coming up later Rack space is offered my you know my SQL Maria DB as well as the Kona server Ali Baba and Tencent Ali Baba's put money into Maria DB cooperation and the foundation and Tencent has put money into the foundation and None of them offer Maria DB in the cloud. They only offer my SQL in the cloud So so taking a page out of the cloud providers can actually mean that It might be better to have my SQL being my SQL and Maria DB being Maria DB because they at one stage They were both different variants of apples, but today they're an apple and orange so Generally speaking my skill 5.6 should be comparable to Maria DB 7 10 1 and 10 2 should be compatible with 5 7 But this is not necessarily true because it's not necessarily a drop-in replacement But it is dropping in the sense that you can use the same data directory the same part and That's where maybe part of the confusion starts Governance again, we're at a fast conference. So it's well worth talking about governance Maria DB Obviously it has a corporation and a foundation and the foundation's goals are there to Ensure that if the corporation gets acquired the fund it will never be such that Source code could go to another company like it'll always be free and open source Even though my skill is free and open source But that's always just worried that Oracle would do something odd to it Oracle has it. So kudos My SQL of course is owned by Oracle by way of Sun and my SQL AB And for Kona we were not ashamed to say yeah, we're our software is owned by us and We're hope we just like to give code up so upstream so that we don't have to maintain it I also like to Ask these this question generally, you know Is there vendor lock-in with open source and you know generally speaking the answer is yes You can be vendor locked in even with open source. Maybe you like one insurance provider better than the other and I also like to look at other things like in how many times websites have changed and so forth and web.archive.org great resource so the MariaDB project officially only started in late 2009 right before Oracle acquired Sun and These are basically the current releases that you can you can take a look at and the Kona server Generally is anywhere between three to six months back of a release Of a my SQL major release But when it's a minor release, it's probably within the same month So replication compatibility the easiest way for you to migrate from one database another is to replicate so you you would upgrade a follower or Slave and then you would maybe promote that to become the master So if you were running say my SQL 5.7 in on the master You'd upgrade you'd upgrade to say to MariaDB 10.3 on the slave to see what it looked like This table suggests that it is much easier to migrate to MariaDB server But you can't migrate away from MariaDB server and why is that? Because my SQL Global transaction IDs in 5.6 and 5.7 are different from MariaDB's global transaction IDs So what MariaDB does is MariaDB filters out the global transaction IDs So throws it away and assigns its own global transaction IDs inside replication Now MariaDB can do that, but my skill doesn't so my skill sees the replication packet and MariaDB's GTIDs and goes Oh, I don't know what this is. This is garbage replication breaks so Migrating to MariaDB easy migrating out of MariaDB hard. So in a way, it's like this song called Hotel, California You can check in but you may never leave You can dump the data and load it up again though my skill dump works generally Yeah, I'm not that old Yeah, so replication as well so my skill has been using row based replication as a default for some time MariaDB is chosen to do mix mode and also turn on annotating the row The bind these parts that are based on the row which is odd because then your bin log size starts growing growing in size So this is a default. You probably want to change But there are some very interesting new features like this idea of DML only flashback which actually changes My SQL bin log tool to actually roll back instances and tables turn all the snapshot and Ali Baba does this in Cloud on a regular basis and this is actually unique to MariaDB. It's written against my SQL But they ported it to work on my on MariaDB In terms of synchronous replication, there are two different types of synchronous replication available today There's Galera, which MariaDB server as it built in that's PCona actually be cluster and Co-de-ship the company that makes Galera also makes a MySQL 57 version of it and then there's this other idea of group replication Which only works in my SQL or PCona server. It doesn't work on MariaDB PCona server. Yeah, we we totally support it and we like we like it. We hopefully Yeah, the plug-in actually will load PCona server has no problem loading the group replication plug-in our hope Now this is being recorded is that group replication more or less over takes actually be cluster over time Because we're we're now putting engineering resources behind actually be cluster to make it better but we would like to focus on Group replication which also works on this OS that I personally don't use but many people use call windows So we and we are still waiting for Galera cluster for for many years now. It's been maybe three years. We are still waiting for the next release We don't know how much longer we can wait But yes, we do support group replication um X protocol only works inside of My SQL it doesn't work with MariaDB when I say it works at my skill. It'll definitely work with PCona server It is a drop-in replacement Is anyone aware of the X protocol and my SQL SH and Doesn't work at our Okay, so clearly you need to market this more Encryption My skill 5-7 and MariaDB server 10-1 both have data at rest encryption, but implemented differently MariaDB as table space and tie table space encryption for inner DB as well as Aria temporary table encryption whereas my skill only does this table space for inner DB um Google patch only does table space encryption, but MariaDB enhanced the Google patch to also do table encryption Nobody does column encryption Encryption of logs is is done in MariaDB, but not in my SQL But Prokona server the latest release in 5.7 does encrypt logs as well. So that might be something to look at My skill requires you to use inner DB file per table. Whereas the MariaDB variant doesn't Generally speaking though, this has been a default sometimes. So you should just use it and My skill implementation of course works fully with Prokona actually be cluster whereas the MariaDB version does not Encrypt the Galera cache the G cache inside of the MariaDB version. So it's not fully encrypted Performance schema, it's an excellent piece of underrated kit that is disabled inside of MariaDB And it's actually shipping a much older version from the 5.6 variant Performance schemas improved tremendously in 5.7 as well as 8.0. So I Expect more people will turn on performance schema the the answer with MariaDB is don't use performance schema because user stats exist and User stats is like lighter weight that is true But I believe that come my skill 8.0 user stats will go away because performance schema is also fanny lightweight Prokona server also has user stats, but we expect it to go away No, no sciss schema either Hmm. Okay. I'm going to go much faster now In terms of security my skill uses distinct or shot to music's password and it's going to be turned on in 8.0 caching shout to music's password MariaDB decided not to implement that so it's implemented added to 5519 which is based on the elliptical curve digital Signature algorithms. So that now means that if you use my skill 8.0 to create a user and a password And you try to migrate to MariaDB. You'll break You have to recreate said password and vice versa This is going to be incredibly annoying for human beings It would be much better MariaDB just implemented the shout to music's password thing too as well Validate password is on by default in 5.7. It's not available in MariaDB. So you could have a weak password in theory SSL linking is changing rapidly as well My skill user table has changed as well inside of My SQL and Prokona server. However with MariaDB, it still uses the old my skill user table from 5.5 So if you have scripts that actually make use of the my skill user table, you now have to check against MariaDB and my SQL There's no password expiry available inside of MariaDB yet There's no way to tell you if the password when was the password last changed and and a lifetime You can't lock and unlock an account like you can in my SQL And this SQL function is also missing inside of MariaDB Optimizer hints came to my SQL in 5.6 something that we still look forward to in MariaDB If you're doing automated failovers, this option called super read only which allows the which which ensures that the super user itself is also read only can't accidentally write to During a failover. This is a very useful feature. It came out of web scale SQL the Facebook and the Facebook tree and This is in Prokona server my SQL as but not MariaDB yet My SQL is shipping a whole bunch of nice new tools that one could use to make things easier If the tool requires global transaction ID to work Well, it will only work with my scale Prokona server not MariaDB There's a huge wide and varied ecosystem out there and many of these tools work with all distributions available and Today, when we use MariaDB server If you wanted to use talk IDB or should I say Prokona talk IDB then you you could use MariaDB server If you happen to still use my ISM Then you definitely want to turn on segmented my ISM key caches though. Really you should upgrade to you know DB I don't know why you'd still use my ISM The connect storage engine is kind of handy because it allows you to do ETL operations You could connect to an ODBC data source and import the data into you know DB You could connect to MongoDB for example and import its BSOL files. The thread pool is awesome open source spam authentication Open source Kerberos as well as active directory authentication. So stuff enterprises may want window functions as well as Optimistic power application could be useful This is what happens when When if you have a master that is running MariaDB say 10 to and a slave that is running 10 to as well The you can actually send replicate replication packets Not necessarily in order and it will still be fine as so especially across multiple schemas It could be fast or optimistic power up power application exist in my SQL too, but The optimistic version is kind of handy rolls of course So you could be you know, sorry brains oxley compliant When do you use prokona server? Largely when you want to have better scalability performance flexibility Diagnostics and so forth if you want to use my rocks the engine that basically powers all of Facebook's user database Totally we have a GA version available today extra DB which is a better inner DB Talking to be of course Things like the ability to enforce a storage engine or if you're doing open stack deployments, and you need a utility user That means someone to make changes to the Admin to administrative changes to the database that do not actually have access to the schema That's what a utility user does and that's that's useful when you when you're running it in an automated fashion One column compression as well perfect perfectly Good ideas for Kona server. So the idea is if you feel like you've outgrown my skill Maybe Kona servers right for you, but for everybody else today You should probably be using my skill 5-7 or trying out 8-0 If you if you don't fit in the other buckets my skill 5-7 is is very awesome Very very near future. So this when I say very near future. I expect before before summer is up My skill 8 is awesome Many of you were in the previous talk as well So you heard about what nice new features are coming in my skill 8 Maria to be 710 3 will be out also in the summer and it is going to be more compatible with Oracle because the idea now is to Have a SQL mode called Oracle SQL mode equals Oracle which will allow you to parse a lot of Oracle as Oracle syntax as well as PL SQL not all of the Oracle syntax not all of PL SQL, but a subset of it so They claim it's an 80% subset But it's it remains to be seen at this stage because I myself am not like an Oracle user. How many are used the Oracle database? Nobody Okay, and of course a Couple of other features like the proxy protocol which you also have inside of Kona server and so forth You want to always have freedom from vendor independence You want to make sure that when you're looking at a at a product how many support vendors they are So it's it's fairly obvious that Oracle probably will not support Maria DB instance Whereas if you go to prokona, we support Maria DB prokona server my SQL Maria DB now more or less doesn't support my SQL. They only want to support Maria DB instance But there are the providers to like PC and then so forth and they tend to support everything you want to be aware of vendor lock-in and Definitely know the difference between a branch and a fork A while back this guy called Michael stonebreaker is really big in the database world. He said When Facebook uses my SQL, it's a fate worse than death for them And he said just that everybody you see this new database things called both DB or something well, it turns out Facebook thought that was pretty funny, so they made this little t-shirt and They they've actually probably migrated even more workloads to my SQL Since since then so pretty much all of Facebook runs it So I think mastering the ecosystem takes a lot of time because you know nearly over 20 years But I guarantee you that once you've mastered it. You'll be you'll never be a fate worse than death With that I can answer your questions Hopefully that was a quick overview of what is available out there in the my SQL world Any questions Yeah, so why why is Maria DB switching from extra DB to DB? So they so they hired a core in a DB developer And he says that the changes to actually be now a fairly marginal that they would rather Fork in a DB rather than and actually it's it's called in a DB But it's not in a DB So if you look if you look at a code by code comparison, you'll realize that the inner DB inside of Maria DB It's not the inner DB that is shipped in say my SQL 57 and they didn't want the pain of merging two variants of you know DB They wanted to only merge one and going forward come Maria DB 10 for they're not going to merge in a DB any longer from my SQL Largely, that's also because the way my SQL has changed It's underlying structure my scale 8 and ready be doesn't want to follow same changes So they're going to cherry pick patches from inner DB and instead of making it a merge So they're gonna call it no DB, but they're not it's not going to be in a DB And in fact the 10 3 in a DB is also not the same as 5 7 in a They've changed a lot of Random little features like removing copy and swap and so it's largely because they Maria DB's decide they also like to fork in a DB Whereas for Jonas keeping actually be would say like the parallel double-right buffer for example But it's a good one to keep actually be there all the time right then very much like everything Which has been going on for many years and I think even Oracle hired X for Kona in a DB developer People move around any other questions Okay, then thank you for listening. Oh, yes Like Yeah, so talky DB still support inside of Maria DB and for Kona server We are still developing talky DB, but we're putting more energy behind my rocks Because my rocks also has compression and arguably probably performs better So, yes, we but we have customers on both sides, so Yeah Kind of a different workloads, but generally we believe most people will migrate from talking to me to my rocks eventually So maybe in another two years give or take So even it's the same with Maria DB right there It is they have customers who are using Maria DB 10 to a talky DB But once 10 3 comes out talk my rocks will become a genuinely available engine and maybe my 10 for enough people migrate I don't know but from a pro Kona standpoint. We expect to support talking to be in my SQL for at least another two years and We already gade my rocks, so we're ready to continue telling people it's okay to migrate and we that's what we like And it's much better to have my rocks being developed by not just us and Maria DB, but also Facebook, right? so We remember the whole idea of we like to work with upstream more than we like to make our own stuff It's a much more sustainable form of engineering for if you want to keep a smaller engineering organization Yeah, otherwise If we were going to say let's make our own engine. It's it's pretty expensive it's I mean we know the cost of developing say extra DB, which is why we like to send things upstream and The cost of you know forking, you know DB even in Maria DB is probably more expensive than you expect The cost of forking is expensive It's why it's much better to just work with upstream don't fork And if in this case for Kona is the upstream for talking to be since we acquired the company Yeah, talk attack was acquired by for Kona many years ago 2013 I think yeah That's how for Kona went into the MongoDB market as well because talky talky DB had a my SQL and the MongoDB product but in the MongoDB world Kona stopped developing talky DB because there's this thing called Mongo rocks, which is The Facebook version MongoDB for rocks DB used at their powers They don't have parts anymore But they are probably all the users of Mongo rocks. Okay. Thank you. Thank you. Come back tomorrow


So, we recently talked about how the New York State Board of Elections was trying to purge everyone but Joe Biden's name from the ballot in their upcoming primary and how that was being challenged in a court of law by individuals like Andrew Yang and delegates to Andrew Yang. And guess what? I'm sure you already have heard by now, but a judge ruled in Andrew Yang's favor and overturned the decision of the New York State Board of Elections. So in other words, the primaries back on, Andrew Yang single-handedly saved democracy in New York. Credit words do. So, as Matt Stevens and Nick Cora Siniti of the New York Times explains, a federal judge on Tuesday ordered election officials in New York State to hold its Democratic primary election in June and reinstate all qualifying candidates on the ballot. The ruling came after the presidential primary was canceled late last month over concerns about the coronavirus. The order filed by Judge Annalisa Torres of the United States District Court came in response to a lawsuit filed last week by the former Democratic presidential candidate Andrew Yang. He sought to undo the New York State Board of Elections decision in late April to cancel the June 23rd contest, a move it attributed to health and safety worries and the fact that the results would not change the primaries' outcomes. On Tuesday night, Douglas A. Kellner, a co-chair of the New York Board of Elections, said the board was reviewing the decision and preparing an appeal. And speaking on CNN, Governor Andrew Cuomo said the presidential primary would proceed per the court's ruling, at least for the time being, but he noted the potential for an appeal. Okay, so let me just say that this doesn't just put Bernie Sanders and Andrew Yang's names back on the ballot. This puts all of the presidential contenders back on the ballot. This isn't just a win for Bernie Sanders supporters. This is a win for everyone who is supporting someone other than Joe Biden, which is most Democratic primary voters, although Andrew Yang is the one who catalyzed this move. And I absolutely applaud him. You've got to give him credit for this. He did this. Bernie Sanders just wrote a strongly worded letter. Andrew Yang took action in the form of filing a lawsuit, and that's what you want to do if you actually want to affect change. So my hat goes out to Andrew Yang. He made the correct choice to do this, and we all benefit from his courage. So we absolutely have to give Andrew Yang credit. And let me just say for Andrew Cuomo, the fact that him and the New York State Board of Elections are saying they're going to appeal this really shows you the contempt that they have for the Democratic Party's base. It shows you they don't care about democracy, right? And it's not like the DNC is the only institution within the broader party apparatus that's corrupt. I mean, state Democratic parties are equally as corrupt. They are all working at the behest of the establishment because they're going to go where the power is flowing because that's how they are able to have a bigger influence. So if you side with Joe Biden, he's going to pay you back when he's in power. And I don't know what that looks like. Maybe a position within his administration, maybe he favors your state in some way. I don't know what that looks like. But I know that power is always what people are going to gravitate to, at least if you're corrupt and career minded. Now Andrew Yang responded with a statement via Twitter saying, quote, I'm glad that a federal judge agreed that depriving millions of New Yorkers of the right to vote was wrong. I hope that the New York Board of Elections takes from this ruling a newfound appreciation of their role in safeguarding our democracy. And I couldn't agree more. And look, let me just say this, the fact that we even have to challenge the Democratic Party in the court of law in and of itself is just, it shouldn't happen. They're the party that frequently speaks out against the voter suppression tactics and disenfranchisement that happens to their base when the Republicans do it. But here they are doing it to their own base, but not necessarily, you know, the base who they want, the people who aren't going to fall in line. They just kind of want them brushed aside. And even if Joe Biden is a huge favorite to still win the Democratic primary, they still couldn't help themselves. They had to deprive voters of the choice because, you know, it's, it's just, that's what they do. There's really no rhyme or reason to it.  But when the left fights back, sometimes you can win. Sometimes you can win. It's just a matter of playing hardball and acknowledging that you can't lie down and take it. I want this to be a lesson for leftists going forward, right? I thought that Bernie Sanders, you know, speaking out against this was important, but he just sent a letter to the New York State Board of Elections. He sent out an email telling people about what they did. He should have been one of the first people to file a lawsuit. And I'm not trying to dog on Bernie Sanders.  It just shows you that one of the main things he could have done to possibly win was be stronger, actually take on the establishment. If you want to win, that's what you have to do. It's not an option. You have to do it. And Andrew Yang is clearly playing to win. He put out a tweet saying that he absolutely is taking note of the people who aren't supporting direct cash payments during this pandemic and rightfully so. I mean, he's the UBI guy, but now is a time where even if you didn't support universal basic income, generally speaking, you should at least support it throughout the duration of this primary. And if you're in the Democratic Party, I mean, it shouldn't even be debatable. So, you know, I applaud Andrew Yang. This was a courageous move and it paid off. And let me just say this. This is something that was risky. Like Andrew Yang most likely will be running for president again in 2024, assuming Joe Biden isn't able to beat Trump or assuming he wins and then steps down or something. But he's going to be back. That's the point, right? He's running for president again. And if you want to run for president and you want to be successful in the Democratic Party, one thing that has been abundantly clear is that you have to find a way to win over the establishment and never question them. That's what we saw from Elizabeth Warren. And it doesn't necessarily mean that you're going to win. It just means that you'll receive less pushback from the establishment.  And as a result, Democratic Party officials weren't freaking out about her. And they were freaking out about Bernie Sanders. So I mean, these are the people, theoretically, you'd want to win over if you're going to run for president again. But the fact that Andrew Yang is still challenging them, it shows that he has a good strategy. He knows you have to take on the establishment head on. Otherwise, they're going to steamroll you. Never ever just, you know, acquiesce, never just let them get a victory over on. You will always fight, even if it seems like it's a lost cause. Fight, fight, fight, never stop fighting. That should be the mentality that we have going forward as a left collectively. Otherwise, we're never going to win. So just keep that in mind. Whenever you think that fighting might not be the good option against the Democratic Party establishment or any institution in the United States, fight that instinct, fight the system. You have to. Otherwise, you will lose every single time.


Okay Google, ask Argos to find me an energy saver light bulb. How about a Philips Hue 9.5 watt light bulb? Yes. One more thing, you'll need to confirm the reservation on your phone. Perfect. Okay Google, ask Argos where's my nearest store? Anyway, how's it going? Okay Google, ask Argos to reserve a white rug to collect immediately.


Who is this? I think it's Max. Mine. Oh, God. There you go. And I was about to throw it at the table. All right. So I'm going to talk about, is this too loud? Maybe it's too loud. Is this too loud? Good. Generally, yes. But after Max talks, just put it up here.  So I'm going to talk about the answer to, and give you an official status update. And hopefully we'll have performance left at the end, and we'll give you a really cool, fast introduction to a new feature that I just included yesterday. So, if you've used the answer, how many people here use the answer, or know about the answer? That's great. How many people here know about the answer to? Just a quick survey. All right. How many people use it? I especially like the... Okay. So, talk a bit about the answer. First of all, the answer really is, it's awesome. It's fantastic. It's great. It really, really, really is. It is very fun to use. It is very fun to share. We want to show things, right? It is what I would like to call pro-fully beautiful, which means that it's a really nice showcase of how you can have beautiful, pearl code, okay? And really nice technology and really nice abilities for our applications. And it is a very good way to attract newbies. We get, oftentimes, we get people who join the dancer channel and talk to us about writing a new piece of software and they go, like, well, yeah, I don't actually know pearl, but I saw this thing and it looks really nice. I would like to learn pearl just enough to give you an insight into the answer. And this is a very, very important point to know. When we have really nice technology, people pick up on that. And job-wise, marketing-wise, it's very successful. There are now a few job descriptions that actually include, hey, if you know the answer, this is useful for you in our job. And as I just explained, it is a very good showcase of what modern pearl is and what modern pearl should be. So overall, not bad. Of course, the community is awesome. The community is fantastic. We have a very lively, a very warm, happy, kind community. It's fantastic. Sorry? So they come in. So until you join. So we have a, don't troll, so we have a very happy community. Overall, it's also very successful. 850 stars, which used to be watchers, on GitHub with over 300 forks, over 1600 issues. It's insane. And just talking about GitHub, that does not include RT, mailing lists, emails, IRC. We take bug reports and feature requests from every possible channel. Okay? So if you email one of us, or if you email to the list with something, we'll create a ticket. Or we'll work with you to create the ticket. Sorry, kid, you're in on. So that also does include stuff that the community created, like plugins. Hey, we do some conference talks, not just me, pro-members, and articles. So overall, it's just very, very successful. It's very warm. It's very fluffy and fun to work with. And of course that means we're also getting very famous. We have some newspaper articles, and magazines, and blogs, and news websites. And there's a few companies that use Dancer, like, hey, Booking, and Shutterstock, and Novel, and UK2. UK2 is an ISP. Novel has an entire product that is based on Dancer. Shutterstock has some search stuff, and Booking has various utilities, also written in Dancer. There's some government websites that are written in Dancer. There's some personal blogs. There are wikis. There are actual libraries that are written in Dancer. It's really, really nice to see. It's very exciting. And we participated in Google Summer of Code. How many people here know Google Summer of Code? Fantastic to know what it is. How many people here know the outreach program for women? So it's a very similar program that tries to influence, to get some companies not born to influence, but to get some companies to sponsor women to go into open source. It's fantastic. So we also participate in that. So all of this kind of leads to this thing. Why Dancer, too? If everything is great, what is the problem? And one point, where is Dancer, too? Which is a question that we get asked quite often. So we talk about Dancers who actually want to start with something else.  I think I'll just use Globals to solve this problem here. Can anyone imagine your response? Mine is this. Right? Because they're horrible. They're really, really bad. Globals are singletons, which basically means we get one instance and we only get one instance and every other attempt to work goes to that instance. So it's one shared information between all the other consumers. And Dancer one requests responses, serializers, hooks, they're all global. They're all singletons. This means that the serializers, for example, if you have a serializer, these serializers request to come in in JSON format and provide you with just object that you can work with or structure that you can work with. And when you're done with that and you throw a structure out, it serializes automatically in JSON back. All of your Dancer applications in that process will do that for you. All of them. You cannot change this. And your hooks, they're global. This becomes a problem. And it's important to know because people will be like, why did you do this? We did it. What we actually did was take an existing framework called Sinatra written in Ruby. The founder of Dancer is also a real programmer. He really liked Sinatra. It's very nice. And he said, well, wouldn't it be nice to have this thing in Pro 2? And he provided it. And this is the design of Sinatra. So we're kind of stuck with this. And when people came in to Dancer and they went, you know what? I'm thinking we're going to use this for like, serious stuff. All of you, this is great. And then they realized, oh, wait, this is a problem here. We cannot have single-sins everywhere. This means that you cannot also run multiple apps in a single process. And there wasn't available fix pretty early. But we didn't want it. So we didn't merge it. We wanted it to be done right. And the fix was kind of like a workaround. So what did we do? We started the answer 2. So the answer 2 is the rewrite of the code. It has no locals. Well, there is one, but that's just the runner. You always have just one. There's a DSL mental layer. It's a completely separate layer. Which means that we can hack on the internals as much as we want. And your code, which is the DSL, stays exactly the same. Which is fantastic.  You won't ever see it. It's really, really good for developers. We have clean internals as much as we can. We're working on cleaning them even more. And we're using MOO, which is a very good object system. So we don't have to reinvent that thing.  So what is the answer to it in a few other words? First of all, it's more compartmentalized. Which means that everything is more separated. So each app is its own thing. It has its own context. It has its own scope. It's more compartmentalized. So when you create apps, you can actually use them in different places. It's fantastic. And it's worth a couple. Same direction. Also, the answer to is more dependencies relaxed. This means that we don't actually care about dependencies. I know some people do. But what we did was actually ask our users. Well, what if we keep the dependencies down to, say, maybe four or five dependencies? Or fewer. Or maybe six.  We don't care about dependencies. If we're at the point that we can use the answer, we can use dependencies. When you take a look at second liners in Carton, in Fat Packer, in Pinto, dependencies are not a problem anymore. Just knowing that you can use these. There's local live not on the list here, but some of it uses it. It's really, it's no longer an issue. Another interesting point is that the answer to by default and by policy is what we call Fat Packable. And that means that you can always pack your entire application, including all of the code of the answer to into a single file. That's it. You can send that file. It's everything in it, bundled. So no dependency problems. So we're much more relaxed. We're much more oriented towards cooperation with other frameworks. That means that if there is a commonality, and in some cases there are, with catalyst or with simple, but any other web framework that wants to join in on this attempt, we actually try to find a comfortable way that suits all of us. One interesting example is route definitions, or root definitions, where you have a path, and you have a main language to define that path, like colon for variable name or question mark for optional. And web simple also has a root definition. And we wondered, could we join these and merge them into what root definition that both systems could use? We can, and we probably will. Another interesting point is that we really try to push more things into middlewares so they can be shared across systems and across frameworks. So again, going towards cooperation, rather than building our own niche that no one else can play with. And lastly, dancing through is an opportunity to get it done right. To get it done on an architecture level, to get it done on a programming level, to get it done as like a really good pro-program in IK. An interesting example is this guy. This is Gene. Gene is from Luxembourg, Lebanon, and Germany. And when I went to the German pro workshop just now, he came up and he was like, hey, I would like to contribute. What do I do? And we found an issue right away in POR that we needed some help with. It was a small feature that we wanted. It could be maybe a feature or a bug or missing implementation. And he grogged the entire code base as much as he needed and finished the feature off on his own in under two hours. He came up a bit later, hey, I'm done. I pushed it. Could you look at it?  So it is an opportunity for all of us to get into programming as well. So what is the development process of Dancer 2? It currently looks like this. There's a lot of reflecting, a lot of anguish.  Not very good. And what it should look like is this. Time box release cycles. Something like every two weeks, which we're definitely moving up to. A policy document that defines what our policy is regarding several different concepts. It exists. We need to revise and release it. We need to have coordinators. So someone coordinating documentation. So if you want to contribute to the documentation, you just go to the coordinator and he says, okay, here's something we need help with.  Let me merge it and give you the feedback on that. And we need some compatibility shins. We need to make sure that we're breaking as few things as possible. Which leads us to how do we actually fix this? How do we actually reach that point? So we have a problem of not enough time. But we're improving on this. One of the biggest things is to make Dancer a business priority. And although we don't like the idea of corporates, but once this becomes something that companies actually use, that means that we can actually put company time on it and company money on it. And that is very, very important. Revision to policy document. We need to get the coordinators to coordinate. We have coordinators, but they have too many tasks. They didn't actually get to coordinate anything. Which means that everyone can be a coordinate. So if you're actually thinking, hey, I can actually coordinate some documentation patches, I don't mind. Please, join us. We want to have more core devs. We recently added Russell Jenkins, Stephen Humphrey, and our very own Miki Naseati, who gave the talk about medicine for client. These are fresh, fresh flood into the core devs list, which is the TASA.  The things that we want to change and tackle on, they're still not the way we want it to be. So what I would tackle myself, this is my personal hit list. I want to have full support for raw PSGI subsidies. Work on the way, actually, this is not working. And you know what this means? This means that Dancer is now completely asynchronous. It's really nice. I'm going to show a recorded console session. We need to improve our path detection. We want to revise the whole system, get some more interoperability with plugins. There's some internal cleanup that we want to do. What is the coupling of the configuration rules? Done. We had a hackathon yesterday. Another one is removing the answer to test, or at least the usage of the answer to test. Done. I did this during the German pro workshop, because all the talks were in German, so I had a lot of time to hack. And the server role that was conflated with the runner role, and that's it. It's done. It's cleaned right off at the hackathon yesterday as well. I want to improve the session handling a bit. And honestly, this is the lesson most of this is done, so I'm really, really excited. So, where do we go now? Corporate attention leads to development and maintenance time. Sponsorship and donations lead to hackathons, like the one we had yesterday. And workshops also lead to hackathons, which is under collaboration. Also provide user visibility and feedback. So, this is your time to shine as users. And please, grab me later. We can have a chat about it. Now, this is this part of the talk. How much time do I have left? I don't even know what time it is. Two or three minutes. All right. So in these two or three minutes, I'm going to show a four-minute presentation. There you go. No. This one. Okay. So it's started. What I have here is a screen with four panes. Okay. And I'm going to show this dancer app. It's a package named event-based app. And it will use dancer 2 just to get a syntax. Okay. I'm going to use any event to have some event-based routines. We're going to use time high res to get accurate time and high resolution. There's an array here to keep all the timers that we're going to create with any event. These timers are going to run things that take longer on polling. There's a root here called slash ping. And that will just return the date of time. Now, we're going to have a longer-running request. It's going to be in slash long. And I'm just going to show what we're going to do here. It's going to return a subroutine. And that's going to get a responder, which is a code reference. This is a pure plaque, a pure PSGI response. And responder, there's no dancer stuff going in here. It's just facilitated by dancer. We created a timer using any event into the timers array. It will run after five seconds interval zero, which means it will only run once. And it's going to run this callback. After five seconds, it's going to call the responder code ref and send it a pure PSGI response that just says 200 OK, no headers, and the content high. So there's a timer here. And when you go too long, it does in just five seconds and then sends high.  And at the end, I have get slash sleep with just leaves five seconds. So I want to show the difference between non-blocking sleep, which is the timer, and blocking sleep, which is the actual sleep call. And at the end, we have dance, which just returns a code reference, a PSGI code reference. So let's see what I did here. The first thing would be to run this. And I'm going to use Twiggy. I'm starting with plaque up over there. Takes lib, which is the dancer that I haven't committed yet. And we're calling Twiggy, which is actually an any event-based web server. And I'm giving it the event-based app. So it just started. It's accepting connections. And we can play with this. Then we can go to a different pane over there. And what I'm going to run here is that while true forever, do a request using curl to <IP_ADDRESS>0 slash pane, which means go here and get a pump back and sleep 0.4 seconds all the time forever. Here it is. These are the requests coming into the server. These are the responses that we get from the server with the time. And now what we're going to do, you can see it just, the more I push it, it's live. It's running. Now, what I'm going to do is call long for a longer new request. Okay? Here we go. It's going to take five seconds. Then it's going to return. But notice that this is running at the same time. It took five seconds. I'm going to run it again. It took five seconds. You can see that it's still running all the time. Right? We didn't actually stop the web server from giving other request responses. Now, this is sleep. And when I run sleep, you know, it just, it hangs. That's it. Until sleep is over. This space means I haven't done anything. And here you can see that when they get to slap sleep, the output for the log was only generated after it finished sleeping. It couldn't even output to the log until it was done. So calling log, actually long, actually less than running. And I'm running multiple panes now at the same time. So long here, long here. And you can see that it's still running. Everything is still running, even though the screen looks a bit shitty. And this is the interesting part, that we were able to return a response saying, here's a response but still allow other stuff to go on at the same time. This is async. A lot of people asked about the answer to this. This took me about four lines of patch. That's it. I did it last night. Very simple. So this is answer two. I think we're going into a very good direction. And if you're interested in that, grab your later. And that's it. Thank you very much.


Guns are now the leading cause of death for children in America. In 2022 alone, more than 6,000 children were injured, and over 1,600 were killed by gun violence. Republicans claim they want to protect kids, but they're blocking gun reform, and instead banning things that aren't dangerous at all, like books, African American studies, girls talking about their periods, saying gay, drag shows, trans kids playing sports, trans kids using bathrooms that match their gender identities, and banning just about anything they consider woke. If Republicans really wanted to protect children, they'd ban assault rifles, instead of wearing them on their lapels. They'd pass universal background checks, red flag laws, and ban permitless concealed carry. The majority of Americans support these steps, which would protect our children from being robbed of their futures. If Republicans continue to stand in the way, we must vote them out. It's as simple as that.


Hello MTV and welcome to my crib. I can't tell myself seriously doing that. Absolutely not. Hi everyone, welcome back to my channel. Welcome to another video, and I've been waiting to film this video for quite a long time now. It is finally my uni room tour. If you didn't know, I have now been in uni for two weeks and my room is pretty much finished. I mean you'll see the bits where I haven't quite finished it yet, but I thought we should film a room tour because I've been here long enough. So I'm currently standing outside my front door. When I say front door, I mean the door to my room. This goes out to the corridor where the other rooms and the kitchen is. So I'm gonna turn you around and we're gonna see my room. So this is what you see when you first walk in. On the right on the wall I have two little coat hooks. So I've got two big winter coats on this side and then two smaller ones on this side. This is the door I just standing. I've got my suitcase up there on the shelf, and then this is the bathroom. So maybe we should go in here first. The lighting's a bit interesting, but yes, I do have an en suite. So this is the bathroom. It's kind of a wet room. So the shower is on the floor. The shower is the same level as everything else. That makes sense.  If you don't, Google it. I have a little hook here that's got my towel on it. And then this is the shower. I'm now in the shower. Do you get what I mean by a wet room? Then my razor. This is from Estrid. Actually very kindly gifted to me. I don't have to say anything about them, but I actually genuinely really love it. So if you need a new razor, go have a look at them.  Toilet, bath mat, extra toilet roll down there. And then these two very useful shelving units. So I've got obviously all my fake tan and stuff like that. Hair oil, coconut oil. And then up here, just like Nalvan Sharuba, brush cleanser, pink stuff, which is a miracle worker for shoes. And then extra heads for my razor. And I think that's it. This is my sink, toothbrush and toothpaste. And then I have a little mirror up here.  Let's go into the main room. I'm not really sure where to start. I feel like I should give you an overview first. Okay, so starting on this wall here, we have a radiator. And then my dressing gown is on a hook. And this is my laundry bag. It's actually a teddy blade dust bag, but it works perfectly. And then we have this massive shelving unit, I guess, but it's all open. So obviously I had to try and make it look pretty. At the top, I've just got a rucksack and a shoebox. Then a disappointing lack of alcohol, to be honest, and some wine glasses. A little photo of me and my friends at prom. And then just stuff to make everything look pretty. Perfume, scarfs, shoes, sunglasses. And then this shelf is a bit messy. As I said, it's not quite finished. I still need to fix. This shelf is very randomly got a shopping bag, tampons and wine on it. And then we have my beautiful bed. It's a double bed. I'm very happy about that. It's got some lovely pillows. If you want to know where they're from, go and watch my uni homeware haul. And then we have this pin board. I am going to fill the entire pin board with photos. I know it looks very random right now with all the blank bits in it, but I've run out of the sticky things to put the photos on the pin board with. If you want to see the photos, pause and spot yourself. Then we have my desk. It's really big. It goes all the way around here. Because we don't have a bedside table, I kind of treat this as my bedside table. It's got very minimal stuff on it. Then storage. So I've got this little gray lamp from Tesco's. Just two of these file divider things. A box. This is very useful box. All my rubbish goes in there like paracetamol, batteries, eyedrops. I mean everything and anything so it doesn't get cluttered. My laptop of course. This is where I sit and do my lectures. And then my makeup bit. So I've got this mirror here which lights up. Then all my palettes in there. Brushes. Little bit of jewelry. This is my makeup drawer. And then I would show you the bottom drawer. But it's so messy. It's got such a random variety of like hair straighteners, hair dryers, popcorn, charging cables. Like really random stuff and it's just not very pretty. So I'm not going to show you but that's where all the junk goes. Under my desk I've got all my wires on the floor. Again it's not very pretty but they need to be there. I've got my ring light, my bag, some folders in that WH Smith bag and a bin. Then I've got three shelves again above my desk. This one has got lots of essentials including face masks, hand gel, stay safe. And then like dry shampoo, hair oil, clay masks, deodorant, makeup remover. This one, my speaker, some little bit of Priseko. Those are some more photos that are going on my wall. And then finally up there I've got an air freshener, diffuser thingy for my grandma. Thank you Nana. Coffee pods so that no one can steal them. And then these two are cards for my mum and my sister that they gave me when I started uni which I can't believe is two weeks ago now. Okay and then moving to my wardrobe which for a uni room is a pretty decent size. So this half is all hanging. I've just got loads of hoodies and jumpers and then a few dresses at the end. I need to buy some shoe storage things because I can't fit all my shoes in here but that's where the shoes are. Underwear, trousers, trackies and skirts and shorts, tops and more underwear. And at the top there's this big shelf so I've got three bins that I've put so I can organize the stuff a bit more. I mean this has got like gymwear in it because I don't go to the gym. That's got like pajamas and that's got... I just had to get the down because I have no idea what was in it but it's like extra bed linens and face cloths and stuff. It's a bit high for me to reach up there. And then my wardrobe has a almost full length mirror which is... well it is full length. You can see my entire body. So hi! Which is really good. I didn't know that I was going to have that so opposite my bed I have actually bought a mirror and put it on the wall. If anyone working at my uni is watching this, hi! I promise the mirror is stuck to the wall with command strips so it's not going to be damaging the wall. Fingers crossed. And then you might have noticed all of these little hanging things. They are curtain fairy lights so I'm going to show you. I've got a little remote control here. I'm going to turn my light off and show you what they look like. So that is what they look like. I think it looks so pretty. It makes the room look so much nicer and like more homely I guess. They look really pretty especially around the mirror because this is otherwise just a massive blank wall so I thought we might as well fill it with something and it's so cute. Again if you're for my uni watching this they are battery powered so you don't have to come and tell me off. The worst thing about this room is the curtains that they gave us. That does not match my aesthetic and they're disgusting and we can't change them but this is what my view is like. But it just looks out onto the... I'm on the ground floor so every time I obviously sit here at my desk to do my work and like do my makeup and even vlogging because this is obviously where the natural light comes from. Everyone can walk past and watch me do it so it's really embarrassing. I think that is literally all I have to say about my room. It's not the biggest obviously but for a uni room I think it's very nice and I love the way that it's come out. Once this photo wall is full it will be a lot better. I might have done it while I'm editing this video so I'm going to insert a photo here if I have. Gemma I really hope you have. I think that's it. I have got LED lights that I wanted to put around the photo wall or potentially under my desk but they are really complicated to set up and I need some help. So if anyone wants to offer their services let me know below. Other than that I hope you guys enjoyed. Give this video a thumbs up if you did. Subscribe if you aren't already and I will see you in my next video. Bye!