We're going to be talking about OTP today. The title of this talk is OTP has done it, a survey of wonderful things. This is a magical land, and I'm excited to welcome you to it. My name is Nick De Bonner. I'm the CTO at a small startup in the local government software space called Seneca Systems. And we are, as of I guess a couple weeks ago, now doing all green field development in Elixir, which we're really excited about. And yeah, so I want to talk a little bit about, I'm kind of a cross Ruby and Erlang native. I'm coming from both those spaces on various projects. So I kind of wanted to talk about the different things that the OTP ecosystem has to offer to each of you. I think that you're going to find some stuff in here that's going to be really exciting for the work you're doing day to day. So the first thing I want to kind of look at are the principles that OTP was designed around. And really quickly, and this is the only time I'll mention it, but OTP stands for the open telecom platform. I didn't put it up there so that you could read it, because I think often OTP gets short shrift because people assume that it's somehow only related to telecom applications. In reality that was where it was first developed, but these are common design implementations that we can use everywhere. And the first, and I think the most important principle is OTP is about separating what is generic from what is specific. What I mean by this is, what I mean by this is it's very common for us in our industry to mistake the challenges that we face as specific to our work, to the domain problem that we're facing. When in reality I think there's a large amount of shared technical problem that we can use to address these things that we think are specific. And so OTP set out to basically say, look, we see these generic patterns of implementation across almost every software project that we develop. Let's turn them into something that is as easy to use as LEGOs to build our little lands. And in OTP, every process is either a supervisor or a worker. This stuff is not complicated. It feels complicated from the outside. If you've looked at the Erlang docs, it's very easy to just get confused and lost and say I really don't know what all this stuff is doing. But the essence of it is that everything in the system is either a supervisor or a worker. And we're going to talk about what those things mean. And applications, which we'll look at in a little bit, are basically just trees of processes. That's it. It's trees of supervisors and workers all doing their thing. So it's not a complex concept. This is where to look if you're getting started on trying to figure out what is the philosophy behind this. It seems a little ridiculous to have to put this up there, but the Erlang docs are spread out everywhere. And I think if you're trying to figure out what something is about or how to use it, this is a good place to start. And then I just wanted to throw this up there. So this is a take on Greenspun's law that Robert Verding came up with. But the idea is that, I mean you guys can read it for yourself, but the idea is that if you really spend your time trying to implement and reinvent all the things that OTP has to offer, you're going to basically end up with this. An ad hoc, informally specified, bug-ridden, and slow implementation, basically about half of Erlang. So if you take anything else away from this, it would be that this should be sticking in your mind every time you find yourself saying, no, we probably need to write that in-house. We need to write that from scratch. So the first of these principles is kind of, in my opinion, the most important. This is the generic versus specific battle. And what I think I've learned over a couple of decades of doing this is your domain problem, that problem that you're trying to solve specific to your users, might be unique and might not. But much of the technical problem that you face, it's probably not unique. There are pieces, most likely, but much of it has been written by somebody else, and somebody else has had to sit there and think about this and build a great solid implementation of it. And that's what OTP is all about, is what were those things that we could have shared and let's build them. This is a little bit of a tangent, but I see this happening more and more often in our industry, which is that we have a tendency to reinvent a lot of stuff. That doesn't actually happen in a lot of other disciplines around engineering. And this is not like a dig at JavaScript or something like that. But it is a dig at a tendency I think we have, because we're all very curious people.  And part of it is that it's always a challenge to reinvent, and we like challenges. It's really fun. It is an entertaining way to keep our brains occupied. But I argue if you're building production systems, for the most part, and there's a mostly there to qualify this, it can be a waste. There's of course always exceptions to this. When you hit problems, literally no one has faced technically. That's fine. But I would like to see us reusing a little bit more. And I think OTP provides a perfect gateway to getting into that new habit. This is a great metaphor I took from my mobile game days, which is there's a great phrase in game development, which I'm not sure if you've heard, but it basically goes along the lines of if you set out to make a game, which most people do when they're getting into game development, you can either make a game engine or you can make a game. And the idea is game engines are incredibly complex, incredibly complex. And you'll very quickly find your two years down the road with perhaps a great game engine, but you actually didn't get accomplished what you wanted. If you're a company with huge resources, this might not apply because you have enough people that you can weather that. But if you're a small team looking to move in a nimble manner, I think it behooves us to look at are we building an engine here or are we trying to build the game itself? And lastly, if any of these abstractions that we're going to talk about here in the rest of the talk stop being useful to you, don't use them. This is not some sort of written in stone law, everything I'm writing up here. This is common sense of these are abstractions we can use. We can take off the shelf and apply them to our problem. But if at any point in these you find yourself, it's getting painful, I say, stop, look at them for inspiration and build your own thing. So this is sort of the caveat to the rest of the talk, I guess. And lastly, to sort of visualize that, I think for most of us, this is what we end up thinking our problem looks like, where we have sort of the problem you face, the problem everybody else face. And then in the middle there in the overlapping section is the shared problem, the problem where we can share wisdom about it or code. In reality, I think it probably ends up looking something like that, where the other problems people are facing and your problems actually take up a lot smaller space than you realize. And it's really that shared problem in the middle that makes a community like this so exciting, right? This is a place where we can extend that, or sorry, get those circles to overlap more. That to me is the secret to great productivity in this industry is the more that I can make these circles overlap, the more I'm able to apply our expertise to that tinier sliver, right? So ultimately, if you're working on an elixir system, I think it's critical to ask yourself, has the OTP done this thing that I'm considering? The answer, probably. It's not, yes, it's not an unqualified yes. But the answer is probably these guys, these teams have built. This is a marvel of engineering, in my opinion, OTP. And we're gonna look at it, but it is a marvel of engineering. People smarter than me spent a long time getting it right. And I think anytime that I've looked, mostly, with a few exceptions, OTP has solved my problem. So the first thing I wanna talk about is this notion of applications.  And it can look a little overwhelming. You're unsure of where do things start? What are these configuration files I'm looking at? What is this version number four in this config excess? And an application is just a piece of functionality that can be started and stopped as a unit, okay? This is like system D units, system D controversial. But this is, it's akin to that, right? An application is a piece of functionality that can start and stop at will, and they can be mixed together in OTP. Which is really nice as well. Applications are optionally reusable. There's two kinds, there's regular application, I don't remember what they're called, and library applications. And the idea is that library applications are those that don't actually actively manage any processes. They are providing functionality to you from other places. So a lot of the dependencies that you mix into your projects are library applications in OTP. I would say honestly though, you don't actually need to worry about this a whole lot. For most, the vast majority of projects, the application callbacks are done for you with mix. It mixes a beautiful tool, you provide it that sub-flag and you get a supervised OTP application ready to go. It's really, really nice. I would say if you find yourself looking at your config excess for your application and you're like, this is not doing exactly what I need, look at conform. I think it's been touched on a few times and there was a great talk yesterday about it. This is an incredibly powerful tool that I have some big hopes for that I can talk a little bit about later. So supervisors, we hear this term get thrown out a lot. And when I first started Erlang, I had no idea what these things were, they sounded like sort of magical beings that ran and terminated things at random and suddenly I got fault tolerance for free kind of thing. That isn't the case, but they are very simple to understand. They're basically responsible for starting, stopping and monitoring all of your workers and other supervisors. So in that tree of processes we talked about, supervisors are sort of the managers, really, of the workers. Erlang was built with the understanding that OTP in particular was built with the understanding that the managers themselves will often fail. So the idea of OTP is you are free to spin up as many supervisors as you feel necessary to achieve the fault tolerance that you're looking for. And this can lead to some incredible, it was a revelation for me the first time that I properly structured an OTP app and realized that you can get things like self-healing and failover and all sorts of other really neat properties to your system just by setting up a small tree of supervisors. This is kind of confusing. When you do a supervisor, there's all these, they call them restart strategies. I will tell you that you really just, most likely, unless you know otherwise, want to stick to these two strategies, one-for-one simply means that if a child process that the supervisor is managing dies, it gets restarted, just that process. One-for-all means if one child process dies, they all get restarted. Typically, I think we use one-for-one for almost everything, and the rest we use one-for-all. Supervisors, there's no real concept of stopping a supervisor. You terminate at the root, and that termination trickles down through your tree of supervisors and gives them time to do proper cleanup or whatever they need to do if you set your kill strategy that way. I put, they're stopped in reverse start order. This is something that bit me a while ago with Erlang, is every once in a while you'll have an application where the termination of your supervisors depends on cleanup from some other one. And so it's just good to know sometimes that they stop in the reverse order that they're started in. And lastly, a child spec. You may have heard this term. A child spec is just a keyword list that we pass to a supervisor when we're adding a child. And it's just a set of arguments that tell the supervisor, what do I do with this child? The start keyword just tells it, what's the module and function you want me to execute? Restart is, what kind of worker is this? Should it always be restarted? Should it never be restarted? Should I restart it every once in a while? Shutdown is a key that just says, how do you want me to do this?  That's one of them. It's just a means of telling the supervisor you can kill this thing right away or I can be patient with it and wait for it to do some cleanup. And then type is either just a worker or supervisor. You almost never have to worry about this. It defaults to worker. So knowing that, let's talk about these gen flavors. We hear these all over the community. And I think it can get very, very confusing about which you should be using when or even what they do, frankly. But in general, they all share some common properties. The first is that they're all generic implementations of common design patterns. These are patterns that the developers of these libraries saw over and over in every piece of software that they built. And they wanted to encapsulate it in a well-written form. These things are battle-tested at scales. You probably won't have to worry about hitting. And if you do, you can rest easy. I was telling a story in the groom room back there to some of the other speakers about a mobile game that I had with like 2 and 1 half million users at one point on concurrently for a special event. And the system basically never, like I couldn't even max out the instances that it was running on. We're talking like rock solid implementations here. You use these via behaviors. Note the British spelling. These are implemented in callback modules. It's essentially just a set of functions that you define according to this behavior that'll get called by the system automatically. And we'll look at what some of those are. But they're very easy to implement. It's like an interface kind of. And so it's very easy to get started. The sort of king of the gen land is the gen server. Gen server is, I would argue, forms probably the basis of like 90% of Erlang code out there that's in production. It encapsulates the request response cycle that we see on almost every form of interaction between users and systems and systems and systems. One thing that you're going to start thinking about is if you land yourself on an elixir stack, microservices get way easier. It becomes much easier to split your code out because you're just basically throwing up gen server interfaces everywhere. So it's very efficient, very fast, and very maintainable. There's two forms of interactions that gen server supports. That's the synchronous interaction. That's the request response cycle. You use those via genserver.call. And you pass a PID or name of the gen server you want to call out to. And then in the gen server, you just set up a handle call callback function. And all that does is take in the message that you're looking for, and you do some work on it, and you return a reply. And OTP will take care of the whole rest of that process. One way is called cast. And it works the exact same way except there's no expectation to a reply. So we can use this for asynchronous actions. GenServer is what you want to reach for, I would say, almost all the time. We're going to talk about the other two implementations. But if you find yourself trying to fit those into what you're doing, I would say just go back to genServer because it does a whole lot. And in fact, the next one is built on top of genServer. And I really encourage you to go and look at the code for this. Very lightweight. The code for genServer itself is actually very readable. But genFSM, which I'm going to talk about next, is basically just a specialized version of genServer. And all it is is finite state management as a process. I'm not sure how many of you are following the mailing list recently, but there was a big discussion about genFSM and whether it might be better to split things out into a data component of the state machine and a process component of it. I'll leave that for more creative minds. I will say that I've used this in many large production systems, and it is highly maintainable and very elegant, in my opinion. All it is is a process that goes from state to state using what it calls events. And those are either asynchronous or synchronous. And basically, all you do is define a set of callbacks in your state machine that match on whatever the current state of that FSM is, and then match on that event that you're passing in. So for example, in this FSM, if we're in the pending state and an approval event gets sent into the genFSM, this function will be called. Very easy to follow the logic. It's composable. You can move this into multiple modules and states. And we actually use this to do, well actually, this will be going into production soon, but a set of interactions with old government systems. So at Seneca, we work with a lot of local governments that are, there's like cobalt systems and things like that that we have to interact with for passing data into a 311 system or something like that. And there's tons of failure modes, tons of them. They have business hours for the servers. I'm not kidding. And so you want to have a way of spinning up, and we spin these up for each of the processes that comes through. We spin up a genFSM, a way of encapsulating those failure modes and recovering from them gracefully, very gracefully. And they're really easy to write. GenEvent, this is kind of a controversial gen flavor. Basically, this is the only one of them that you don't directly really spawn. You spawn an event manager. And I also want to say for a second, event here has a connotation, I think, when we're speaking about it in modern terms, that probably doesn't apply to the way you think about it here. It was these are not, these are blocking calls, for example, when you do this. You can do asynchronous events, but the event manager will block while it runs on that in some cases. However, it is very easy to use. You spin it up at one point in your tree. At any time, you can add a handler. And this works similarly to any other sort of event handling you've ever used from an ergonomics point of view. You give it a module and a function, and what'll happen is basically, throughout the rest of your code, you can just make callouts to that genEvent manager and say, hey, this thing happened. Execute whatever handlers are waiting for it. The great use case for this is logging. I would say that unless you absolutely know that you need to reach for this, I wouldn't worry about it. There's a lot of edge cases involving concurrency here that will get you in trouble. But it's really powerful when it fits right. And also, Act Notify. This isn't really spelled out, I don't think anywhere. But Act Notify is a safer version. There's basically three Notifies. I think it's Act Notify, Notify, and Sync Notify. Notify does a cast and doesn't apply any back pressure to the event manager. Act Notify, on the other hand, will wait for the event manager to acknowledge an incoming event, and then we'll run it asynchronously. So I suggest going with the Act Notify if possible. And that's what that is. So kind of moving away from the gen flavors for a moment. One of the common things that we face, especially in web infrastructure, are the need for sort of ephemeral storage components, the ability to basically sit something in a performant cache that can be distributed and talked to by multiple nodes without having to introduce a third-party process into the loop. And ETS is Erlang's answer to this. This is an Erlang term storage. It's for storing arbitrary Erlang terms, so binaries, or lists, or tuples, or whatever you want to store in it. It's key value. It's very easy to use. And it can be introduced into your process management tree so that you're never worried about it sticking around beyond what you want to. Although as we'll find out, it might disappear sometimes before you want it to. But this is a really powerful tool. And essentially, it comes in these four forms. One is called the set type, and this is the default. And this is essentially unique keys to unique values, or actually, sorry, unique keys. And you can also specify that you want an ordered set, which is going to be ordered keys, a bag, which allows you to have duplicate keys, but not duplicate values, and then a duplicate bag, which will be duplicate keys and possibly duplicate values for those duplicate keys. I find myself reaching for set and sometimes ordered set to duplicate some of the stuff that Redis can do every once in a while. But I honestly haven't gotten a whole lot of use out of the bag or duplicate bag settings on this, although we were talking about it might be useful for time series storage to use a bag. They come with these kind of difficult to understand but really easy to use options for optimizing them to your use case. If you know that your ETS table is going to be read heavily, pass it the read concurrency true flag, if it's going to be read multiple processes. If you know it's going to be written to a lot from a lot of different processes, pass that flag. And basically, our laying behind the scenes will optimize the ETS for those use cases. They come at overhead if you're not using it for correct use case. But I think you can figure out whether you need that or not. They have three access modes. There's the public mode, which basically says it can be written to or read by any process that's within the tree or accessible that can access that node. It comes with the protected access, which says that this ETS table is readable by anyone but writable only by the managing process.  And then that process fully manages your cache store. And then there's also a private mode, which says that the managing process is the only one that can read or write to the ETS table. This is probably the most important thing to understand about ETS. The process that spins it up is going to destroy it when it terminates. So if you have a child process that owns an ETS table and you wanted that ETS table to persist when that child process dies, don't spin the ETS up inside that process, because it will kill it on its way out. One of the difficulties I face in this talk was OTP is such a broad ecosystem of libraries that I didn't really know how to do it justice in the time allotted here. And I really encourage you to go look up Amnesia. Basically, this is a relational database built on top of ETS with all the power of ETS and a lot of the cons as well. Look at it for your use case. I would say it's probably easier for people coming from the Erlang community to sort of understand its query language, but it's very powerful. It's a full relational database, has query language, foreign key constraints, I think. And it's very powerful. So check it out if you get a chance. Releases. So OTP releases are one of those things that I really wish we'd be talking about more. They are so powerful, so incredibly powerful. And I'm going to say I had a whole lot written on this. And then I saw Paul's talk yesterday, and I realized basically you should just do yourself a favor and watch his talk. It was an incredibly eye-opening experience for a lot of people to see what these things are capable of and what's been done for us. But generally an overview is that we're talking about completely self-contained artifacts for your application. Build it, you get a release artifact, a tar ball out of it, put it on a server, run it. It's that easy. Comes with the entire Erlang runtime system, by default, embedded inside of it. It is absolutely incredible. And I can speak as a, we have a very small team running at Seneca right now. And I can say that these things save my life on many occasions, because it makes fixing bugs so much easier for what you would think would be a very complex deployment process, given OTP's power. They're highly configurable. And basically, they're highly configurable. And we saw this with conform. You can make these things do anything you want. And hot upgrades and downgrades. So this is kind of interesting, because I know, for me, this was really exciting. But I understand, and I've talked to a lot of people who have said, well, my applications aren't very stateful. I run fairly stateless applications. Hot upgrade, it doesn't really matter if the system's down for a little bit. I'd argue two things about that. One is, I think applications are moving. We saw the keynote about the pendulum. I think applications are moving to needing at least some state handling on the back end. And I think while you can get away with throwing stuff out on, say, a restart, I kind of look at it as let's evolve the state of the industry a little bit. Let's expect this kind of hot upgrade to become the standard for how we deploy code. It's about time, I feel like. This is an incredibly powerful means for holding onto your application state, not disconnecting people at random times when you're doing maintenance or whatever. And part of this is that all of the gen flavors that I talked about support this really magical little function that never gets looked at, called code change. Code change is just a callback behavior, or a callback on the behavior that takes in the old state of the application when this function was called and is expected to return the new state of it. This gets called during one of the hot upgrades or during a hot downgrade. And it's incredibly powerful. You can essentially take, for example, you could have a stateful map of connections or something like that. And then you could literally change the entire logic of the way those connections are handled. And then you're just going to write a migration inside this code change function that's going to take the old map that you were holding around, return the new map, and all of your systems will make that migration seamlessly and in real time with no downtime. I mean, it's really neat to see the first time you do it. And I highly recommend it for anybody who's doing any sort of real time application where you're dealing with persistent connections. Quickly, I want to touch on this really neat feature, which doesn't get a lot of play. It's the fact that in an OTP release, you can specify the nodes that you want to be on sort of hot standby for your application. So you can say, when I start this up, I want to start a node at this host name and it's going to be the primary. And then I want to have these two hot standbys. And their job is to be started, but they're not going to be getting the traffic from the rest of the way that the tree trickles down. And at any time, if one of those nodes goes down and you can configure what that means, how quickly or how much of a chance you want to give it to come back up, basically, OTP will automatically fail over to one of your hot standby nodes. And when your node comes back, oh, sorry, yeah. So it's configured as part of the release. And when your node comes back from failure, it goes back. It gives control back to that original primary node. So you can have self-healing, basically, topologies for your applications with little more than a few configuration steps. That comes with a little asterisk because it can be difficult to any sort of distributed failover, can be difficult to configure. But I encourage you to look into this to see if it's an option for you. Having said all that, I want to talk about my dream infrastructure because I think we're really close to it here with Elixir. What I really want, at Seneca, for example, we have a lot of legacy systems that are on, they're not legacy, they're in use, but they're on legacy languages. We have a lot of systems that we need to keep running, but I would really like to be able to have the power of OTP supervision structure over even third party processes. And I think this could be just absolutely incredible. I know I was talking with the cargo sense guys about what they're doing and how they're starting to see the power of OTP releases and kind of questioning their decision of looking at Docker as they're moved. Because I actually think, done right, you could build a complete deployment infrastructure configuration management system on top of OTP that would blow your mind away. I think that ports can be used to get a lot of this out of it. I know that they can be used to manage third party processes and restart them when they die. And so I'd really love to see somebody take an attempt at building the supervision tree that sort of mimics, you're not gonna get all that, but sort of mimics the supervisor structure as it sits today. I'm gonna basically take all the hard questions and pass them off to James Smith who's gonna be giving a talk later today on interoperability. We kind of went back and forth on this and he's gonna be the expert for how to do this. But I'm gonna go ahead and say that the first person to build this will have one of the Phoenix-like apps in the elixir ecosystem, if it's done right. So kind of take it way, way out there. I'm not sure how many people have seen this demo, but this is essentially an Erlang VM written on top of, as a unicolonel for a hypervisor. Oh, that's somebody out there. And what it does is it basically spins up a complete hypervisor VM for every request.  And sort of I was thinking about my dream and I thought, man, what if you could just get rid of the OS altogether and you could run an OTP infrastructure on top of a hypervisor, spin it up, scale it up and down with new nodes that with self-healing do to failover like that. Then I think you're competing with like Kubernetes or something like that, which gets really exciting. So yeah, somebody get to it. Finally, I just want to recap real quickly. OTP is about awesome implementations of common design patterns. Look to it anytime you're looking for something that you have a suspicion somebody else has had to tackle before, which is probably most things. We've got robust ephemeral storage options here. And if you need something a little bit more than ephemeral storage, check out Dets as well. So Dets is basically a disk version of ETS that you can use to flush ETS tables to disk every once in a while. It's very robust in the use cases that it was designed for but it comes with a lot of caveats. So just check it out if it interests you. We have a really powerful deployment story. I think the most powerful deployment story of any language, even more powerful than Go, in my opinion. And Go is pretty hard to beat given how self-contained it is. But with the monitoring and fault tolerance we're talking about, I think it blows it out of the water. And lastly, when you're rolling with OTP you very quickly figure out all the other platforms in your stack end up as the failure points. In fact, it's almost depressing because you want to be writing more elixir but it works, it just works. And this was another thing that Ben and Bruce for Carcassense were telling me is they were like, yeah, we got all this OTP stuff going and then it ended up being the Docker daemon that we had to watch all the time because that was basically where the failure abstraction went. And I think that's incredible. I think it's really exciting. So yeah, that's the end of the talk.


