Have you ever bought a new release and then not read it for like a year after it's come out? Well Then this video is for you. Back to another video This is another experimental vlog that we're gonna do together. So basically I Often buy new releases when they're hyped up and then I don't read them It's pathetic You are I don't read them for like a year Two years after they've come out and it's becoming a problem where I've got lots of books that I Got last year that were big last year that I haven't read So what I thought would be fun to do and also just because I'm nosy and I like knowing this kind of thing is I'm gonna Find out what was booktube reading a year ago and I'm gonna read that now I might not be new releases from last year that everyone was reading But I feel like statistically it's going to be so I am gonna go back Through a lot of September wrap-ups from 2020 I'm gonna write down what books are most popular what books everyone is reading and I'm gonna read those books I don't know how this is gonna go don't know how successful this is gonna be But that is what I'm gonna read in September and then hopefully this video will be coming out towards the end of September ish I don't know what to expect. I don't know what books everyone's gonna be reading I don't really have any predictions for books that I remember being popular, but I'm excited I'm intrigued to see kind of what the trends are and what everyone is reading. So let's cut to Megan Doing the research and finding out what everyone is reading. So it's time for me to start the mammoth task of watching back People's September wrap-ups from last year and finding out what they were reading So I think I'm gonna aim to watch at least 40 ish Like I think 40 wrap-ups is a good number to standardize and see if there's any books that stand out I mean I could spend all day doing this and then it turns out like There's nothing like there's no books that everyone is reading, but I think there must be so I'm gonna start with Kayla aka Books and Lala because we have very similar reading tastes. So let's see What the first book she mentions in her September wrap-up is My favorite cover of the entire month that I read is a song of Raisin Ruin by Rosanne A Brown Like what? Oh Okay, so okay, so that that was like a release from last year a song of Raisin Ruin I own it which is good because listen money like if I can own some of these that would be great So if I got that like if more people read that I live like that would be great Fucking out, okay, they read a lot of books in September Meena's video is titled the month of three star reads. So that doesn't bode well for me The first book that I read in September was Jade War by fondly. This is the sequel to Jade City Let's quickly talk about Jade War another one of my favorite reads of the month, right you guys This video do is already a lot more time-consuming than I anticipated Do you see many pages of notes we've done That is 16 booktubers, so Firstly, can I just say can you pictures read less like can you read like what is reading 20 books? Like why why have you got to do that to me? And secondly, can't you read more of the same books? So we've only had a few and that's multiple people have read So we have a song of Raisin Ruin which Kayla read and then who else read that? Oh Sid read that Sid read that a song of Raisin Ruin by Roseanne A. Brown I believe this is her debut novel and I'm super impressed by that then we've got Jade War by fondly Which if you remember Mina Nicole and then Rue have all read that so I thought that's gonna be a frontrunner But with this book I have to take breaks after pause my audio book or like close my book and just do breathing Exercises because this book just freaks me out I feel like I'm gonna end up reading Jade City in this video, but we're gonna continue on and it may change Fuck me. We've also got The Way of Kings by Brandon Sanderson, which is a long ass book I don't see it for me, but okay That was Becca and Reagan The third book that I finished was The Way of Kings part one by Brandon Sanderson I was only able to get to page 200, which if you know the length of this book, it's not very far But I'm still pleased with the 200 pages I read Becca only read I think the first half because in the UK it's published as two books And Reagan had only read the first 200 pages So like if I mean I don't want to read it I'm hoping other things are gonna surpass it in this time But if I do have to read it, I'm only gonna make myself read like the first half And then I think that's the only books we've had duplicates of That I haven't read, yeah That is the only duplicates we've had out of I don't want to know how many books Should we work this out? 33, 99 So I've written down the name of about 120 books, I would say And we've only had a few duplicate So I'm very much hoping Way of Kings is gonna be Nixed, don't want to read that But I'm up for reading Jade City, I own it and I'm interested in it So I hope that still stays up there We've also had one person read Jade City I can't remember if that was but I will put it in here From there I picked up another home run, a new all-time fave And that is Jade City by Fonda Lee So we've clearly had four for Jade City, I'm counting that as But yeah, Way of Kings needs to fuck off, I don't want to read that So I think I'm gonna go away and get to 40 booktubers And then I'll come back and I'll tell you what we're actually gonna read in this video So I've watched about 40 booktubers September, Red Pops from last year And there actually weren't that many duplicates We didn't get many new duplicates There were a few duplicates of books that I have read But we're only talking about the books that I haven't read Because I have the whole purpose of the video Jade War slash Jade City still remains supreme with four people reading either of them So we already talked about all of them We had Mina, Nicole, Rue and Reagan reading Jade War or Jade City So I am gonna be reading Jade City in this vlog I am excited to read it but I'm also nervous because it's quite long It's quite an in-depth fantasy that I didn't quite forward to start yet Especially when I've got like other in-depth fantasies that I'm reading But hey ho, we're gonna start it Then next with three people reading it A song of race and ruin We're gonna be reading this in this video So we've already spoke about Kayla and Sid who read it in September But also Natalie read it This is another one I already owned before making this video I own Jade City as well and I own this And I don't know much about this other than it's an African inspired fantasy It's YA, it's a debut And I'm excited I know we're following like two perspectives I think a guy who is trying to save his sister And then the princess but the guy wants to kill the princess Basically And then the third book we actually haven't spoken about yet It pulled through in that last round Basically of me since I've been looking at more stuff since I last spoke to you We are gonna be reading Cemetery Boys by Aiden Thomas So Reagan read this This is a book that completely melted my heart Turned me into a pile of goo and I loved every single second of it And that is Cemetery Boys by Aiden Thomas Which I think is really interesting because obviously Reagan's one of the biggest booktubers Reagan like pops up in two of these books And she also read Way of Kings which also got two votes So Reagan just has her finger on the pulse Reagan knows what she's fucking doing And also Ali and Mel read this Cemetery Boys by Aiden Thomas Definitely a new favorite of mine And I absolutely loved it I gave it 4 out of 5 stars I thought it was an amazing debut novel So I didn't own this before making this video I just know it's about a trans boy who's trying to prove himself and his family And I think a ghost? Like they're someone ghosts? But I'm really excited to read it It was super popular around this time It's another book that I kind of maybe could have predicted being on this list So I am excited to give this a go too So we've got three fantasy books Booktube was reading a lot of fantasy at this time Two that I already owned because I was interested in them And one that I hadn't But I'm excited I don't know what to predict I'm gonna think of these books But I'm excited to get into them and give them all a go So I'm gonna start now with Jade City Hello So I'm just about to pop out But I wanted to let you know that I'm about 80 pages into Jade City And I'm really enjoying it It's very much like this Godfather inspired fantasy Where we have this really powerful family Who's kind of in charge of everything And we've kind of just been getting to know all the different members of the family We've got like two brothers and a sister that we've met so far And in this country all the power is through Jade So you have these people, these ruling families That can harness the Jade And it gives them like strength Like supernatural strength basically And people are always trying to seal Jade Like people want the power that Jade gives them And I'm just really enjoying it Like it's been reading so easily It's been so captivating and interesting It's been a long time since I've read Like a detailed layered fantasy like this I haven't been reading a lot of fantasy at all the past couple months And this just feels like the perfect thing to be reading Like I generally can't remember the last time I read fantasy I don't remember love, I don't remember at all I really don't, I know for a long time ago And I think I've been reading a lot of YA fantasy And I've been missing a bit of like adult, gritty, really in depth fantasy I'm really like the characters so far I think they've all got very interesting dynamics Like familial dynamics Yeah really dramatic action The world building is so well done It's not info dumpy but it's really well done Yeah I'm really really enjoying it Good morning I just had to get ready I'm just doing my makeup whilst we're talking And I realised I want to listen to more of the audiobook Whilst I get ready So I thought let's check in now So that I can listen to some more of the audiobook Oh I didn't spring my face Hold up I'm enjoying J-City I am really enjoying it The one thing is that it is like a long book It's not for main park I feel terribly ill all of a sudden I don't think I've read a book this long in a hot second I do tend to read shorter bits I feel like nowadays So I am struggling about 12 full length of it I'm not gonna lie to you It is long And I've got the audiobook And I'm like holy shit I cannot remember the last time I spent this long reading a book I think I'm on page 295 I'm really enjoying like all the familial relationships in it I think the politics is very satisfying But I can't really make my mind up on how I feel about it I keep switching between Oh my god I'm really enjoying this And oh my god I'm bored I've been reading fantasy full stop The past couple months So I think it's just a bit of a different reading experience There's times where we get like super into kind of the law And the world building And the politics That's just quite repetitive That happens quite a lot By the way I look crazy When I just go my foundation online Probably should have spoken to you Once I had my foundation and concealer already on But hey ho Yeah there's quite a lot of sections where we'll just be talking for ages About the way that this like maybe familial dynamics work Or the society works Or the world works And stuff like that And I'm just like okay Let's just get on with the story Can we speed things up a little bit? Can we speed things up a little bit? Should we speed it up a little bit? Hang on I'm just gonna like finish my foundation And then talk to you again Oh but something did just happen It was so shocking Like I was gagged I was gooped I was shook I did not expect that to happen And I'm singing to myself If this was like a simpler fantasy right Like maybe a YA fantasy Or if it was just a bit more like simple That would have been the end of the book Like the book would have finished there And we would have gotten into the repercussions Of that happening in the next book But it hasn't It just like happened randomly in the middle of the book And so I feel like that's a sign Of what a good like series this is going to be And what a complex series this is going to be And how it constantly keeps you on your toes Like I was starting to get a bit complacent And then that happened and I was like Holy shit I'm kind of sad it happened without spoilers Like I didn't want the story to go in that way But like I kind of understand that It may be a bit better for this The story to go in that way But I'm kind of annoyed that it happened But I think it is interesting that it happened So out the blue and like in the middle of the book And I just feel like this book could be shorter I'm going to go listen to more of the audio book And then I'll come back to you once I've actually finished it I don't want to talk about this book I was not expecting that Here's the thing The reason I don't want to talk about it It's not all bad things Don't think bad I'm like I just want to preface it by saying I think I think I'm going to give this a 3.5 Rounded up to 4 on Goodreads So you think okay that's fine But I wanted to love this even more And the biggest problem is I cannot put my finger on Why I was a bit disappointed by it I can't put my finger on why it's not getting a 4 Or a 4.5 or a 5 Because I was going and looking at reviews Right And I saw my friend Mina's review And she is one of the biggest reasons that I Picked this book up that I wanted to read this book And I was reading her review And I agree in principle with everything she's said There's just a little something A little Genesee That wasn't it for me That meant I wasn't fully drawn in That I wasn't fully excited to read the book Let me find Mina's review The cool family have sold in every bit of my heart And their dynamic had me close to tears many times The world building is rich Full of politics Magic Theology And culture The plot and pacing are exceptional And I found myself shocked at every turn Do I agree with every aspect of that? Yes, I do I think objectively this is a massively done book I love the politics I love when there's a good amount of politics In my fantasy I feel like when Hilo Or Lan Or Shea The siblings got talking about the politics And the kind of the strategic decisions that they were making And why they were doing that I was like oh my god they're so clever And the politics as well has been so well thought out But it didn't I didn't I wasn't excited to read the book Oh my god T central over here And I didn't feel fully drawn in And I didn't feel any kind of special way about it But there were points that I love I don't know I have a very mixed feeling about it I feel like I went through a lot of peaks and troughs in my enjoyment of it But at the same time there aren't any points I can remember where I'm like That bit wasn't good Or that bit was good Usually if I'm a bit disappointed by a book I can give you a fucking 5000 word essay on it Right? Like why it wasn't it Why it was a bit off Why it wasn't what I was expecting This I'm speechless But I enjoyed it I loved the audiobook The audiobook was really good I'm definitely going to continue on with this series Eventually I need to like plow through some series We may do that in November or December Maybe it would be fun actually to get you guys to vote on which series Maybe I'll do that in a vlog Which series you would like me to make progress in So maybe you'd vote for this Maybe you won't Who knows It was it was okay I enjoyed it But it wasn't outstanding The other day I went and I stocked up on some candles Hang on Let me get the other one Because I was just burning it I love this brand Woodwick candle I feel like they burn so much more evenly Than Yankee candle Because it's a very soft wax I got vanilla bean from Woodwick candle Look at her Isn't she just like cute But she's beautiful Right I was burnt I just started burning this It took me back to when I obviously had another vanilla-y candle I think the one I had then was a Yankee candle And it was like vanilla cupcake or something But it smells pretty much the same And like I don't know You know when you burn a candle scent That you haven't burnt in a long time It took me back to be like 15 And like being really productive and working And I feel like it got me into like the right like Worky vibe today And then I also got Because my other favorite scent is caramel And usually I had their I've just finished their salted caramel one But this is caramel toasted sesame And it's really nice Because it's like caramel But with like a bit more like earthiness Or spiciness to it Oh I'm very excited to burn this one So I treated myself What can I say But I love a good candle So now I should have got this when I got up to get the candles I am going to read Cemetery Boys by Aiden Thomas Obviously another book that a lot of people were reading last year This is obviously the one in the vlog I didn't already own So I'm intrigued to see how this one goes And if I maybe prefer it to the ones Or don't Because I wasn't as interested in it beforehand They all want to go We dance till the morning We'll dance till we drop When morning starts rising We'll leave them with all that is all All right listen up everyone I am tired I'm reading a Cemetery Boys I'm about 120 pages in I did want to get a little bit further Before I spoke to you But hey ho A bitch is going to turn the lights off Hit the lights Look at you Speak to you You need to step right I'm enjoying it Kind of We've got I can't remember names I'm so tired We've got one boy He comes from this family of Brutos And he is a trans boy And so he wants to be recognized in the role That the men typically have in the family But they want him to fulfill the role That women typically can fill in the family There's a lot of like misgendering and stuff That he is suffering within his own family And he meets this ghost Of like a local travelmaker boy He's just been killed And they're trying to help that boy Figure out how he died What is happening I'm enjoying it But also I don't feel like much has happened yet Like I don't feel like much has happened Like barely anything's happened Like I want us to get him moving a bit It's a little bit slow paced A little bit character focused Shall we say for me I'm not necessarily a character focused gal If we're honest If we're honest with ourselves People who read for character development Watching this The cheek The nerve The gall The audacity And the gumption I like all the characters But like just nothing is happening And that's like all of my critique for you I have nothing else to say I like that I'm reading from a trans author Trans rep But I also feel like I don't know if I'm vibing with YA At this current moment Like I feel like increasing with YA It has to be amazing For me to vibe Some of my favourite books ever are YA We know that I read like a lot of YA I like read 50-50 But what books do I have this trouble with lately Oh Ace of spades Everyone else fucking loves this I really struggle to get into it And I cry myself to sleep Every night thinking about it This read so young to me And I just couldn't get into it And I'm feeling a little Fuck I'm feeling like that To a lesser extent with this Like a little bit just discombobulated Not sure if we're Bezzy mates But it is reading fast Which I shall say that I appreciate I have a problem with the quality of the book at all The book is probably A five star book For so many people It is a five star book For so many people And I can see it But it's Do you know when a book and you just aren't like Bezzy mates? You know what I mean? Alright Okay Alright, okay I've finished Cemetery Boys I've finished Cemetery Boys And I didn't love it Fuck off I I'm gonna give it three stars I'm gonna give it three stars Here's the thing Here's the situation I We'll speak about this more in again in a second But I'm I'm feeling a bit disconnected from YA at the moment And I don't know why Because I never have a problem with YA And it's not a problem I have with I'm having with middle grade But something about the way that YA is written I'm not like vibing with it Like it just This read to me I think if you removed the swearing from it It didn't read as the YA I enjoy I think this is like YA for like 10 to 13 year olds Rather than YA for like 14 to 16 year olds Which I think is the YA I tend to prefer I want to say None of my negatives about this book Are about the next trans gay representation I thought that was all handled amazingly Basically the premise of this is Is a romance between this guy and a ghost Right? And I never let myself become attached to that relationship Or invested or care about it at all Because it was temporary Right? Like this guy is dead Regardless of how the book progresses Early on I was like This ain't going nowhere It's a temporary thing And I couldn't let myself get attached to it anyway One of my biggest problems with this book was the ending I think if the ending had been better It would have been like a 3.5 But the villain Girl The villain in this was so predictable So predictable I literally I was reading this around Tom's And I literally closed the book I went I was angry I was angry You know when a villain is so obvious So obvious But you also feel like it hasn't been set up well enough It was like a combination of those two And I also just felt like personally The villain never reached their full potential Like it was kind of like The romance took over so much of the plot And I don't like when this happens in fantasy The romance took over so much of the plot That the actiony plot side of it Was kind of rushed towards the end So I just felt like the villain I wanted more And I also didn't want it to be you Because it was obvious Was my kind of feelings I will read more of Aiden Thomas' stuff We were talking about this actually in my Patreon Discord And we were talking about authors who We see the potential for them to be a five star read And I was saying how I had that with Mona Award So I am going to read all's well eventually Because I didn't love Bunny But I saw the potential for Mona Award To be a favourite author I feel the same way with Aiden Thomas And someone else was saying that in the Patreon as well I see the potential With this author for them to be an all time favourite author for me But something about this book Just didn't work for me We didn't vibe And it also may just be my disconnect From YA at the moment Speaking of I am actually already halfway through a song of writes and rumours I was around Tom's And I forgot to bring my camera So I couldn't film But I could read Because I remember to bring my books I am on page 220 Again, I'm enjoying it But I'm feeling a disconnect Maybe I need to be a bit more selective With the YA fantasy series I'm picking up Or just fantasy YA fantasy in general Because I think I'm becoming a little bit more picky About what I want And I think I'm tending to prefer like older YA But I am still enjoying this I'm listening to the audio because wow And I am enjoying it So in this we're following Malik and Karina Karina is the princess of this land And Malik is this kind of refugee Who wants to kill her To save his sister He's made this deal His sister's in trouble His little sister And he has to kill the princess In order to fulfil that And Karina also without really knowing it Has intentions for him as well He gets into this contest And she offers her hand in marriage To the winner of the contest So that she can then kill that person To revive her dead mother I didn't know any of that going into synopsis I didn't really know anything But it is in the synopsis So I can tell you And I'm enjoying it I think the world building is very rich I think our two main characters Have such unique voices Like they're really They're really vivid characters to me Our two main characters I think all the characters in the book are really good I think the plot is moving along at a really great pace It doesn't feel rushed But it doesn't feel like I felt with this one Sometimes it felt slow Like oh nothing's happening It doesn't feel like that with this Something is always moving the plot on Really really well But I am just not personally loving it Like this is a problem I'm having a lot In this vlog So sorry it's been a bit one note Like I kind of felt like it with Jade City as well Where I'm reading books I can recognize that they're good Like they're really really good books But I'm just not personally like obsessed So that is the issue Yeah like I said I really love the main characters It's got great action This doesn't feel like a debut to me Whereas this kind of did This doesn't feel like a debut It's got really rich action Rich world building So many layers It doesn't feel like expositiony at all Which I think again I felt a bit with cemetery boys It doesn't feel like over explained So it's great It's a really good book I think it will probably end up being like a 3.5 I'm just not loving the reading experience I am just kind of having to make myself finish it Which is strange I don't know why I'm in this kind of headspace at the moment With fantasy I am going to go finish this today I've only got a couple hours left of the audio book So I'm going to kind of do both So I finished a song of race and ruin And I'm going to give it 4 stars I really really enjoyed this Yes! Yes! Something about this in the last like 50-ish pages Really clicked for me I found the majority of how it ended Really satisfying I'm going to give it 4 stars I'm going to give it 4 stars I'm going to give it 4 stars I'm going to give it 4 stars I'm going to give it 4 stars I just want to say also I read this book in less than 24 hours Pretty much Like most of it I think I'd read the first 60 pages A couple days ago But then the rest of it I had read in the last 24 hours And it just flew by Considering the rest of this video took me like 20 years to make And I had to push this video back like twice This was like a marvel I just flew through it And it's long It's you know it's over 450 pages I loved the West African inspired folklore to it I loved the dynamic between our two main characters I loved that it ended in a way that was very unpredictable In that I really don't know where the second book in this series is going to go Like where we're even going to start Like I feel like the next book could start in a couple years time onwards And I find that always really really exciting When when books end in a way That means the next book in the series is unpredictable And I really don't know what I'm going to be picking up I do just want to say I had the same problem with Cemetery Boys In that I called the villain And I didn't you know I felt like it was obvious You know I want you to trick me with your villain If that is a reveal If it's not something we know throughout If the villain is a reveal I want you to trick me with it somehow That's very important to me And again I just felt like I know I called it like 200 pages in I felt like it was really really obvious And I was a bit disappointed by that The pacing was incredible for how fast I read it I really loved all the family dynamics in this I think our characters are really fun You know our girl Our main our main character who's the princess Is like very like headstrong She's got a lot of walls up She knows what she wants She knows what she wants to achieve And then our other main character He's very soft and like gentle And there's a lot of like anxiety And panic attack representation through him And I think just by the end of it Do you have a book where you're like By the end you appreciate it even more Being able to look back and see The path of the book Like when I look back I look back on the book with like rose tinted glasses Even though I like I've only just finished the book Does that make sense? I don't know We're back on We're back on my appreciation of YA fantasy I wasn't bit worried For a while I was thinking this was gonna be like a 3.5 But it It upped itself to like a solid solid 4 And I'm really excited to read the second one in the series It comes out in November And I'm really excited to read it Probably won't read it straight away Probably won't read it for a while But I am excited to read it When it comes out And yeah I just thought it had so many twists and turns I really could never predict where this story was going So thank you for watching this vlog I'm sorry You know For a while there was a bit monotonous Like 3.5 3 4 I did feel similarly about a lot of the books But I really loved this video concept I would love to do it again If it's something you guys would want It was so interesting to go back in time a year And see what was popular on BookTube And see that I already own two of the books Because my assumptions were correct In that I was buying these books And then not reading them And it was really fun to read them And to kind of like feel like it was a year ago All of a sudden So yeah I really really enjoyed doing this vlog If you've gone to the end of the video Comment the green heart emoji For this gorgeous green gown Let me know what kind of books you read last September Maybe go on whatever kind of book tracking thing you have And let me know what books you were reading last September And thank you so much for watching as always I hope you had a good time And I'll see you very soon in another video Bye