Hello friends, I am Sanjay Gupta. In this video, I am going to demonstrate you how you can extend an interface into another in Java. Before starting, you can note my information. You can subscribe my YouTube channel by clicking on the link which is available at the bottom right corner of this video. You can download my app Techimage that is available on Google Play. You can connect with me by following other details which are available in front of you. Now coming onto the topic, here I will be writing some instructions which will demonstrate you how you can extend an interface into another. So first I am implementing an interface whose name is A. Here I am declaring a method F1. Now another interface is B which extends interface A and inside this I am declaring second method that is F2. So you can see that interface A has extended into interface B. So interface B right now contains two method declarations that are F1 and F2. F1 belongs to interface A and F2 belongs to interface B. Now if you want to use both the methods into a single class, then you can just implement interface B into class C. So now class C has to define definitions of both F1 and F2 because it has implemented interface B. So first of all I am defining definition for F1 method. This is definition of F1 method. Now I am defining F2 method. So you can see that class C is defining definitions for F1 and F2 both because it has implemented interface B. This way you can implement more than one interfaces in a class. So first inherit more than one interfaces and then implement last one interface into a class so that you can contain declarations of all the methods into a single class. Now I am implementing test class inside this main method. Now inside main method I am creating object of C class which is first calling F1 method and then it is calling F2 method. Now I am executing this code. You can see the output. Method F1 and method F2 both has been displayed on console. So friends this way you can inherit one interface into another and then you can implement a single interface into a class and then you can create object of that class so that you can call all the methods which are defined by you. So this is simple demonstration how you can extend one interface into another. You can implement this at your own so that you can understand the concept well. If you want to connect with me you can note these details which are available. Do subscribe my YouTube channel so that you can watch other programming related videos. Thank you for watching this video.


Hello and welcome to the session. This is Professor Farhad in which we would look at CPA exam questions that deal specifically with ethics On the auditing section of the CPA exam This topic is also covered in an auditing course as always I would like to remind you to connect with me on LinkedIn if you haven't done so YouTube is where you would need to subscribe. I have 1700 plus accounting auditing tax finance as well as Excel tutorial if you like my lectures, please like them Share them subscribe to my YouTube if they benefit you It means they might benefit other people share the wealth connect with me on Instagram on my website farhadlectures.com You have additional courses and supplemental material to pass your CPA exam For example today, we're looking at ethics if you want to learn more about ethics check out my auditing course Where I talk about this topic in details. Also, I have supplementary material To help you add 10 to 15 points to your CPA exam So you can put it behind you and pass the exam So let's take a look at the first question according to the rule one-on-one of the AI CPA code of professional conduct Independence will be impaired if a firm does which of the following Independence is very important for auditors. So you want to make sure, you know the rules When does when is your end? When is your independence is impaired? It means you lost your independence. It's mean you lost your credibility as far as the audit is concerned. So under what circumstances? your independence is concerned is compromised Or impaired one report to the board on behalf of management. Well, here's what you need to know about independence Well, guess what? You cannot be appearing or you cannot perform any operational or Financial decision on behalf of management. Here's what's happening here. You report to the board of directors on behalf of management That's on behalf of management. You're doing the management work. That's it. That's an operational thing So one will definitely impair your independence. So we keep a we keep C. We keep D We can take out B because B does not have one to Makes operational but not financial decision. No, no, no, it's both operational and Financial you cannot make so to would also impair your independence if two will impair your independence then One is out Because it doesn't include two so what we are left with is We just have to find out if three it does impair or it does not impair your independence So the answer is C or D performs non attest services for an audit client. Can you perform? non attest Services, what's a non attest services? Let's assume it's tax. Can you perform tax services? Well under certain circumstances you can you might have to get the pre approval of the from the audit committee But you can do Non attest services without compromising your independence. Therefore three does not Does not necessarily impair your independence. Therefore the answer will be One in two the answer will be D because three is does doesn't impair your independence. Okay, and Remember you have to be very careful for three the non attest function cannot involve any operational or financial Decision and what happened under those non attest services? Usually the board of directors or the audit committee usually the audit committee will have to approve it would have to approve it But it's not prohibited under certain circumstances. It is allowed The first three principles of the AI CPA code of professional conduct are responsibility Public interest and what's the third one? It's basically this is a Memory a memory memory memory issue. Is it independence? Is it objectivity? Is it integrity? Where does it do care? They're all part of the of the code of conduct, but which one? The first three and the first three are responsibility public interest And integrity basically you have to maintain the public confidence you have to perform your responsibilities as Professional person as an auditor with the highest sense of integrity notice integrity integrity means doing the right thing Doing what's right? Okay, independence and objectivity. They're also part of the code of conduct But that's part four and do care as part five. So they're all part of the Of the AI CPA code of conduct, which is something you have to be familiar with and this is what I talk about in my On my website farhatlectures.com. I explain this topic to help you understand Plus your CPA course will help you do that as well But it's something that you need to be familiar with before you set for the exam According to the AI CPA and the PCA OB standard Which of the following loans in the amount of 20,000 from a financial institution audit client to a CPA would and would impair Independence again independence is something very important. So that's why I have you know, couple questions about this a Cash advance of 20,000 Collateralized by money market deposit in the same financial institution of 27,000 so simply put they gave you $20,000, but you already have at that bank account The cash deposit of 27,000 that is so the loan is collateral eyes. Can you do that and the answer is yes It doesn't impair your independence because you have the collateral against that money. So a is out once a is out D is out because the all of the above. So now you're down to 50 50 B auto loan of 20,000 from a financial institution or the client made under normal lending policies Can you do that if you're auditing a comp if you're auditing the financial institution? Could you still get an auto loan under normal lending policies? Yes Not a problem as long as they are not treating you differently Usually the auto loan the loan usually the car usually is a collateral too. So that's not a big deal That's also out. So by process of elimination C is the answer But let's take a look at C cash advance same thing as a from a financial institution of 20,000 to be repaid within 10 10 days and here the amount is a problem cash advance of 20,000 will would impair your independence 10,000 you would have been fine. You would have been fine. So it has to be lower than 10,000. Okay, so you just have to memorize this that it has to be lower than 10,000 Therefore C will and will impair your independence as an auditor Let's take a look at this question, which of the following bodies ordinarily would not have Would not have the authority would not they don't have the authority to do what? To suspend or revoke your CPA license because eventually you're gonna get the license to practice public accounting No, my question to you is this who grants you the license who grants you the license the state some Jurisdiction under your state. So let's take a look at this one a state CPA society So here you have to be very careful. I just said a state and this answer has the word state. So Would not have the authority you'd say they would have the authority because it's a state Well, you have to be very careful those state CPA society like for example, I'm a part of PI CPA the Pennsylvania Institute of Certified Public Accountant. That's a that's a state CPA society That's basically a social organization. It promotes professional Professional networking it will help me get my CPE credits to maintain my license We have gathering we have committees But it doesn't it doesn't have the authority to revoke or suspend my license So the CPA society don't have that authority, which is that's what they're asking Therefore a is a potential answer. C is a potential answer B and D are out because they're asking us which of them cannot do it cannot do it the state the CPA State society can do it. Now what I suggest you do since we're talking about this with whatever state you are in So if you are in New York, New York, CPA, if you are in California, CA CPA Join those organization even before becoming a CPA. They do have a Student student chapter. So make sure you join them. This is where you go and you meet actual CPAs your network if you're looking for a job you grow your professional network and you get to know people and They will tell you what they're looking for in future CPAs and you would learn about the industry as well So I strongly suggest you check out your state CPA society, which is I'm part of the PA PI CPA So they can do that too AI CPA so rather than Pennsylvania. This is the American AI CPA Do they have the authority to revoke your license if the answer is yes, then that's an answer if the answer is no I'm sorry if the answer is yes, they can that's not the answer if the answer is no, then two is a correct answer Can they revoke so what does the what does the AI CPA do for one thing? You need to know they write your CPA exam. Okay, that's one thing that they do They also conduct hearing in case you violate the AI CPA code of professional conduct now This sounding like they can suspend or revoke your license and the answer they cannot they can hold the hearing kick you out of the AI CPA as a member if they want to but they cannot Suspend or revoke your CPA license. They could make a recommendation to someone to do so But they can do it the I CPA cannot revoke your license to practice They can kick you out of the organization, but that's not suspending your license. It's also a professional organization Also, they do have a student addition. I strongly suggest you join that as well. So two is also a correct answer Why because they can those two cannot cannot cannot provoke your license. Okay So obviously we have the last one So two so basically Two is the answer. We don't have one two three. It seems it's a but let's just make sure A state board of accountancy and the answer is yes Remember when you apply for your CPA when you apply for your CPA you apply under state jurisdiction Therefore the state itself you apply with the state board of accountancy of a particular jurisdiction Well, if they grant you the license they can take it away from you. Therefore the state board of accountancy Has the has that power therefore the first two those two don't have that power in the answer Which one don't have the power it's one and two if they ask if the question asks which one has the power Three has the power. So you have to be very careful Don't have the power and on the CPA exam. You don't want to miss a question an easy question like this one Let's take a look at this question a CPA Is not allowed to have a fee contingent upon results in which of the following engagement What is a fee fee contingent basically painy based on performance? That's basically what a fee contingent is and here is they're asking us which one you cannot you cannot have that contingency thing, okay Well, let's take a look at let's take a look at the first answer Examination of perspective. First of all, let's let's let's in general you want to know the rules in general you cannot do an audit And say you a la well, I'll give you a pay me based on my audit opinion. Hopefully, you know this you can't do that Same thing with reviews So audit and reviews because one is one is a positive one is a negative assurance. You can you can you can't so audit and reviews I'm telling you if they appear anywhere in the Question you can't do that. Okay Also, uh, well, we'll talk about this. Okay, so I just want to make sure you know this right away One examination of perspective financial statement. Also, that's prohibited clearly prohibited. You cannot examine Mean perspective. It means future financial statements What if financial statements and get a contingency because you might biased your opinion therefore one is deaf Would is not allowed. So one is not allowed. We keep a we keep c we keep d we can take out b Okay, because one is not allowed Review of historical financial statements. I told you reviews. You have to be independent in a review Okay, so we need one and two so One and three is out because two So we're still now between a and d Three filing an original tax return form 1040. Well, can you file a tax return? Original tax here. We have to we have to be very careful here. It's an original tax It's an original tax return. Can you file an original tax return and tell the client? Look, just pay me based on the refund I can get you and the answer you can't do that because now you have every incentive to get them the highest refund And that may push make you push the envelope and lose your integrity Because your fee is based on that original return. Therefore, you can't have that as well We can't have that as well. So for all three you cannot you cannot have a fee contingent Now you have to be very careful here because the language is important now What happened if you Are examining if you are helping them You or you or you are represent representing the client On a previously filed tax return being audited by the IRS. So somebody filed the tax return originally It's being audited by the IRS. They hired you to represent them. Can you charge? Can you charge a fee if you're representing them? And the answer is yes Remember if you are representing them on a previously filed return not original original is out That's being audited by the IRS. You tell them look, I will help you Now I'm gonna have to fight it hand-to-hand combat with the IRS Whatever I can get you I'm gonna get I'm gonna get a piece of it because now what's happening You're doing the work and the eye somebody at the IRS is questioning everything that you're doing So now you have every incentive to work on behalf of your client and based on that Refound or based on the lower tax bill that the IRS will send you're gonna you're gonna get a portion of it You have the right to do so but not based on the original return And if it was rather than a review if this was a compilation Okay, remember if it's a compilation of financial statement And they are expected to be used by by a third party And you let them know that you lack independence. That's okay So compilation as long as you disclose in the compilation that you lack independence and it's being used by a third party You can charge a contingent fee but not with a review not with an audit not with the original tax return Not with an examination of prospective financial statements very important to know these rules again What I do I'm gonna I'm gonna suggest I'm gonna invite you To go to my auditing course on my website farhatlectures.com If you want to learn more about this topic as well as many other topics whether it's an auditing advanced accounting governmental intermediate You name it finance courses Additional resources for your CPA exam.  Take it seriously study hard Good luck and stay safe if we're still going through this coronavirus