Hi again, for today's lesson we have two simple challenges. First challenge is to write a function which will increment a given number. So let's make a function, let's call it increment. And let's put inside it as parameter some number. Now what we want to do is to increment this number and to return it. So we will return this number plus one. Okay, let's try our function increment, let's increment number five. And the returning value will be number six because five plus one is six. And now let's write another function. At this point I think that you could write it by your own, write a function which will decrement a given number. Well it's very easy, it's easy enough and it's very lookalike this function, but now instead of adding number one we want to subtract number one from a given number. So let's make a function decrement with again some given number and we want to return that same number minus one. Let's try if our function is well defined, let's decrement number six and returning value will be number five because six minus one equals two five. That's all in this challenge, thanks for watching, bye-bye.


Welcome to Moving Data from Oracle to Postgres in Near Real-Time. Today we're going to talk about the importance of extremely scalable data ingestion, why real-time data transformations are critical, why complexity is no longer acceptable, and how to radically simplify data ingestion. My name is Lindsay Hooper and one of the Postgres conference organizer and I will be your moderator for this webinar. I'm here with Alton Dinsmore who is a senior data architect at Aqualum. Alton is a data veteran having worked at Oracle, Dell, EMC, MariaDB, and more. He has 40 years plus of design and architect experience around enterprise data solutions and applications. He's helped many companies implement successful projects around large data, high performance, large number of users, a large number of transactions and clustering, as well as high availability and disaster recovery. I want to say welcome to Alton. With that, I'm gonna hand it off to Alton. Take it away. Thank you Lindsay and thank you everyone for joining us today. Today what we want to do is talk about moving data from Oracle to Postgres in Near Real-Time. So what we'll do is I'll give myself a little introduction. Lindsay's already covered a lot of it and then we'll talk about some of the challenges, what our platform brings to the table for you, what we do with our Connect, our universal change data capture that we use, and some customer use cases and then we'll go into the live demo and we'll try not to keep it too salesy and keep it very technical. As Lindsay pointed out, I've been doing this for over 40 years. I've worked at many companies, Oracle included, with Rack, doing a lot around Rack over the years and all, but many mainframe databases even before Oracle came on the scene. And I've led projects, engineering teams, design teams, done just about anything in the world you can think about when it comes to putting things together. And some of the things I've really had to do in my past experiences work on resolving very large database implementation and issues around it, as well as high number of users. When you start getting into, in the early days, it was hard to get more than 2,500 concurrent users running on Oracle and worked on those 4,000 plus and larger implementations. So why Qualm? Why are we here today? Who are we? Well, basically, a Qualm was started by a bunch of data enthusiasts, right? So our founder and everybody are ex-DBAs, ex-data scientists, data architects, developers, all around the data side of the house. And the real thing that was very noticeable that our founder saw was the ability to liberate data. Sure, you can get to the data, but it wasn't really easy. And with the Qualm, he came up with a way to make the data ingestion process very, very simple. And to be honest, that's the same thing that drugged me over here, is how simple it is to actually get to the data and make it available for usage outside of the operational data stores. And the reason for that is, as we get in and we start looking at the challenges and anybody who's ever worked in a very large organization knows this, the challenges, some of the challenges we face, not all of them, needless to say is, is when you have these massive amounts of data being collected real time, and then people say, Oh, well, I want to, I want to pull those and I want to put them into a data warehouse, and then I want to be able to run analytics on them or AI or ML or whatever in the world you want to call it these days. It's, it's very, very tough to move large amounts of data real time. And trying to roll it on your own is a very expensive proposition requires a lot of skill sets. And it's just, it's just time consuming and very chaotic in a lot of cases. Then, of course, comes the challenge of, you know, while the data is good over there, but I need to transform it because I don't want to transform it after it gets into the data warehouse, because it's too, it's too much a problem for the analytics tools, I want to basically denormalize the data that I normalize for my operational data stores, I'm going to denormalize it so things run faster and quicker and it's more accessible and understandable on the other side. So doing that data cleansing and data transformation is also a real, real process of a problem for people when they have these large amounts of data coming from many, many data sources. And then when you get to the operational side of it, that's where it really gets to be a problem. Automating it, managing it, monitoring it, all the restart procedures, all the stuff that people normally do after the fact. I don't know in my career how many times I've seen people roll systems into production without even a backup. And so these are the kind of things that wind up coming at the tail end of the project that people don't really plan for in a lot of cases. But if you're going to run it on a daily basis, and it's going to be part of the infrastructure, all those things have to be put into place. And then when you get to the last one there, really trying to enable all those in an enterprise grade type platform with no coding required like Qualum has done is really, really tough. And that was the whole goal of building a Qualum is doing this in an enterprise grade with no coding being required. When you look at a Qualum, it's pretty straightforward. We look at things from a very simplistic format to me with sources being on the left and targets being on the right. And the business problem is I have data that's setting in operational data stores and cloud services, application, file directories, I don't care, anywhere just setting out there, OT sensors. And what I need to do is I need to get it to a target. And the most common target that people are usually going to think about is is I want to put it in a data lake or data warehouse, because data lakes and data warehouses have been around for a long time, 10 plus years. And so that's the one people think of. But it's not only taking that information and pushing it into data lake or data warehouse, you may have some AI or ML applications you want to do. You may also want to take some of that data and put it on a message queue for it to be consumed by another application that's grown in house. So the way we approach it is is we have a set of connectivity that we call our agents that actually connect to the sources. And those connections, depending on the source, most sources can do change data capture as well as real time streaming of the data. Now needless to say it can do badge, but the biggest challenge is is to do the change data capture and keep the streaming data going. So we talk more about it than we do the batch, but the batch is there. And no matter how you set it up, you can just say I said instead of running a streaming this time, I want to run it in batch. And we can do that in the demo at any point you want to. Then in the center, before you push it out, you may want to do all your ETL and ELT type or you may want to do transformations, you may want to filter data, you may want to do different transformations based on the geos that they're coming from, you may want to augment the data and enrich the data. So you can do all those kind of things. And then over on the right hand side, what you're going to do is is you're actually going to push it out to your target. And there's different ways that you can push it out to your target, you can append to the target, which in the case of a data warehouse that needs auditing capabilities, you really don't want to update the record that's there, you want to insert every record as being a new record. And you may want to merge or replicate things of that nature. And it really doesn't matter where you're going to put it over on the right hand side. And Postgres is definitely one of our major targets over on the right hand side, as well as being a source, but you know, mainly a target. In this case, we will be talking about target. And then for Aqualum, it really doesn't matter, you can either run it on prem, you can run it in the cloud, you can run it in the hybrid. All we really need is is we need the OS to be running. So it can run as a VM, it can run on bare metal. It really doesn't matter. It doesn't matter which VM you put it under, it doesn't matter, it's not going to affect what we're doing with the product. So with Aqualum, what you can do is is you can capture your changes from your data source, change data capture as it's referred to. And basically, change data capture is not a single technology. It is basically a philosophy of how you get data as it's changed. And how you get that change data differs based on your source. So for relational databases, we're usually going right directly after the log files and relational databases. But when we're looking at something like an S3 bucket or an NFS share, and we're actually bringing in, say, comma separated value files or JSON files or XML files, what you're looking for is you're looking for new files to be dropped or you may be looking for additional rows to be added to the file after you've did your initial capture of the the data itself. So with Aqualum, we can replicate your Oracle data to Postgres very quickly and very easily with very little work involved from your side of the house. And this gives you the ability to take anything is setting in Oracle and just push it into Postgres in near real time. Now, you can also take and you can replicate your existing operational Postgres and put it into a Postgres data warehouse if you would like to do that. And it's also very useful and a lot of people do this, taking their data from own prem, because that's where they're running their operational, but they have the data warehouse and data like setting in the cloud. So there's no problem doing that either. And you can actually even take events from your Postgres database and push them into a message queue, a publishing subscribe type system, whichever one you would like to do, you can push it to basically any of those publishing subscribe systems for everything, everybody to pick them up from there. And as I said, you can transform join and ridge, cleanse your data, aggregate your data, it really doesn't matter. You can do all those functions and features without having the right sophisticated code all done through the graphical UEML. And you're going to do that all in real time without the coding effort that people normally have to go through. So if we look at our agent, our connect agent that's doing the change data capture, depending on where you're going and what you're going after like, if you're going after Oracle, you're doing log parsing, log mining, the Oracle redo log is where you're actually getting the information from. And SQL server, we go differently and go after the change data capture information in my SQL. We basically set ourselves up as a read only slave. In Postgres, we're looking at wall file, wall file, and doing logical decoding on it and so forth and so forth. And then on things, when we get down to the individual flat files and all, in those cases, we've written some of our own CDC capabilities. So how do you get to CDC? Well, there's a couple of ways. You know, normally you're not just going to start with change data capture because change data capture is going to give you from the point in time that you request change data capture. So normally you're going to do an initial data load. And behind that will follow it with a change data capture synchronization. And some of the nice things about it is is that we never have to take the source offline or lock the source or anything else. We're just going after grabbing the data pulling it across. And once the initial loads done, then we start the change data capture synchronization right behind it. There's other things we can do here with multi table schema database replication. We can do the target table creation for you automatically. We can do DML synchronization. We can manage the schema evolution and you get to choose how you want to do that schema evolution. As well as we've talked about the real time data transformation, we can write to multiple targets and multiple formats. You have multiple right behaviors, whether you want to append to the target, whether you want to merge it or whether you want to do a true full replication, including deletes. And one of the things that sounds easy, but I think anybody who's ever tried to move from Oracle to post grass or from one database to another knows that doing the target data type conversion is always a pain for people. It's something that you really have to look at closely. So we do automatic data type conversions. And then, of course, the user does have the advantage or the ability to go in and modify those data types. So if you don't like the default mapping we gave it, if you want it to be different in the target, that's something that you can set up and change very easily just going through the GUI. And as I said, you know, we have a zero coding user interface, graphical user interface, which you'll see here in a minute. And then one of the things that a lot of people never talk about is is the monitoring and alerting. It's built into our platform. We monitor all the different phases, all the different steps. And we have alerting that can be set up so that you can get notified if anything does not fall within the areas that you wanted to. So any kind of warnings or any kind of failures, you will get alerts for those. And one of the big things, I think, when you look at a qualms is we have an exactly once guarantee. A lot of products will guarantee that they'll do the record only once, right, that they'll get it once, but they won't always guarantee that you get every change always replicated in process just one time. So some will do the exact once up to the target, but they don't guarantee that you get every row on the change that came in. Others will guarantee that they'll get every change, but sometimes they actually push out multiple records to the target. Coming from, you know, Oracle background, you know, exactly once is exactly what I want. I do not want stock trades being processed or dropped multiple times. So and along with that, we have a full H A topology. So it doesn't matter what fails, whether it's a source, whether it's target, whether it's one of our components, whether it's the servers, full H A and with that, a full restart to guarantee only once processing. So it doesn't matter where we fell. You're fully insured that everything will process only once.  So we have a lot of different many companies that we work with in different areas. They're not all within just a single one. And we have some real closely working partners. Some examples of some things that have that we've actually done for our customers and the oil and gas. One of the things that they wanted to do in this company was they really needed to get the IOT sensor information processed very, very quickly. Previously, it was taking 15 minutes or more to get the IOT data and 15 minutes is a lifetime when you're actually looking at equipment, sending out pre, pre pending errors, you know, failures are about to occur when you're dealing with this expensive equipment. So getting it in near real time is exactly what people needed to do. So as you can see the pain points here, 10 minutes, latency at best, no matter what they did. And the problem was the whole data ingestion process was very time consuming and they're having more and more sensors added every day. So what we did was we actually took data from a variety of sources, including Oracle SQL Server, DB2 and many others. Real time and batch into NEM SQL in this case with sub second latency for data ingestion part into the system and that that really, really improved the whole entire process. So one second or less streaming latency, 20,000 changes per second and, you know, real time reporting and analytics being performed on this data. And as you can see there, they tested six products and Equalum was the only product able to deliver on both latency and performance. Media, broadcasting, what they really want to do is go in and actually look at how social media is impacting the viewership of their shows. And so it was a very interesting approach at this.  So ingestion from over 10 different sources. This one's in a Azure SQL data warehouse. They tried this internally and the problem is and I think a lot of people find this out once they go down this road. It takes a large skill set and then the problem you got is turnover in staff. That skill set leaves and so it really, really is tough when you try to do it yourself. Real time was enabled. They got a unified view of the data and we empowered them in a single week what would have taken them years in house to build. And then we got a large manufacturing conglomerate, same kind of thing, you know, so different customers that they had to process and all taking a lot of sensory information and data from S3 in real time and batch into Hadoop on AWS, 16 different data sources, 120 different data manipulation steps. And it, you know, it took them a lot of time to actually process all this information. And so when they brought us in, what they did was they took what they had running currently and moved it over. They saw a 15 times improvement in performance, a 10 times cost reduction, a 300% improvement in productivity. And it was real time and self service also, which was really important. So we look under the covers, what you'll see is you'll see a column has the sources and targets on the left and right. But in the center, what you'll see is is the engine itself working with the connect engine. And the connect engine when we're doing streaming is going to move the data into a kafa topic. And then we're going to work and run our own special code setting inside of Spark to do the actual manipulation and the flows. And we use Zoo Keeper along with HDFS to have guaranteed high availability. This is the example of the just the GUI, UF UI, so that people can actually see it and we'll go into the demo and see it in a greater detail. So what we're going to do is we're going to go over to the platform and actually look at it. When you come into Equalum, you come into the dashboard, normally on Port 9001. And there's two views. There's the replication group view and there's the classic view for people who are really just looking at moving large amounts or large number of tables, say from Oracle to Postgres, they would probably use the replication method. And what we're going to do is we're going to go through that first.  One of the things that there's two main reasons that I saw that people wanted to pull data off of Oracle and get it into Postgres. And one of them was they wanted to take the application and modernize it and they wanted to rewrite it so that they could actually move off of Oracle. That's one of them, which replication groups are perfect for that, right? Because I'll need to take the data, I need to push it across and I need to change data capture to keep the data going while I spend the next six months to a year and a half modernizing the application, rewriting it, maybe even containerizing it and putting it in Kubernetes and get microservices in place in the new release and run it against Postgres. The second reason is that they have applications, sometimes packaged applications, a lot of times Oracle's applications that will always wind up running on Oracle. And what they want to do is they really want to go into a data warehouse in a data lake type environment with that data into Postgres because setting that up into an Oracle environment is more Oracle licenses and they don't want to have to spend all that additional money to set it up. So two different scenarios. So the first one we're going to go through is somebody who just basically wants to set up and replicate a group of tables from Oracle or whole Oracle database and replicate it into Postgres. So first thing is, is setting up a source and target is very, very easy. Like for the Oracle, it's nothing that you would think out of the ordinary. It's the host, the port, the service you're going after the username and password. And that's pretty much it. Now there's a lot of advanced features that you can get into about schema evolution, your lag objectives for performance, parallelization, all that stuff. And you can also even set a custom change data capture position should you need to grab data out of Oracle, but you don't want everything. What you want to do is you want to start at a starting point, an SCN within Oracle. So if Oracle had 20 years worth of data and you really want to start your data warehouse or your new application with just the last five years worth of data, you could give an SCN. OK, so what we're going to do is, you know, that's very easy. We can do the same thing on the targets itself. We can come over here. We can look at, say, the Postgres target here and you can see it's the host, the port username, password, the database and the schema, the default schema we're going after. So the first thing is, is I've got Oracle and I want to just replicate it straight in. Easy, simple, as quick as possible over to Postgres. The easiest way to do that is to add a replication group. All you do is you click on, click add for the replication group there or replication group over here on the left hand side. So we'll just add a replication group. I'm just going to call it RG1 and I'm going to select my source being Oracle and I'm going to select my target to be Postgres and I'm going to put it in the public schema. Now, how do I know what I'm going to get out of the Oracle? Well, we do it through table pattern matching. So I can click plus to add a table pattern and I can have as many of these as I want. I can select all and I would replicate everything out of that Oracle database. I can select none.  So at this point, I can say generate the list and what it will do is it will generate me a list of 15 tables. OK. Now, I noticed there's a couple in here that I really don't want. Now, I can I can get rid of those just by clicking and they go over here. I'm going to put them back in just to show you I can come up here to the pattern matching. I can add another pattern matching same schema, OT schema and I'm going to do a Q percent. And this time I'm going to exclude it. Now, I had 15 tables. I'm generate the list. Now I've got 13 tables. So these are the 13 tables that I want to basically replicate into Postgres. So all I do is I click Validate Table. It will go through. It will notify me of any validation issues. And this checks privileges and capabilities within the target. It also checks to see what's being done with the current replication to make sure you're not going to step on each other without you knowing about it. And at this point, I can say create. When I create, I see my replication group one get created here. If I come over to the replication group, you can see each one of these are getting created as we go along. And what it will do is it will tell us that basically all these replications are now working. So if I go over to the beaver here, OK, and I go down to my Postgres here, my Postgres in my public and I refresh my schema. I can now see these tables are over here. So if I go to orders and I go to the data, the data is over here already. Now I can sort the data. So I'm sort it, OK, and order ID three thousand and fifty three is the last order ID that's in there. So I just in a matter of just a couple of minutes started replicating. It did the initial capture and started replication for 15 to 13 tables, right, in four code of Postgres. Now I'm going to go over here and I'm going to start updating the Oracle tables, right. So that should start updating the Oracle tables. And if I come over here to the beaver and the last one was 30 53. Now I'm at 30 56. So all the data is getting pushed across as we're doing the replication. So I hope that helps you out a little bit. It's pretty easy to come over here. You can see the replication group. You can see the data, the equivalent platform tells you exactly what's going on, what it's capturing and all as we go across. Now that's the first thing, right. Now I can switch over to the classic view, right. And I can take any one of these that I've got here. And if I want to, I could actually update it right now. This is published, which means I'm on version one. It's published. I cannot edit it, but I can click edit and I'll get version two. And on version two, I can come in here and I can choose an operator and I can do a transformation and I can basically start doing transformations right here on the fly if I wanted to. So it's even though it's a very simple generation to source the target, I can come back and upgrade those at a later time. Now, if I want to, what we'll do is we'll come in. This is the classic view. OK. Within here, I've got a I've got one running right now, right, that is basically taking some order information, order items, looking up, adding product information to it, joining it and transforming it. In the Qualcomm platform, anytime you click on preview at this point, what it's doing is, is it's actually building a job, submitting it to Spark, Spark's running it against the katha topic and bringing the information back. And I don't know if any of you've ever played around with Spark and all, but count how long it takes to actually look at this data on one thousand one thousand two and about two seconds. We've created a job, submitted it to Spark, ran it in Spark and then returned and Spark's looked it up in katha, grabbed the day out of katha and brought it back to us.  Normally it takes me 20 seconds just to get the job started in Spark. So I've got orders. I got order items. I've got look ups here. So what I'm doing is, is I'm actually joined based on the product key and getting the product name, things of that nature. I've actually joined the two tables together and I've joined these two tables on order ID and for anybody who's ever played around with streams, you know that the data is not always guaranteed to be at the exact right time. So you need to put some kind of windowing. In this case, I did five minute windowing functions. So, you know, within five minutes, I'm assuming everything is going to be within the same span. And then transformations, you can do all kind of transformations and equal them against your data. So you can change the type. You can add additional columns. In this case, I did the length of a concatenation and also used one of our user defined functions called greet me. So if you do need to write code, you can create your own user defined functions plus also you can write code in pre and post processes if you need to for something special. So in this case, this workflow is actually going out and writing into a Kafka topic at the current time. Now, if I want to, I can come in here, edit this flow. And now I'm on version two. I can delete my target and come back over here at another target and I can point it to Postgres this easy. I now edit where I want it to go in Postgres, right? So I can say I wanted to go into the qualms schema and I can say generate the create table statement. And instead of this, I'm just going to call this the pre preorder item info. OK. And if you'll notice it creates the table, it does the grants, everything else and I can execute it. And at this point, I have now created the table within Postgres for us to load into. And there's our preorder item and I can go to mapping. I can do a couple of things. One is is I can, you know, change around what we're doing. In this case, I can change the mapping if I need to and the type that it is. But in this case, I'm just going to say OK. I'm going to say OK. I'm going to save it and then publish it. And execute it. And. Oh, and I did one thing wrong, go to my flow executions here and I'm going to pause it. I'm going to resume it and I'm going to reprocess all the events. And what that will do is, is that will give me my initial capture again, pushing all the data into Postgres, because I had pushed it earlier into the kafa topic. And so this case, we will be pushing it in now. And you can see that it did the initial capture and then went to the change data capture. So if we come back over to the beaver and we go to the equal schema. And we go to our pre-order item table. There's all the information that we brought across from the the new schema, changing it, pointing to kafa, pointing it directly into Postgres. And as you can tell, you can do any numbers of transformations and changes that you would like to do. So within the column, some of the good things is, is we have our complete metrics, which will actually come in and it will tell you what's going on. It's, you know, our metrics are being populated into Prometheus and then are being consumed and displayed through Grafana. And for all you folks who know Prometheus and Grafana, you know that pretty much anybody can grab Prometheus metrics and Grafana has its own dashboards that you can create. So if someone doesn't like the standard dashboards we provide, they can always define and grab their own dashboards and do whatever they want to. As you can see down here in the user topics, you can see what was going on in each and every user topic within the kafa platform. So this is all of our vent stream data coming in. This is what we're doing at the current time. And if I go in there, you can actually see a little bit more of what's going on. You can see all the RG1 topics that we have and things of that nature. And it's really good because what we do is is we give you not only kafa, but the agents, which are actually collecting the information so that you can see what they're doing with their change data capture throughputs and things of that nature, their overall throughputs, so forth. And same thing with our flows, streams, targets, all the information is collected and displayed. And then, of course, within the notifications, you can set up notification rules. You can set up like this is a notification room on the target when it's a warning or critical. Email myself, right? When I have a flow with a tag of orders on it, on anything, I want you to basically notify orders at the quality.io and they're real easy to do. All you do is click on the notification tab, the replication group, if we get any kind of warnings or whatever. So if I get anything on the replication groups, I want it to if it's a warning or critical, I want it to email me. I don't care about info. And that's how easy it is to set up. So one of the problems that that I've seen all my life, putting databases in everything else is is usually had to go and develop another pack or buy another package to actually monitor and do anything with it.  But, you know, you got to do these things and they have to be monitored and they equal on platform installs all the components, manages all the components and gives you full graphical interface to it. As you can tell from the top, we're displaying a lot of the Prometheus in metrics and all. We're doing this through Java about CPU load, memory utilization, space usage and so forth. But you also notice on each one of the tabs or cards here, like on flow executions, we've got 14 streaming executions running at the current time. We've got none of them pending. We got none of them paused and we got none of them in error. On the batch, you can see we've got none of them active, none queued, we had four successful in the last 24 hours and had three that failed in the last 24 hours in the same way with the sources and targets. I've got five sources active, none pending or paused in the same way with the target six of them active and paused. So the other thing is alert management. OK, we try to display in each one of the locations you're in, but there's an alert management and what it will do is it will tell you the information, right? See here my target snowflake and this is because I'm running on a single node because I'm not in high availability notes. So I get a warning because of the process telling me that it's not so you can see each one of these things are highlighted for you. And like I said, you know, you can click on the alerts within each individual area and you can just say a knowledge all and what it will do is acknowledge them and remove them. OK, I know I went through a lot of this stuff really fast, but I want to make sure I had plenty of time for questions and answers at the end of the session. So real easy to set this up. It's real easy to monitor. I don't know if any of you have looked at moving stuff from Oracle into Postgres, but if you have, you know, you move the data, but then the real problem comes the continuous feed from the Oracle side over into the Postgres side. And that's where you got to run out and grab some more tools or write a lot of code and then you get into the problem with the restarting and guaranteeing nothing gets dropped. And that's where we come in. We handle all that. We make it simple, easy, you know, very, very manageable. It does not take a high level of coding skills in order to be able to do this process. OK, we got a few questions that have just come in. Guys, keep them coming. So the first is how will metadata get copied to Postgres from Oracle? Depends on what you mean by metadata, right? So the the DDL of the original create table we do automatically for you or like you saw when I changed it from Kafka to Postgres, it generated the create table statement and I can modify that to any method I need to before I execute it. But when you when you create a flow like pre-order info here, when you when you create these flows, well, we'll take one of the RG ones here. When you create these flows and all and you look at them, one of the things that you do is as you set up even in the source, what you want to do with the DDL that comes in, right? So in the case of this one by default under advance by default, I have three choices that I can do and this is where I get my choices every time. I can do do nothing with the DDL. Don't evolve the schema. I can evolve the schema to the stream of data, but not anywhere else. And then I manually have to take care of whatever is going on or the last one, which you probably want to do in the case of just doing straight old replication, right? From source to target, you want to do end to end schema evolution so that whenever I add a new column in the Oracle table, it would automatically add the column in the Postgres table and it would then automatically take those new changes with that column and populate that new column in Postgres. And that's what you would more than likely want to do in your replication. So that it's it's easy to set up by default, but it's also very over rodable based on the workflow that you're working on. Great. So the next one is when migrating from Oracle, will this outperform their Golden Gate CDC tool? Yeah. In the release that I'm running right now, this particular release, we're using the log miner to read the Oracle log. OK. Our new release, which will be out this week, which our customers won't be on for a little while, but it's releasing this release, reads the Oracle redo log binary just like Golden Gate has been reading it for years. And so at that point, it will be the same performance as the Golden Gate change data capture. Great. And I have one more right here. The GUI abstracts away the spark code for ETL processing. What if I need to run some custom pie spark transformations? Does it allow me to do this? Yeah, you can. You can basically when we were in this process here and we're in the transformation, right? When I come in here, I can basically in the functions that I've got, I've got custom code. I can write anything I want to here and put it in Java or JavaScript and drop it in as a user defined function. And then I can call it for every single thing that I want to do. So I can do it through the Java interface here. There's also pre and post processing that I can do before I start processing the data or after I start processing the data, depending on what I need to accomplish. And there's probably a couple of other ways that you can do it. But those are the easiest ones to do right out of the box.  There's no way that anybody is going to be able to get all their proprietary algorithms because otherwise it wouldn't be proprietary. So you have to have a way for people to have those proprietary algorithms and be able to put them in for the transformations for like customer ratings and rankings, credit scores, all that kind of stuff. So there's plenty of places to do that. Fantastic. So with that, I just want to thank you, Alton, for spending this time with us. And I want to thank all of you for spending your mornings or afternoons or evenings, wherever you are with another PostgreSQL conference webinar. So enjoy the rest of your days and I hope to see you on the next one. Thank you.