Zoom recording. Alrighty, good morning, good afternoon, good evening. Thanks for joining the Jenkins Advocacy Outreach SIG. Today is February 22nd. So on the agenda, I have GSAC 2024 Jenkins Award and the next scale that Mark and I are gonna be at. Is there anything else that we should add to the agenda? Yes, I'd like to add the conclusion of the Contributors Summit in Brussels. Do you, we can start with that, John Mark, if that's okay with you? Yeah, no problem. Yeah. Okay, so there are a couple of information that need to be said. So first it was a successful one if people didn't hear it already. Good attendance, very good stuff discussed and it was a great moment being together. We are working and the we is more directed to Kevin on a summary blog post to explain what happened and to maybe get more people interested to attend to a next edition. Yeah, thanks for that, Kevin. The third point is that I secured, bribed with chocolate, the very kind sponsor for the meeting room we had prior to FOSDEM so that if we want, we can do either a Contributors Summit or a meetup or just a social event pre FOSDEM in that room. So we have, it's for free and we just need to confirm that we want a room in October. Although I will be busy with moving to another country and getting into my retiree shoes at that moment, I will continue to handle that and with you here. So if we want to organize something, I have the contacts and it's a good excuse for me to say hello in Brussels and to come back. So I'll continue if interested to look after that event. It could also be great if you introduced me to the lady there, John Mark, and then I could have it in my Rolodex and reach out to her and follow up when we get close to October. Sure, yeah. I'm counting on you to keep me in the loop. We'll keep in touch also after the summer. Okay, sounds good. So that, well, I will be a community member then and just you know I'm ready to help with that. So let me know. Thank you. This is all for Contributor. Awesome. And then, so for GSOC 2024, as you saw, we are accepted into Google Summer of Code. Last week we did a part one project idea overview where we covered five project ideas, mainly a hi Bruno. So this is mainly for Bruno and John Mark. I'm thinking of scheduling the next one for next Tuesday at the same time, which is 4pm UTC. I did check with Alex Brandes and he's going to be available and talk about his project idea. Will you, will these, will this date work for you both? Just checking. Yeah. For me, it's all okay. Yeah, and I think I heard Bruno say something. Yeah, I think I said fine with me. Okay. Okay. And then I'll follow up with Chris offline after the meeting. We're ready. And then project idea list is currently updated and current. Thank you, Chris, for that. Let me see what else and then I will communicate with all mentors to be keep an eye out for to help review and provide feedback for draft proposals starting now until March 18th because March 18th is when application begins. It's going to close on the 2nd of April. So we need to review those proposal drafts and provide feedback. And then ranking is due from us on April 24th. Maybe a note. I don't know if it needs to be written down here. I'm working on two drafts on Jenkins IO. One is the update of the Jumbotron. And the other one is the blog post to announce the selection and to give some hints. So I need some, some eyes there. I just started it. Yeah. So I think we need to update some stuff. So yeah, I can all work on this with you as well. John Mark after this call. Cause I know it's late for you. So I can take it over. Still to have an hour. Okay. Yeah. And I was planning on reviewing it as well, John Mark, cause I saw the pull request and everything come through just before the meeting. So yeah. Now where I would need Alyssa and Kevin is that this is just copying the two last year's announcements. Yeah. So a little bit rubber stamp. Yeah. So if we could add some flowers to it. I will. Yeah. There's some updating we need to do. So definitely. I'll double check the data in the picture. Got it. Yep. I will do that. Anything else that I'm missing for GSOC this year. We, well, yeah. All mentors need to register on. The Google summer of code side. Yeah. So a couple of things too. On the technical side. And I don't know if you're, you're going to. To do an office hour or not. This I leave to you. I know I like office hours. Oh yeah. Yeah. We will definitely need to do that. So you mean. Stretching. Here. Yeah. To answer questions. For the people that are competing for the proposals. Then we can discuss. Once. The contributors are selected. If there it's necessary. Now I did it that way because I like doing that way, but choose your. Your way of doing knowing that for Chris, it's very late. Yeah. I know. Can be heavy. So just pointing that you have to discuss if you're going to do it. Okay. I'll take a look at what we did last year and then. And plan for it. But I think the office hours. Help. I think last year we did. Was it weekly? Yeah. We run it weekly. Okay. All right. I shall look into that. Anything else before we move on. No. Okay. The Jenkins award. So. The nominations are closed. Thank you, Bruno. Sorry. Thank you, Kevin and. Mark for adding the. The nominations and. Wanted to also say congratulations to Chris for his. For their nomination. And so now it's time to, for us to cast our vote. So we can do. Voting in for the Jenkins awards as well as the CDF award, because I know that Kevin has a nomination over there as well. So congratulations, Kevin. So don't forget to hop over to CDF awards and nominate. How many votes for Kevin? How do you vote? Can you maybe remind us that. So. You would, we would put, let me see if I can link. To here. Can you still see my screen? Yep. Okay. So I'm moving over to, I'm over to GitHub. So the way we vote is add a thumbs up. Okay. Yeah. So it's a way we want it to be transparent with the nomination, the voting, that's all it should take seconds. One vote or you can vote. Just as whatever that you, your heart desires, because I think at the end of the day, we would look at the number, the highest number for each category. Okay. I think everybody is a winner. To be honest, and I could not choose one, but at the end of the day, the highest number gets the trophy. Yeah. If you will. If you have a communication, maybe just give a hint that this is a technique. Yeah. As Kevin said, there is documentation explaining. Yeah, I should read the documentation. Yes, but I will know that's a good point because I will send out a tweet because voting starts today. Until March 22nd. Okay. How can we vote for getting on the CDF awards? So you go to the, here we go. Glad I put this link here. So I am showing the CDF site right now, Bruno. And so if let's say, Kevin is under documentary. So I click on that and then. Oh, it's a very same way. You put this up and you're done. Right. Right. There is an issue per award. Got it. Thank you. Yeah. We try not to do anything different from what CDF does. You're nominated to Bruno. Yes. I know. Yeah. Thank you so much. And I just want to make sure that we can have the same problem of not wanting to talk about ourselves like that. So yeah. I, yeah, I nominated Bruno because I think Bruno is great and deserves the nomination in no itself. But yeah. Yeah. I'm not going to say the same for myself though. So, but yeah, Bruno. All good. We will keep that offline. But we definitely think that both of you. We all contribute a lot to it. Yeah, so just want to throw that out there that you can you can vote for both Jenkins Award and the CDF Award. And then Mark and I will be at scale, which is in Southern California in Los Angeles. March 14 to the 17th, that's going to be our in-person event that we're there every year. So we will have a booth there that thanks to scale, they donated to us. It's a 10 by 10 booth space, so which is quite decent for us. So glad to be there again this year for free. And then I will be on vacation April 3 to the 19th. But I should be able to take care of stuff before I go. And then I'll reach out to the appropriate folks to help me keep the ball rolling while I'm out because that's going to be a period where grading is going to take place. And selection is going to take place. But yeah, it's important time, but I will be back on the 19th. The 19th is a Friday, so I'll be back the Monday after that. So I should be able to make the deadline to submit the ranking into the GSOC portal so that we are on schedule. Okay. Anything else that we need to discuss before we end? I just wanted to highlight Alyssa, we published Tim Jacob's contributor spotlight yesterday. I just put the link in the chat so we have it here but Tim Jacob's contributor spotlight was published yesterday, same day as the latest release. So I wanted to make sure that's not lost in the shuffle of everything else going on. Worth mentioning. Good point. Yeah, but thanks a lot for that, Kevin. I learned a few things about Jim, by the way, so that's pretty useful. You know, you discover the real person behind the committer. That's great work. Thank you. Yeah. Thank you, Bruno. I enjoy reading all these stories actually. So highly recommend. And I think Kevin likes to do these interviews and they're very useful. I have found a lot of common ground with folks that I never thought I would. And I think, especially with the contributor summit now and kind of the rear view at this point. It's a really nice supplement to that where I was able to meet everyone have the contributor summit experience and now this is the other side of it that nice background that even in the nicest circumstances you might not get. It's just really great to have that that side of the contributors and the community being shown. Yeah. Yeah, I hope we can keep adding more people to this list because building up the site. I think it's awesome. Definitely. Alrighty. That's it. Good evening. Have a good day. Thank you very much. Thank you. Bye bye everybody.