We're talking about website security, the big picture with simple steps to take. A lot of people that think that security is scary. And that is an animated gif that is not animating. That's a bearded dragon behind that kitten. And it's funny. But maybe it's not scary after all. So there's several different types of attacks that can happen to your site. A brute force attack. Basically somebody is just trying everything they can to crack a password or get into your site by trying every password combination, a username password combination they can think of. SQL injections. Cross site scripting hacks. Cross site request forgeries. File inclusion vulnerabilities. Directory traversals and so many more. A lot of this stuff happens if your form doesn't sanitize this data properly or if you're not including secure JavaScript. And a lot of this stuff can be mitigated pretty easily and that's what we're going to talk about today. So here's a few things we're going to talk about to drastically improve your security pretty easily. Choosing a quality host. And we're going to go over all this stuff point by point. Use quality and trusted software. Manage your usernames and passwords. Enable two-factor authentication. And then I have a few quick tips. So in choosing a quality host, a lot of what you want to do is ask for advice from other people you trust. There's a lot of inexpensive hosts like Blue Hosts, which is recommended on WordPress.org. So because of that recommendation, we know that it's somewhat trustworthy. Site Ground is another inexpensive host. These hosts are like $5 a month, $10 a month hosting packages that you get and you can host a couple of sites on there. But they're usually shared hosting, which means that your website is on a server with 100 other websites. Now there have been times in the past where because of some server mismanagement, one site that's completely unrelated to your site got hacked. But because of the insecurities on the server, that caused every other site on that server to also get hacked. That happened a few years ago with WordPress especially. There was a vulnerability, not specific to WordPress, but to some themes that were including some stuff that WordPress users used. And they were on these hosts that got taken advantage of and infected every site that even those sites were secure. There's mid-range quality hosts like Pressable, WP Engine. Some of the hosts that are sponsoring this event would fall in that range as well. And then higher end is like Pagely. iThemes actually has a document. There's a bit.ly link here and my slides are available on the WordCamp website. But that link should link you to an e-book that iThemes put out about how to choose a quality WordPress host. Choosing quality software. There's some things you should seek and some things you should avoid. Get your software from a trusted source. WordPress.org is considered a trusted source. The plugins aren't necessarily vetted by a third-party developer. But if you look at the ratings and reviews of that plugin, that should help you get an idea of whether or not that's trusted. Also, the download base is a good number to look at. If you're looking for a plugin that does something and you see three of them on the WordPress.org website and one of them has one download and one star rating, you might want to avoid that one over one that has a five star rating of 20 or 100 or 10,000 downloads. Back up to the trusted sources. Again, if you ask developers you trust or people you know, Facebook, there's a couple of WordPress groups that are really good places to ask questions like this. Find a place that sells premium themes if you're looking for premium themes or even premium plugin developers. Like iThemes, I would think, is a trusted source. We sell themes and plugins. StudioPress sells themes that you can trust because they have a brand that they're trying to protect and they don't want to put garbage out there. And my last point I already discussed was the recommendations from other WordPress users. A recommendation to avoid is Torrance. Now, Torrance aren't necessarily bad, but a lot of people don't want to pay $50 or $100 for WordPress themes. So they'll go and try to see if it's available for free someplace. And one of those places is by downloading a Torrance. And sometimes you're going to run into somebody who downloaded that theme or even bought the theme, injected their own malicious code into it, put it up on a Torrance, and now you're infecting your site by installing it. Another place that I would avoid is any site that's selling all the things. Every once in a while, every six months or so, some genius developer says, you know what, I've got access to all the Genesis themes, all the iTheme themes, all the whatever plugins. I'm going to sell these for $5 on my site. And I'm not going to support them. That's going to be on the purchaser to figure out how to get support for it. And unfortunately, with GPL, that's perfectly legal as long as you're not breaking any sort of trademark stuff. But you can download those themes for really cheap, but it's not really a trusted source. They could inject an ad on your site saying, bought from this site or malicious code again. So I would avoid those two as major places of getting software. But another thing you need to remember is even quality software can introduce bugs or security holes. WordPress is quality software as far as I'm concerned. Sometimes it's a security hole. We're not perfect, nobody's perfect. The good thing about getting your software from trusted sources is that they're going to respond to security complaints. Hopefully they're going to deal with security complaints before they're publicly known. Even Microsoft and Google runs into this. They'll have a security thing. Usually they're notified, they patch it before they release what that security thing is. Hopefully hackers don't find out what it is before anybody else does though. So one thing you need to do is if there is an update, update it. So WordPress gets an update, update it. Because there might be a security vulnerability that you're updating for, or a plugin, or even your theme. An important thing you need to do is manage your usernames and passwords. And this is across the web, all of your usernames and passwords. Don't use the same password on multiple sites. If somebody hacks my iTunes account and I'm using the same password as on my bank account, then that may be a way for them to get access to my bank account. I recommend using password managers like LastPass or OnePassword. I personally use LastPass. You can use it to generate and store very long, random and unique passwords. And it's really user-intuitive. You go to a website, it has a user form. You put a new username. There's a button to generate a password. I recommend at least 16 characters. And you hit submit. It will save it into your LastPass store. It's very secure, it's encrypted. Not even LastPass can get access to it. If you forget your LastPass password, then you've lost all your passwords. Sometimes my wife will say, hey, what's your Facebook password? I need to log into your account. And I'll say, I don't know. I have to log into my LastPass. Click on the button to show me my password. And say, H, capital K, 3, exclamation mark, E, W, capital Z. And that's great. It's great that you don't know your password. The only password I know is the basic insecure password I use for throwaway accounts that I don't care about. And my LastPass password, which is not basic or insecure. In fact, my LastPass password is longer than the passwords that I have generated from LastPass. But there's a lot of people that don't trust password managers because they're afraid that their password's going somewhere that's insecure. Now, with LastPass, I don't know as much about one password, but with LastPass, a security researcher named Steve Gibson, who I'm going to talk about in a minute here, did a pretty thorough breakdown of how LastPass works and how there's no way LastPass can see your password. But if you don't trust them anyway, Steve Gibson has another method that I have fallen in love with for people who don't trust LastPass. It's called the password haystack method. And basically what you do is you come up with a needle and the needle is your base password. So in this example, my needle is dog D0G with a capital D. And so I'm going to put that in my head. That's my password for now on D0G. It's super easy, super insecure, right? Because it's only three characters. But the secret is to put that needle in a haystack of other things you're going to remember. So in this example here, D0G followed by 12 periods. That's the haystack. It's going to be impossible for a password cracker to brute force that password because even though it's not random characters, they have no idea what those characters are. Unless, of course, you let them know what your haystack is. So a recommendation would be pick a random password that you're going to remember, D0G. And if you go to CNN's website, make your haystack something like CNN-CNN-D0D-CNN-CNN. Nobody will be able to crack that password, but it's super easy to remember. You're at your website, okay, CNN and a dash. That's my haystack. D0G, that's my secret password that nobody knows and no one can guess it. So my question for you is which of the following two passwords do you think is stronger or more secure or more difficult to crack? A sign of hands for this 16 character password with D0G. Anyone think this one's secure? Nobody. One person's my maybe. They think I might be tricking people. And then I have this 15 character completely random password. Who thinks this is secure? More secure. Okay. So this is what WordPress tells me. When I put in D0G, it says it's very weak. And when I put in the random characters, it's very strong. But if you can get one quadrillion guesses per second, it would take the top password, 1.4 trillion years to guess. And the bottom one, only 1.49 billion years to guess. They're both very secure. But the 16 character password is exponentially more secure. The reason being that there's 94 characters per space. Yeah, per character. And basically because the 16 is 94 to the 16 power, that's how many combinations there are for people to guess. Now the WordPress thing I showed you is testing for uniqueness in characters. They think because you did a bunch of dots, it's not very secure because there's not much entropy. But because it's a haystack, nobody's going to know what your haystack is. So it's an interesting test. Just kind of proof like if you don't want to use LastPass, this is a very secure way to do it. Now this assuming one quadrillion guesses per second thing is like an offline NSA-style attack. There's no way you'd get that many guesses on the website. The number on a website for attacks would be the site breaks before you even get to guess any large number of combinations. The site would be expired.  All right. On to two-factor authentication. There are three factors of authentication. One is something you know, which is a password. The second one is something you have, like a phone.  You can enable two-factor authentication, often referred to as 2FA pretty easily. I think security pro has it enabled. And there's a plug-in on the repo called two-factor. And you can use a number of things to get that second factor. Authy, there's an app on my iPhone. You probably can't really see it, but it comes up. It asks for a password, but it actually takes my fingerprint as well. And then there's a code that generates every 30 seconds. And that code expires after 30 seconds, and basically you type in that second factor after you've put in your username and password. And what that does is if somebody knows your password to your bank account, they type in your username, type in their password or your password, hit Enter. It's going to say, okay, what's the second-factor authentication? They need to have your phone. Or they need to have your fingerprint. Or, you know, your eyeball. And so I have LastPass on my phone, which requires two-factor authentication. So when I pull up my LastPass account, I have to put in my 100 character password. And then it says, what's your two-factor? I have to close LastPass app, open Authy, and it says, what's your fingerprint? I put in my fingerprint. And then it gives me that. So you have to pack through brute force one of my passwords. With my phone, you have to have my fingerprint and my LastPass password to get the second factor through Authy. So it's extremely secure.  So about, I guess, five or four years ago, I started having all these users come to me with hacked websites. It was around the time that Tim Thumb vulnerability came out and a lot of themes were using Tim Thumb. And so I was getting like two, three, four, five sites a week from people whose sites were hacked. And I made a document basically of how I was repairing these hacks. It's more developer-minded, but I decided I wrote it out into a booklet and I put it up on Amazon for $0.99 free to Amazon Prime subscribers. And it's called the concise guide to securing WordPress and repairing hacks. It needs an update. There are some outdated things on there. But if you're interested in looking at it, there's the Amazon link right there. But here are some few things about the securing WordPress part that I wanted to talk about. You can move your WP config file outside of the web route. So when you install WordPress, it's all in one directory, right? The web directory has WP Admin, WP Content, WP Includes, and then a bunch of WP PHP files. One of those PHP files is wp-config.php. If you move that file one directory out, outside of the web route, WordPress still reads it. But it makes it a little bit harder for hackers to get into your system to see that file and to get your database credentials. The number one thing I found to be probably most effective is turning off file editing in WordPress. You know when you go to Appearance and there's Editor or Plugins and there's Editor, those allow you to edit a theme or a plugin. If I get access to your site, I can go to Plugin Editor and add a line of code to download anything I want to your site and basically take it over. I could change all your passwords with a line of code because of that Editor. It's not insecure per se if you have secure passwords or there's no other way for them to get access to your site. But I found that that's one really quick and easy step. You stick that line of code in that wp-config file towards the end. There's a little comment that says add stuff here, stop adding stuff here. And that will protect you from those sorts of attacks. Along with that, deactivating any plugins that allow PHP to code execution. There was a popular one being used, I think it was called PHP Exec and it would allow you to run PHP from a widget. So you have a little widget in your sidebar and you do your open PHP command and then write a PHP code and then it would output whatever you wanted to output. And it was a pretty good hack. There's some of these that allow you to do it in post content. Those codes are another way for hackers to inject malicious code into your site. If they get access to your admin, they can edit that post or that widget and put PHP code that automatically downloads their file to them. So deactivating any plugins that allow that. But also delete any plugins and themes that you're not using on your site. If you've ever developed on a website and somebody has asked you for help but they don't have their FTP credentials and they haven't disallowed file editing yet sometimes you can go in there and make some changes to the code of a plugin that they need help with.  This is why FTP or SFTP is more important. But more importantly is if there's any deactivated plugins, in other words plugins that you're not going to notice aren't doing anything on your site because they're not doing anything on your site. So if they're deactivated but they're still on your site, I'm going to go into the editor. I'm going to edit that plugin and I can change whatever I want and it's not going to take down your site. Even if I have a typo because I'm going to browse directly to that plugin file and it's going to give me an error. If it doesn't give me an error and it runs properly, great. But if I fat fingered something and there is an error, all I need to do is go back into WordPress and edit it because it's not an active plugin. So delete any plugins and themes that are not active on your site. Another thing you can do is enable SSL on your site everywhere, but at least for logins. There's another piece of code here on the bottom that you can add to your WP-config. Define force SSL admin equals true. Basically what that does is at least when you go to WP admin it will redirect automatically to the HTTPS version of your site if you have SSL installed. The reason why this is important, and it's usually important for people who do a lot of work at like Starbucks, you go to Starbucks and you're doing work for your client and you log in in the admin. Well I just happen to be at Starbucks too because it's not a very secure Wi-Fi environment and I'm running a packet sniffer and I immediately get your username and password for that site because it's not logged in through SSL. SSL encrypts the output going both ways really of the connection. So you fill out a form, username and password as a form and sending a post data, that body is encrypted to the site with SSL. Without SSL it's plain text. So even though you see those black dots in the password field it's sending that as plain text. If you're at Starbucks and you log in I see plain text coming through if you're not using SSL. Okay, well I just got WP admin. Oh you didn't disable the file letter. Great, I'm just going to add my code right now, download a payload of malicious code and I've taken over your site. And there are hackers who can automate this stuff so it happens you know within seconds of you logging into a WordPress site. All of a sudden something's wrong, you don't know why. I recommend SSLs.com. It's the place I used to get all my SSL certificates or it was the place I was using to get all my SSL certificates. They're fairly cheap. You can get a rapid SSL cert for $5 or $6, something like that. Buy it for, I think that's if you pay for three years then it's like $15. Let's Encrypt is something fairly new and it requires your host to support it but they're free SSL certificates. Now you can go for the really fancy dancy SSL certs that cost $300. They don't protect you any more than the $5 ones. They're just considered more trusted because the companies vet the person claiming. So if I could, in other words, I could get an SSL cert for Google.com and spend $5 to do it. But if I wanted a $300 really super trusted one that gives you the green bar instead of the purple bar or whatever it is then they're gonna call me and say prove to me that you work for Google and I'll be like well I can't really do that and I'm not gonna give you the SSL cert. But for basic security both SSL certs all every version of the SSL cert will protect you the same way. I was talking to Liquid Web out there and they are actually, I believe introducing a hosting solution that will enable Let's Encrypt but their basic one that they offer now comes with a free SSL cert for any domain that you have, I believe. Don't quote me, I'm not a salesman. Who does? Dream host. Dream host? Let's Encrypt? Okay. I just started using Let's Encrypt on my site. It's really cool that it's still in beta but the search expires every six months and there's a command that you have to run to renew them. It's fairly easy and you can automate it. I assume Dream host automates it. Site ground? Okay, great. Perfect. So, look, free SSL certs, easy way to protect you and then you can work in Starbucks and not worry about someone like me breaking your site. Yes. Let's Encrypt. Like, hey everybody, let's Encrypt. And Let's Encrypt is backed by really big companies like the EFF and Google because they want everyone to use SSL or actually TLS. So the NSA will stop spying on us all the time. So this is a quote from a support rep that works at iThemes. Hackers aren't just targeting specific sites like Ashley Madison. You've all heard of the Ashley Madison hack recently. Instead, they write software that tries to find any weak site and compromise it. They can use that to attack other sites or to make money off ads or by spoofing other sites. They attack everyone and that's true. A lot of people and a lot of your clients will say, why do I need this XYZ security? Nobody's going to want to hack me. And the answer is you're right. They don't want to hack you. They want to hack your site. Because by hacking your site, they can send out thousands of spam messages that hopefully somebody will click on a link and infect their computer with something that will lock down their computer and require one bitcoin, which is $400, to decrypt all their files. Or just Viagra ads on your site. And these malicious codes are pretty smart. They will track like, oh, this person logged in to WP Admin. So don't show them the ads.  And yeah. On that note, they can be specific to your zip code or area code or zone of your state or city. They can tailor it for your box sometimes to where you or your customers might not see it if you sell it like a general store in the neighborhood and everybody else will. Right. So you're going to go to your site and be like, I'm not seeing any Viagra ads. There must be something wrong with your computer. And you're going to forget about it. But they're just, they know, this is how hackers evolved in the past 20 years.   Hey, wait, we can make money. Let's make money. Yay, we're making money. Oh, but they're blocking us because we're making money. Well, let's not show them that we're making money. And that's where it's evolved. It becomes very difficult for you to see the hack because they hide the hack from your eyes because they see that you logged in with your IP or your admin username. And they're like, okay, they log that IP and says, don't show the hack to these people. Your site looks perfectly normal to you. So you can use that example for your clients when they ask, why are you charging me $100 for this service? So it's easy to make it hard on them. And that's really the goal of this talk. It's not really if you get attacked, but rather how you prevent it from being successful. And again, that's to choose a quality host, use quality and trusted software from trusted sources, manage your usernames and passwords smartly and enable to factor authentication. Those are really the four basic things you can do right now that take almost no work and will help mitigate any of your clients from getting attacked. Are there any questions? Yes. For just the files? Yeah. I usually just change them both. If you have those set to HTTPS, it should automatically do HTTPS. Another thing too is if you're working with a server admin or probably any of the number of WordPress hosts out there, there's a way to say, redirect all non-HTPS traffic to HTTPS. So that's what I do on my servers. Anything that's going to port 80 HTTP, redirect to HTTPS. And you can have it so it actually preserves the URL they're going to so nothing breaks along the way. But I believe if you change that to HTTPS in the settings, it'll just instead of doing the WP admin thing. Yes. What is it? WP. WP4, SSL? Okay. Yeah. And I think there's another one that does something similar. Yeah. Right.  Yes. Three quick questions. Sure. What is the sponsor list? I don't purchase things from Code Canyon. WordFriends is a pretty good security plugin. Yeah, it's obviously a competitor to iThemes, but they do some good stuff. And there's another security one. I can't remember the name of it though. But WordFriends is a pretty good one. Follow one WP security? Follow one WP security, yeah. And there's some other security plugins that aren't as robust as those three. There's some that like they limit login attempts. So if somebody is trying to brute force you, they'll lock that person out after like five failed attempts. And those... Those are pretty good. Yeah, WordFriends adds that. I think security does. And I'm sure all in one security does. The last question is you said turn off the file editing. Yes. So you would just go edit a different way then.  Right. So the safest and most secure way to edit is through SFTP, which is secure FTP. It's not really an aspect of website security, although I guess it is because it has to do with your website. But similarly, if you're at Starbucks and you're FTPing into your client's website, I automatically have access to your FTP username and password. Because FTP is not encrypted at all. All I need to do is sniff the packets and see the username come through and the password come through. And I've hacked your site. Most hosts offer... They'll say SSH or SCP or SFTP to connect. And that is an encrypted protocol. So the password is encrypted through transit. And the files are encrypted through transit. So nobody can see what you're sending. Yes. Can you clarify anything about the job? It's not really going to get you anything. As far as security, it might prevent some brute force attacks. I don't use it. I find it to be more of a pain than anything. Most of the time I can't even read those things. Or I have to hit the refresh button until I get one that I can. It's give or take. It'll probably add a little bit of security, but I don't think it's enough to make that much of a difference. Yes. That's a tough one because SSL is really the server component. I'm not sure. I hope that it would be a standard recommendation if it's not already considered a standard recommendation. Google wants the world to be on SSL because of security. I mean, every security expert wants the world to be on SSL because of security. Not by no means. It's a website. I have to work with it. What you call the great shooting in the house, it's not a good thing. It's over on the website. It's not a good thing to do by yourself. Okay. I'm a worker person. And my question is, do they have anything on it or anything else that you can disguise the names of your image files without going for a hard work of it? Like to rename them? Yeah, because it's kind of, you know... I don't know of any plugins that does that. I think it would be fairly easy to hook into WordPress with some code, write a plugin to do that, to just rename the files. Do you know... What are you thinking would be a security benefit to doing that? They know the name of a folder. They really know what door to find on your chicken is going to get inside. I mean... Yeah, the folder structure in WordPress is pretty standard, though, so... Imagine if you're on a page, is there a page you need to write on? Yeah, you can actually... You can set up your Agi or Nginx to disallow any access to any subfolders, except for web requests. Yeah. I think security has some stuff right now that will rename... I think security. It will rename WP content, I believe. I don't know if it does WP admin. I think they might be removing that, because ultimately that's security through obscurity, which doesn't really give you any security. Because if you think about it, the name lives in WP-content-theme-slash-whatever-slash-your-files. Well, the source code, the HTML source code, is going to be referring to that. So if you change the name of WP-content to Blue Love Security, all I would do is right-click View Source, I see, oh, the style sheet's in Blue Love Security-slash-theme-slash-theme-name-slash-whatever. So it took me one extra second to figure out your folder structure. Right-click's enabled. It's always enabled. You disable the JavaScript, I've already found a way to get around it. Alt, View Source. Yes. Renaming the database, like the table name. Yeah, when you start a WordPress install, you should rename the database from WP underscore to something else. And I think security, as probably the other security plugins do probably have, but I know I think security does, has a way to rename a database that is currently running, but always backup before you do it. Yes. You didn't mention when you mentioned the password to save keypads. Keypads, yes, that's another popular one. I've never used it. I've never used one password. I've only ever used LastPass. Yes. Well, there's not usually, I mean there's not a WordPress log that tells you that you were hacked. Basically, it's knowing the symptoms. You get enough people that say, hey, I'm seeing Viagra spam or whatever. Yeah, it depends on what the hack is. And sometimes Google will alert you. And their webmasters tool is pretty good about doing that. Sometimes, like, I had a site that was old and unused and I forgot about it. And then I got a notice from one of my virtual service providers. And they said, hey, we're blocking your IP because it's been hacked. And I said, that site's still up. And I went and looked and sure enough it was hacked.  But it was a very old version of WordPress. They had a security hole in it that had been long known and they found the site. So the host will let you know if they know in most cases. But sometimes they won't know because they don't know if you're intending to show Viagra spam. Yes. So Security has a plug-in that does malware scan. WordFence does. I think Security does. BackupBuddy even includes a security malware scan. Security also offers a hack repair service. So I think it's like $30 a month or something like that. I don't really know. I don't use it. But if your site is hacked, you contact them. They'll go and clean up your site and put it back the way it should be automatically for you. Security. S-U-C-U-R-I. Yes. Yep. So in the WPC-LI talk, he showed us if you use the WPC-LI, which not all hosts will have, but it's pretty easy to install if you have shell access. You can run WPCore, space, verify, dash, check some. And it will tell you any core files that have changed. It won't necessarily be true for plug-in files though. So if a hacker hacked a plug-in, then you still might not know. But it is a good way to see if any of the core files have changed. Yes. Right. If you've been hacked long enough that Google notices, then it'll take a little while to get back. But there's not really much you can do about it. If you don't know, you don't know. I believe it's S-U-C-U-R-I dot net, I think. Or com, I don't know. Google it. Any other questions? I think we're running out of time. Three minutes? Yes. Any side work? But if you send me an email, we can probably... I can give you some tips if you have any questions. Or I can at least let you know somebody who can work on it for you. Anything else? And the link to your slides are? On WordCAM Atlanta's website. Okay. They're going to put them on Slack. They're going to put the thing on Slack. They told us they were going to put our slides up on the site. So, in fact, I can put the link to the published version on Slack. Look, this is last pass. It's asking for my second factor authentication. Any other questions while I'm doing this? No. Is there a WordCAM in Jacksonville? Yeah. So, my 3 p.m. talk. So, that should get you there. Thank you all for listening. I hope you learned something.