books with two different different play styles and they didn't synergize And I wonder if that's what's going to happen is we have this new version of a book Which is our vampire type book and then what is left is our necromancy based book and it's through that lens You've got manfred and nefarada who are more vampire Over onto the soul blight vampire counts book And on the other side, which is your necromancy side is your negash Is your arcane is your skelly's your zombies your reanimates You know your um your morgasts and it's splitting those two out and making those two very distinct um If I think of a play style of maybe what vampire this new vampire counts might look like I'm gonna get in trouble here, but I think of brittonia I think of fast cavalry shock troops some basic peasants maybe to to be there to hold the line or to be a screen And these vampires just running up the board and just trying to get into your face in a formation as quick as possible Whether they have a trebuchet or not it's up to you, but um That's kind of how I see maybe vampire then the new vampire is working But maybe it's because I'm fixated on soul blight And the blood knights maybe not necessarily what might also come Like like pirates Yeah, like if we have pirates or something some type of pirates or some ethereal type thing then you get You know deep striking sideboarding uh That type of thing But for me if I think about just putting my soul blight on the table as they currently stand It does feel brittonian-esque without the different levels of you know Ground knights and lady the lake type stuff and you know leon leon karab You know like that to me would be sweet in a uh a vampire army Okay So as I'm thinking about this and how I I'm wanting to do like how I would want to design this army, right? I think of In my mind I think about how successful like the the the soul blight that you're both describing an elite fast hard hitting Sort of monster monster cab whatever we want to call them, you know elite force big guy army We all know those have been nothing but successful in aos And that the template for successful armies is built on the back of armies that look just like this units of five three or four wound models That go fast and hit pretty hard and are moderately defensive boy. That is how you win aos Yep And uh and and obviously all of this that I've been saying is sarcasm Okay, of course because those are in fact the worst armies Every one of them down the board Okay So like it's good. You got to do more than that right The the the sort of elite army that you're talking about that can win That's called iron jaws Yeah, right, right where you've got we've got five wound pigs Racing across the board at blinding speeds hitting like Mack trucks You know what? I mean just with some with a with a brick on the pedal Okay, right backed up by uh You know backed up by like a mega boss on maw crusher doing 40 wounds when he smashes into something Right, which I could see with blood knights and zombie dragons We've lost us Yeah, sure So like if you they would my point was to set the offensive level, right? I would also mention that that army does have a teleport. That's quite useful Um that they can sometimes cast once in a while sure and And and and also has a very scary Anvil unit that can that can do a decent amount of damage in art books, right now Okay, so imagine that so pigs that are on a three up save in self-heal Sure, that's like it. Yes, sure uh The trick is the unit you're like the unit you're describing Is different than what pigs are right pigs are are cheap It's it's a two-to-one ratio I get 30 wounds of pigs for 15 wounds of blood knights in the game right now. I mean basically are they there in God or are they Yeah, yeah, right so The problem is if you want to make these vampires as like As as offensive as as it feels like they need to be and as Defensive as they feels like they need to be and regenerating and whatever they're baron guard then they're baron guard and they're bad Okay, because the only place baron guard work is in Knights of the empty throne where they're also heroes In which they're actually pretty Yes, yes. Yes. Yes. See now we're now we're getting somewhere Tom Okay One this is why we need the other units because we need like some kind of art boy thing Right, which I'm okay with there being skeletons or like bats or wolf packs or all of the things that you would expect I don't just eat chaff. I need an anvil okay and so like The only way we're getting around that is if the chaff is so regenerating chaff and that's how sorry that it becomes an anvil Right, then you then you've got to turn the regeneration up to anvil levels And I would also point out that like blood knights of now aren't even close in the in the realm of speed to something like a pig Right. I mean it's not even in the same universe of speed Well, not right now, but it's not like they're going to stick the same scroll That's my point. You'd have to that's what I'm saying like you'd have to turn them up that far, right? the the reason this can work so What I'm saying is If you're if it ends up being like some kind of soul blight focused thing all right then They can't have Just the super hyper elite 300 points for a unit Vampires unless yes, you make them varanguard and you learn from that and basically you make them heroes Hmm, right if they're like hero units Maybe you you have like two types of blood knights like a hero unit of blood knights a normal unit of blood knights or whatever Right, and if you if you went down that route you could tap into 40k coherency where you have maybe They they can be within three inches of each other instead of one There's a lot of different things you could play around with going down that way. Sure. Sure. Absolutely and Because otherwise this army is just going to have fundamental challenges. We can't keep handing out the yoga ruled everybody, right? So So like we we've got to have some other solution there right slaves to darkness get away with chaos knights because they've also got packs of 40 dumb marauders Charging around at lightning speed getting hyper synergistically buffed and then Murdering things and then being fine and standing there and being their capture guys right Meanwhile, and then you're like it's a very very synergistic army Whereas Which is innately more powerful than shoving all that power into the unit on the scroll Yeah, but like I think about like so what were the test rules? Let's let's tease this out What were the test rules for the vampire? um The vampire the sole blight allegiance in the um In the uh ghb Like two years ago All right, it I don't know it's the bloodline stuff right and be the blood dragons and all the rest of that crap Right, and it gave your for example. It made all your knights like increased movement Move and fly. I think was what it was off top made if you went if you went with that build Yeah, you got dragon warrior, which allows you to reroll hit rolls of one Uh, you've got the lords of night, which yeah, there's there's four different ones where swift deck necromancy are lords of night That might be what we're looking at Let me let me venture to say and so like depending on where you spot in Depends on what happened to your vampires and how they get buffed and how they change Sure Yeah, I think I think bloodlines um something that people if it wasn't in the book I think people would be disappointed for anyone who Is expecting that type of thing because it just allows you to have that little minor tweak to your to your thing I mean if they do a soul play focused book in any way if there's vampires in any way If that's what this ends up being as opposed to a broader thing and even if it is a broader thing Which i'm arguing you'd have two vampiric type factions. Okay One focused on combat and one focused on magic probably or whatever right right in the book that i'm envisioning right, uh There would you would still have uh like You're still gonna need to have all this other stuff And you know people have said what about vampires on foot or thralls. Sure I mean, I don't know what their new sculpts could be could they do vampires on foot sure I guess but again that kind of like stormcast elite infantry is not great Like it's problematic infantry historically that type of thing is not one games No, like the problem is it's in a bad design space right now because they don't it's it's sort of the worst of both worlds Right, it doesn't have the bodies and it doesn't tend to actually pay for its differential Like they're not twice as good as the one guy Yeah, in general That's the problem So you're not actually getting you're getting 1.5 The guy out of what what everybody else is just getting two guys for right Now could they correct that sure Uh Justin says do we know for sure we're getting a vampire faction late to this train and i'm very excited We are uh We believe there is like yes, there is a new death faction coming. We are 99.9 percent sure of that based on like all of the rumor engines that thing they said in the video The spoiler images we've seen all of that Right, right, right. So is it going to be completely vampire focused? That's a subject of some argument Although I think everybody here believes there will be new blood knights and probably some kind of vampire because vampires are just the leadership of the thing They're the most interesting part of it. So it's probably going to be some major component of it Either the whole book or a major component of it Right and with the the seemingly vampire focused Pirate stuff. Yeah, like what we've had with the warband like it just seems like that's the direction they're leaning Yeah So my Ultimate argument is that I think if you did The soul blight thing the soul blight focus thing the challenge with it is You have a much more difficult time unless it's like a lot of soul blight and friends With the army if it's just sort of vampire stuff and only some of their very weak chaff that they bring around with them It's going to be a weird army for them to right play balance rules around etc If it's the this is why I said my belief of it is that yeah, tom I'm kind of talking about like legions 2.0 But through the lens of like vampires heading this stuff up being the the big the big ballers in charge Which I I don't I don't disagree, but I still think that um It feels like you're minimizing like I I really think that uh How do I want to say this I think that we will have a vampire-centric book coming this spring And I think that it will have Chaff that's not vampires. Okay But I don't think that will be a major part of the book In any way shape or form and I think that ultimately the answer to legions of negash For units like, uh, the the mortis engine Sure For units like the corpse cart and zombies. I don't think that's in this book I think those war schools are in limbo until we get a final release. That's what I'm gonna say sure uh Yeah, I mean We'll see but my point is I in my mind the way that That this would win is by again the the reason I like the all-in book is because it gives you the most variants to your build types If it looks more like a broader number if it looks more like a broader force They can build these this this s2d kind of thing I'm trotting out and have like this is your more melee focused one and this is your more caster one And this is your more monstrous leader focused one or or whatever right Whatever the the things that you see as being the archetypical builds. It gives them more space to do that What what I'll say is this Um fleshy records did a whole lot with very little Yeah, sure. Sure. You're not wrong Um By might be broke as a joke for for a lot of their initial creation But no they have like what four temples ones all the foot guys ones all the flyers Ones all the big ghoul guys and ones all the big monsters And in simplest terms sure I mean like that's and so and with a handful of kits as well And so I think that realistically you could have a soul blight book with that type of variability With not too many kits reusing what we currently have and a handful releases Dire wolves dire wolves far geist Your blood knights if you had two varieties of blood knights potentially Vamp Lord zombie dragon, let's say you had vaude dry nefarada manfred Um, let's say that there is a new hero or maybe let's say there's a new battle line That could be up to 10 Before you bring in skeletons or zombies Right, and then if they really wanted to I would don't think zombies are going to be in here because again I don't think vampires don't let squishy things like or like that's not what they do Like they drain squishy things as as like as a nation. So they they have lots of bones left over They don't have a lot of meat left over And so I think by the way covens where we've got the covens throwing with the the female vampires on top Yeah, yeah, yeah and the same way there's two builds of that. There's both the palanquin and of course the palanquin as well Yeah, yeah, yeah, and so I think that what you end up with is you end up with Um an updated vampire line with a handful of new kits And I actually honestly think that both the skeletons and grave grave guard could come into the new Into the new book Um sure I mean by including them you naturally take away from the soul of light nature of it if the if If they're not synergistic in any way in or only in very minimal ways Well, I think that they have the key word. I think key words will be based on like who whatever the sub factions are sure And like they are inherently the minions and chaff like I think that that's that's how this is going to play out You have them in it and maybe like maybe one is more skeleton focused maybe the new lamnia Like faction underneath Nefrada is more skeleton focused and the And the other one Under more man for it is man for don't even Matt. Yeah bat and uh Uh in dire will Yeah, I mean my answer is I want to see them go a direction where the armies feel like they're doing unique things Not just like they're made of these models because this is kind of the models Well, and I think it would go both like I think it could like I think they're going to be doing unique things And I think they like that will dictate how you play What and what I mean by that is like I can imagine the night being a lot more ambushy a lot more mobility a lot more surprise Where I could imagine the new lamnia, you know Being more rank and flank blocks and and all that stuff I don't know. I mean like I could see the again because skeletons are going to fight differently than bats and wolves Yeah, here's my argument. Okay. Here's you want it. You want to see like I think Again, I'll trot out my vision of this right, which is sort of like Yes, my to answer my wife. Yes, I have mentioned bone daddies multiple times. Uh at any rate the um Here is my argument and then let's bring this to a close and I'll let you guys have some final say But here's here's my argument This is going to be a legions to Of sorts with kits gone and the way you're going to build it and the way that it'll play Is such that vampires will still be the leaders of your army and the types of vampires you use in charge Will define because you just mentioned all these right all these different vampire forces that are out there And a lot of them are different types of heroes So a vor dry warrior a vor dry manfred warrior type vampire faction is going to like the bloodlines manifest in in this kind of a way Right through these different things right, but it still contains everything else and those still have synergists synergies synergies Through that it is legions and the gosh.  It's the remake of the thing We're not the only things we're cutting out are literally the few old kits that are just too old to keep making okay, and The vampires are for the most part the leadership Right and that's how it gets defined One as a play style and I think you're going to see the new units like I mentioned you want an art boys equivalent You want to know you want to pick for that? Golems or werewolves? Sure You want a new harrying flying fast attack unit that like actually gets in there and does some work That's like your gargoyles or or your new bats or whatever Dire bats or whatever they want to call yeah, yeah, right That's where you that's where you build these new things That's what those become and they become and they're More or less synergistic with the fat with the individual build and what it's trying to do I'll allow the way we've seen them steer into sub factions recently That's how you build this and you stay in the gothic war you my point is Just restricting it to a soul blight tome is too thin because then you've got to explain these 10 15 20 other kits You allowed in Because you're going to have to That aren't just vampires Okay And it's like if it's just like soul blight and friends on the cover if it's soul blight friendship is magic Right Then like that just doesn't feel as cool. It's it's not telling the right story. That's not what this book is It's unless unless it's vampire kingdoms Hey sure Sure, okay, fair enough. All right, final thoughts from you guys Tom give me a final thoughts and we'll give coach the last word and then we'll call it a night Yeah, um, I think that uh, I think that we uh, there's a lot of neat There's a lot of good opportunities coming up for death letters. That's what I want to say I think that uh, I think that vampires are Going to be the center of whatever is coming whether that is primarily a soul blight Majority vampire army or whether it is a vampire led army. I think both of those are perfectly like defensible calls um I think that um, and I think they're going to be sweet kits I definitely agree with that No matter what I think we can we can all agree that whatever these new kids are we're getting are going to be super sweet And I am still hoping that whatever vampire new stuff we get. I want to see some vampire. It's coach So we've talked a lot. We've talked a lot about some different things If I think about the two topics the first one we had was fixing legions of negash And I think we've we've come up some really good ideas removing the shackles That was age of sigma one to bring them in line with age of sigma two whether it is slaves to darkness cities of sigma ring it uh, whether it is removing the um, the restrictions on things like gravesites and the incentives to build certain ways based on More talks and I think we've brought up some really cool ideas that I'd be really happy to see From what I'm expecting from soul blight. What it let's let's call it soul blight or vampire council vampire. It's whatever it is I tend to agree that I'm not convinced that there's going to be enough kits released to make it a full faction My my gut feeling is it's more like a legion of grief Or a harcuron or some type of Bolt on that will eventually kind of see a revisited legions in the gush Within age of sigma three. I think it's too early to revisit and fix legions now In saying all of that. I I think there's some cool stuff happening. I agree It's a good time to view to be a vampire or just a death player The other idea that we haven't really spoken about and thank you very much to my homie Vinny was We've seen in cities of sigma another rule that I really like which is the one in four One in four can be brought in and maybe that's the way we solve it One in four could be from legions in a gash in soul blight So that's how we bring in the skeletons the necromancers the other things while staying true to soul blight Sure, our our can's legion could have one in four from obr or something. Yeah, sure Absolutely, we know that they're allies. So one in four could be a catapult. I was going to call a screaming skull. That's how old school That I think this it's an awesome time and whatever comes It's a good time to be a death player and Because most of these books are so old Just bringing some of these new concepts that we've explored in other books It's just going to make us a great army. So dust off those models go buy with guys and kits I'm looking at my I've been watching my manford for the last three hours And I'm just like I can't wait to get manny back on the table Sure No, I'm excited that they got to be one of the last 1.0 books and now they'll probably be one of the last 2.0 books So that'll be exciting for them Hopefully the move to 3.0 is a lot smaller and less impactful. So there you go All right, gentlemen. Well, there's been a good discussion I hope we gave some good ideas there if you all out there have your own ideas Please drop them in the comments. I think there's so much room for exploration here, right? There's this There's so much untapped Things like with it you could do with all of these because there's so many scrolls and such a cool idea And so much behind this and history and tradition and blah blah blah blah What new units do you hope to see all that kind of stuff drop it down in the comments? Don't forget to hit like Uh, really appreciate everybody guys so far if you haven't already subscribed, please do so coach Thank you very much sir. Absolute pleasure to have you back on No, thank you for allowing me to discuss Death that's right A beautiful beautiful sword you've got there. All right for all of you out there Thank you so much for watching and as always We'll see you next wednesday