That's what an objection is. I don't want to do that, but I want to do this over here. And I think as agents, we've been programmed to take that and try to twist it around to where we try to close them now, you know, on handling that objection. And I think that instead, if you listen to what they're saying, they're basically telling you what they want to do. And then from that point, you say, cool, let me help you do that, right? Most people, their first year goals is really the goal that they hit realistically in their second year. Some people are like, I want to do 100,000 my first year. And you know, for most people, that's very unrealistic. People have hit that, but, and I'm not here to tell anybody they can't do anything. Like, I know a guy that did 100 deals his first year, several people that did 50 deals their first year, that stuff's unheard of. But most of the time, just generally speaking, that first year lofty goal that people make for themselves is really what their second year needs to be after they've set the foundation of knowledge and so on and so forth, right? Everything I just talked about. So realize how massively incredible of a position that you're in right now, that you are in your first year with eight deals, it is great, it's not good, it is great, it's greatness. Now it's gonna be the thing where, okay, can you actually take that to a place of greatness in your second, third, and fourth year, right? And that's gonna be up to you. And that's gonna depend on really just one thing. Are you gonna continue to prospect for new people and talk to new people on a daily basis for the next three, four, five years?  When you start living off your database, guys, your income plateaus and you'll make the same amount of money every year. And you see this a lot. You see people who do 150,000 or 250,000 and that's all they do, that's a ceiling they hit and they do that every year, year in, year out and you never see them go up to 300 or 350 or 500. And the reason is, because they quit building their database. And so if you wanna see exponential growth, you have to always be working your current database. That's why I like the weekly email that nurtures that database, but then also have a steady flow of people you've never talked to and creating those great first impressions and creating those relationships to add to. And most agents are either doing one or the other. They're nurturing their database or they're just going after new people. And the people going, the ones going after new people is like a turn and burn. They're not trying to create a relationship. They're just like, if they do a deal great, if they don't, whatever, they're not saying in touch and they're just like, it's always new people coming in and out of their business. And then some people just work their database. Those are the people that plateau their business. But when you see these people that go from like 150 to 250 to 500 to 750 to 750 for three years, and then 1.1 and stuff like that, those are people that have understood that I have to accumulate the new people that I'm talking to into something where I can nurture them where now I'm nurturing everyone I've ever talked to, but also talking to new people every day.  When you get them talking about what the backstory is behind why they're selling and when they start talking about that, you know that you got them feeling comfortable, right? And that's gonna come from tone of how you deliver that question and your entire demeanor from up to that point. And then once you get them talking about why they wanna sell, if you're actually engaging in a conversation with them about why they wanna sell and everything, kinda taking the real estate part out of the equation for a second and just focusing on them as a person and why they're trying to sell, you're gonna close so many more appointments, so many more. And then once you get through that, then pop the question about why you guys are going by owner, right?  So I think that if you kinda change your mindset a little bit around on some of those things, I think you're gonna find way more engaging conversations with your prospects and much more success. So take me to the point of what someone says when they're basically shutting you down for the appointment. When you have these discounters out there and you're firm on this 4%, you gotta understand that you are going to lose listings over that, you know? And the ones that you lose over that, you have to say in your head, I knew that was gonna happen, this is gonna happen here and there and there's really nothing you can do about that because at the end of the day, all they see is dollars, right? That's all that seller sees is dollars. You can try to, and like a lot of these coaches and brokerages, you know, they have these, you know, slick, they'll try to tell you that, you know, there's ways that you can show them the value of paying the extra 1% or 1.5% or 2% or whatever, you know? And yeah, you could, but at the end of the day, it's like all they're looking at is numbers and they see that they're paying less over here, that's what they're gonna do.  So you're gonna lose deals when it comes to that. I think when the dust settles from all this discounting and stuff, we'll see where things really stand because, you know, like the Zillow thing, for example, that just went down. You know, that was, you could see that coming a mile away.  You can only lose money on houses for so long, going into an escalating market and then what's gonna happen when you own thousands of houses in the market crashes? I think what they did was smart because they're basically saying, wait a minute, you know, if we own these 7,000 houses when the market crash, we're really gonna be in trouble. You know, if we dump them now, we're just in this much trouble, but if we wait and keep doing what we're doing, we're gonna be in this much trouble.   And they did, like, they just came out with the earnings report and they did have, they did lessen their losses a little, right? But we'll see how that plays out. It's just like, there's so much expenses and the customer service, right? When it comes to customer service, a lot of these discounters are not giving you the customer service and I think it's all gonna come back to customer service and relationship. So the number one reason why people choose a real estate agent is because they had a friend in the business, right? NAR actually did a study and it was the number one reason that they had a friend in the business with a great reputation. So at the end of the day, you know, when you're talking to these people, like for sale by owners and stuff, for the very first time and there's no relationship established, you know, you're just trying to like close an appointment and get a listing, that's a totally different situation than when you've been in the business for a long time, you've accumulated a lot of relationships, you've nurtured those relationships. These people have known you for a while, they love you and they're gonna do business with you and nobody else when you establish that kind of brand but you don't have that in the beginning, right?   If an agent has a lender that they've been working with for a while and they know does a great job for them, they're not gonna go use another lender and risk this one deal with this client to see if this lender can do a good job, it's too risky when you know that this lender is gonna really slam dunk it, you know how they operate and they know that your client's gonna have a great experience. It's the same thing.  And the biggest thing is, is be straight up with them about if you guys don't sell it within the next month or so, are you gonna list it? Do you plan on actually hiring a real estate agent and do you have a real estate agent in mind? Be very straight up with them about it. One thing I love about First Sell By Owners is I look at those as buyer leads, I'm trying to figure out where they're moving, if they already have an agent they're working with on their next wherever they're moving to, whatever their next purchase is, maybe they've already made the purchase or whatever. I wanna dig into that whole situation and dissect it out and see, okay, how can I help here, right? Are they buying something? Do they need help there? Do they just need help selling this and if they don't sell it within the next month, they're gonna possibly list it, they don't really have an agent they're gonna list it with and I need to establish this relationship. So until you dig in and really dissect the whole situation, you really don't know what direction to go in. But I would say don't be so laser focused on just closing for an appointment and closing for the listing because there could be much more opportunity there that meets the eye when you start digging in. You know what I mean? Another thing with objections are that really objections, if you really think about it, that's just your client telling you what they wanna do. It's not really like an objection, right?  This is what they're saying and layman starts, I don't wanna do that, but I wanna do this. That's what an objection is. I don't wanna do that, but I wanna do this over here. And I think as agents we've been programmed to take that and try to twist it around to where we try to close them now on handling that objection. And I think that instead, if you listen to what they're saying, they're basically telling you what they wanna do. And then from that point, you say, cool, let me help you do that, right? So


Hi, everybody. I'm here to talk about how to make firmware for microcontroller from scratch. That's not to say that you should do that normally, but rather explain a venue through which you can learn more about microcontrollers quickly. I'm a software engineer at Red Hat, and I work on the Kernel Continuous Integration Project. And I also maintain the Digiment Project, which makes drivers for graphics tablets. And in my free time, I do embed it under electronics. Our subject will be this little development kit, which is called Blue Peel, but not officially just by people. It's very cheap. And all you need is this TTL serial cable to program it. By the way, I'm going very fast because we don't have much time. And links are in yellow, so if you open the slides, you can find them on the internet. You can get all the source code and everything. So what I managed to do with this is, for example, this little car made out of Lego and parts from printers and scanners. I tried to make it with Arduino, but I burned it out quickly, and then it was expensive. So I bought this one, and it served me very well. Much cheaper, and I haven't burned one yet. Another one is extracting E-Prom from a printer just on there, an old printer. I extracted its E-Prom. Another one was present for my wife on Christmas. I built the hardware quite quickly, but it took me until next Christmas to make the software, actually. So it was a little late. And the current project is I'm making an interface for a thermal printer to connect it to an old data spectrum using this X-printer interface. It's very educating and interesting. What I'm trying to tell you here is how to program it from scratch, meaning that you don't have to use any libraries or any vendor tools, just open source software. But you will still need one library, of course, the documentation. And we can organize the documentation in a stack here, going from top to bottom, starting this board documentation from the manufacturer and elsewhere. The particular microcontroller's data sheet, the reference manual for the microcontroller family, the programming manual with some programming tricks and the routines. Then the particular course reference manual and finally the architecture reference manual for arms V7M, the architecture behind those microcontrollers. And this is about 2,500 pages, but they're all very well organized and fun to read, actually. So the blue peel is, this has the USB socket, the boot configuration jumpers reset button, the MCU itself, the system clock crystal, the real-time clock crystal, the power LED, user LED and the programming header, which we won't be using because it's the SWD interface. The microcontroller itself can run up to 72 megahertz. Maybe you can overclock it, but I haven't tried it. It has single cycle multiplication, hardware division, which is awesome. It has 128 kilobytes of flash memory, 20 kilobytes of S-RAM, and that's plenty for a microcontroller. It also has lots of general-purpose pins. Even this little package, which has, I don't know, 26 pins was capable of communicating to a parallel interface, a PROM, which needs a lot of pins.  So first thing you want to know is how to get your program in there. And if you look at the data sheet for the particular microcontroller, you can see that it has a boot loader, which is capable of programming flash memory and it's doing that by USART. And that's why we are the serial port. That's why we are using the TCL cable. And this is the particular configuration of boot pins to get it to boot from that system memory where it is located. If you look at the board documentation, we can find a particular combination there as well. It's called ISP this time. And this is the actual configuration you can deduce that from the documentation. That's how you need to put the jumpers there. Finally, we need to find out which exact pins we need to connect our serial cable to and you can take a look at another document, which is a bootloader documentation that says there that you use PA-10 for RX and PA-9 for TX. So now we're ready to connect the serial cable. We don't forget to cross out RX and RX and we can power the board from the serial cable as well, but sometimes it doesn't work so good, so you can power it from, for example, from the microUSB cable. This is how it will look connected and powered on. Now we need to find a tool which would talk to that bootloader and you can readily find it in your repositories. This is the awesome STM-2 flash, which has tons of features and very nice to use. Even though you don't have a program, you can already run this tool to just check your connection and see some basic board parameters. So people don't say it often enough and if you look further in the slides, it might look a little scary, but actually embedded is easy and fun, or unless you're paid to do it, of course. So, naturally, we'll start with blinking on LED. We'll take a look at the schematics to take a look how it is actually connected and we find what is the LED for us. And it says there that D2 is our user LED and here it is connected to PC-13, but in a kind of a quirky configuration because it's connected to power one end and the other end to the pin. And that's a little unusual, you might say, but if you look at the documentation to the pins, there's a little note down there which is saying that PC-13, our pin, could not be driven faster than two megahertz and also must not be used as a current source, for example, to drive an LED. But it doesn't say that it cannot be used as a current sink and that's why the board designer used it this way, to basically use one of the most useless pins there on the microcontroller to drive the user LED and the, you know, soldered it in. So that was very economical. So we can start sketching out our program. We need to start on reset, configure our pin for open drain output and two megahertz max speed as required. We will go in an endless loop, do a little delay and then toggle our pin, that's all we need to do. There's, of course, a little bit more setup involved. So the first thing is we need to find out how to start our scene on reset. So we take a look at the architecture reference manual and there's towards the end a little part that says that we take address of the vector table from VTOR register. We take the first four bytes to initialize this stack pointer and if you take a look further in the, for example, in the programmers manual, but it's mentioned in several places, says that we have full descending stack, that means that the stack pointer for an empty stack should point right above the stack. Further on the next four byte entry, we load that and we jump to that. So basically our vector table is first the stack pointer, then the reset address. And now we can start making our vector table. First we allocate the stack, then we put the address right above it as the first entry and then the address of the reset routine as the second entry. Now we still don't know what's our VTOR register containing at reset, where it's pointing, where is the vector table supposed to be. So we take a look there at the architecture reference manual, it says, well, it's implementation defined. So we'll take a look at the implementation and it says, yeah, it's fixed at address zero, which is fine. Great. So we take a look at the memory map. There we see the address zero and it says there is a block of memory that is aliased to flash or system memory, depending on boot pins. And that's how we get to boot from the system memory. By the way, that's where our boot loader leaves, but if you change the boot pins, the flash memory appears there instead. So the flash memory is also and naturally at zero eight all zeros. And if we take a look further, we can see where our SRAM is, our memory is at two all zeros. Now we can start writing the linker script and instruct the linker where to put all the parts of our program. We take the, first define the memory regions, we say that flash is at zero eight all zeros and it's redone and executable. And then we say there is RAM at two all zeros and it's read write and non executable. And then we start putting them in the sections. First we put the vectors in the flash, so they are first the address zero, then we put the, our code there, and then we put the read only data and finally we put our read write memory into the SRAM. And finally, again, we instruct GCC to put our vectors table into the vectors section so it ends at the start of the flash. Next we need to talk to actual peripherals and to blink the LED to control that pin. And on ARM, the peripherals are controlled using memory map to IO where basically you talk to the peripherals by reading and writing certain locations. And if you look at the memory map, there are peripherals here, all of them. And peripherals usually are in certain memory areas as pointed there in the table. So further on it doesn't say that explicitly in the documentation it's like widespread knowledge but you're supposed to normally enable your peripherals somehow, not always like Atmel microcontrollers, some of them at least, they don't require any configuration, the peripherals can work right from the start, but sometimes you need to save power. And in case of this microcontroller, you need to enable the clock. But for example, if you take Beaglebone, the SOC there, it requires enabling the clock and power and a little bit more complicated. But in our case, just the clock. So we look at the clock tree, it might look a little complicated, but it's not that difficult to figure out. And it says there further on in another part that it's by default when you give the power, the system is running from high speed internal oscillator, which is basically an RCR oscillator inside there. And it's running at about eight megahertz. And one thing it doesn't say, though, where's our GPIOC port connected so we don't know how we are supposed to, how we are supposed to enable it. But there on the system architecture diagram, we can actually find it, there it is. And it's connected via APB2 bus and through HP system bus. So now we can find the APB2 bus here and it's connected like this through APB2 prescaler, HP prescaler and clock switch. That's how the clock has been fed to our GPIOC port. Now, we didn't actually need to go and look at the clock tree but it's instructive. We could have just looked for the port C somewhere in the document, maybe. And we can find immediately that the RCC peripheral has the APB2 peripheral clock enable register there at address 18 hex and bit four controls the clock to IO port C. So now we need to find out where our RCC peripheral is. There it is and this can enable the clock to the port. So we are defined the absolute address to our register and raised the bit four now are clocked for the port C is enabled. Next we need to configure the GPIO for the open drain and the maximum speed. So normally I would go through the chapter, the whole chapter and read about the peripheral to learn about it more and then know how to, what it can do and what it cannot do. In this case I'll just run through the registers and this is quite actually simple. There are two registers for general configuration, low register and high register because there are 16 pins and four bit per each pin. Then the input data register where you read the pin state from and the output data register where you write the pin state to and there are two registers which control, like which you can control the pins differently by writing once into different parts. And finally the configuration log register which could be used to prevent damage to external hardware like by accidental misconfiguration. Finally there is the table summarizing all the possible configurations of the GPIO port. And it tells us how to configure the general purpose output open drain with these particular bits and particular speed until we can control it with the ODR register, output data register. So we will be writing the output data register and reading from it because we're toggling it and that would control the NMOS transistor connecting the pin to ground and not connecting it. So zero will be connecting it to ground and one will not be connecting it to anything. Like this opposite the usual push-pull configuration where you're alternately connected to ground or to power. So we take the configuration register high because it's been 13 and spilled over. It's address is four. These are all bits. We take the output mode, max speed two megahertz as instructed, take the open drain output, take a look at where our port C is located in memory and we're ready to configure it. There's our register address and there is like a bit too much math there but it wasn't so necessary. Try to make it clearer what's going on but I failed. Then finally we need to toggle the pin actually turn it on and off. There is our output data register at address zero C and the bit 13 controls PC 13, port C, pin 13, 13 is big, clearly enough. And there's our register and we are toggling our bit already. All we need to add is a little weight. There you go. Good but effective. So now we need to build it. The tool chain is generally available in distros. This is GCC arm non-ABI means that there is no host operating system. That's what non stands for and is enough to install. Then we saw the compiler to compile for Cortex M3 which is our SOC in some mode. This is rather redundant because it's the only mode it supports but all the GCC versions require we just compile it to object file then tell the linker to use the linker script to place the sections from the object file into right places. And then we can, that this produces the Elf binary then we can inspect our Elf binary and see that everything went where it should. And we see that vectors went precisely to the flash address zero eight all zeros and there is just eight bytes to enter spy for bytes. It's followed by the code. And finally our stack was placed in SRAM. Next we extract the flash part from the Elf binary and write it into row binary and we can actually take a look again how it turned out. So there is our stack address. 400 hex bytes into the SRAM followed by the address of the reset routine with bit zero set because it indicates thumb mode and it starts right after our stack. There it is, our code. Now we're ready to flash, that's easy enough. We tell, give the file and tell it to verify after writing and it goes quicker. And we're ready to run. But first we need to switch our jumper back from the boot loader to boot from the flash. So that's Alice to the address zero. We can take a look at the board documentation again. Set our jumper and off we go. Works. So as you could have seen, this program was very short. That's thanks to hardware designers. Tweaking it, tweaking it, tweaking the default in a way that is suitable for most basic use cases and not so basic ones. And that's what actually makes it much easier to figure all this out. Like you read the documentation but you can trust that what basic use case you're trying to do there or probably the defaults will be very good and you can check those in the register description. So this gets boring writing all those register values and addresses by hand so naturally you would want to make a library and there's many ways to do it. But that's how I did it. You basically define the layout of registers for a peripheral, define peripheral addresses and then bit meanings. And that will take quite a long way towards making them functional. So right now the microcontroller runs at eight megahertz and it's capable of running at 72. So how you can do that, you can take a look at the clock tree and figure out how you can connect the external oscillator to the system clock and that's going through this part, configuring the PLL to multiply it by nine and then waiting it to stabilize and then you switch it over the system clock from the internal oscillator to the external oscillator to the PLL that's being fed external oscillator. But there are of course some gotchas like the flash cannot keep up with the CPU at this high speed so you have to tell it to slow down the CPU about certain system clock speeds so that the CPU can actually read the instructions it's supposed to execute. And another one is that APB1 bus that has some peripherals cannot work faster than 36 megahertz, you're supposed to slow that down too. So here it is, that's the only configuration for the speed. And if you want more peripherals it's also very well explained there. It's actually more than you need explained here and that's all you need to talk to send and to transmit and receive one byte through USART. Here you can see how to configure the PWM mode and that's how you blink an LED without the CPU. That's how you can read the byte from ADC this is also simple enough and there is a little bit more involved in the description and that's how you can send byte and receive a byte through SPI and finally don't be afraid buy some of the boards and experiment. Thank you. So if you have any questions I have a present for the best question one of those development kids. Go ahead. So I really know very little about this so what would happen if you run the same program but without the code that configures the timer and the GPO? You can actually run this program let's say this is a working program you don't need to do anything else and there is a, if you click on the link on the slide you get that program and if you execute the comments that are in these slides you will get a working program, exactly. You don't need to configure anything these are extras, that's where you can go later. That's the whole program that you need to run that program and the linker script and that's all. What's that your question? To run the program without which part? Without setting the clock and the GPO. The clock and GPO. What kind of program would that be? Trying to write to that... To stay, to be doing something. I don't remember what's happening. I suppose nothing would happen well you won't see anything most likely there will be no activity. Hard fold probably if the bus tells the processor that something is wrong there will be a hard fold probably an exception and it will try to jump to address on the vector table which will be wrong and it will go haywire. So I have a question a little bit from the practical side so we've seen a lot of documentation being someone who hasn't touched it before how would you go about finding out what I don't know? Because right now I'm in a situation where I don't know what I don't know so I don't know which documentation to look at, right? Well you can start by asking questions and searching through that documentation. First question is how do you program this thing? So if you try to look in like program flash in the documentation you can stumble upon the mention of the bootloader and how you can program. You can take it from there then you dig further like how the bootloader is booting and what controls it that's how I was finding it. And also if once you buy the board there's the board documentation that says ISP, ha ha. And system programmer that can give you a clue. Any more? Yes? So if you want to maybe like constrain so a reason for this I would think is something you want to constrain in size or you want to make sure that all the code that's in there is a code that you've audited somehow so what about taking this approach and taking one of those like LibOpenCM or CMSIS and understanding it and then removing as much as you can. Would that be another approach of understanding how that microcontroller works? Would you take that approach? That's a good question. So I would say without understanding how the microcontroller works you don't know which parts of the library you're supposed to remove. That's the problem. And that's why I actually went with this first before trying LibOpenCM3 because I didn't know how it works. Okay, I can go read it but it's difficult to understand if you don't know how they work. So when you were going through the slides I've seen a mention of a JTAG on the STM32 which bears a question. What sort of debugging tool do you have? Well, usually I raise a pin or blink an LED. That's good enough for me. But of course you can use an SVD, this WD interface and there is plenty of cheap tools available like to debug it through that interface. Did you try them? Yeah, I have an OMX USB OCD H which supports it. But that's actually expensive but on eBay you can find like these tools which connect there and are able to debug this like stop the execution, step through instructions and all stuff you want. I just didn't find it that was worth the trouble. More questions? Oh, oops. Have you ever run into a case where the ROM bootloader has information or defaults or magic numbers that you need to look up and then use in your program if you were to then jump to Flash and run? Is there something that kind of like on Unix or on a desktop computer with like UEFI? Does that occur ever with the microcontrollers? No, not really because you only use the bootloader to flash the board. Once you switch the boot pin, the bootloader is out of the path. It's not getting executed. It jumps straight into your code. You're in full control. Oh, there's another one. There's another one there. We have time, yeah. I haven't tried it. I'd like to. I think that the bootstrapping would probably be harder than C because Rust is a little more involved in that part. And I've seen, there's a link there discussing how to do bootstrapping and make it work there. But I assume that, well, it could be more fun, I expect than with C. But C gives you like real hard feeling that you're doing it. All right, so thank you. Thank you.


It's going on everybody got Kyle and Shawn here with late sports cards from one box of 2023 Bumman's best you This is breakers the light football and this one's gonna be for Daniel T. Good luck. Mr. Daniel Let's see what we got I'm not seeing that order is coming all the way through Jeremy. It looks like it was It was voided for some reason I'm not a hundred percent sure why all right. Good luck here. Let's see. We got mr. Daniel Going here we got to 25. I was gonna be Kate Clubnick nice little color match orange there for Clemson Kate Clubnick wanted gunslingers on the Clemson and some 50. We got a gold Devon leery Devon leery gold to 50 say Drew Aller on the refractor to 150 as will Rogers out of Mississippi State Got to 75 nice JJ an amazing blue little color match there for Michigan JJ McCarthy and so 100 is gonna be Carson Beck on the fuchsia lava QB out of Georgia we have a Drake made a 150 Yeah, I think it was Jeremy that was a that was automatically by Shopify. We didn't cancel it We did not cancel it to 150 is Drake may And ice gold auto is gonna be Travis Hunter. There we go Daniel the two-way player out of Colorado Very nice on the goal Travis Hunter to 50 We have Riley Leonard on the refractor auto another nice one the QB for the new QB for Notre Dame Let me transfer and over to Dane and on the back. We have a second patch auto. It's gonna be Travis Hunter for Colorado to Travis Hunters. I Don't know if our if we accept them on the website. I think it's only PayPal That's the option or Apple pay. I believe I don't know Venmo's an option Travis Hunter on the patch out Alrighty there, that'll do it for you. Mr. Daniel one box of Bowman best you get that right out to you, sir Thank you. Thank you


Hello and welcome to the session in which we will discuss the self-employment health insurance deduction. This deduction goes on schedule one along with so many other deductions but in this session we'll focus on this deduction and let's assume our self-employed health insurance deduction is $2,000 and let's assume that's the only adjustments we are going to have. So we're going to add up all our adjustments and this adjustments it's going to transfer to for 1040 on line 10A from schedule one and let's assume this is the only thing 2000 so that's the only adjustment and let's assume our income is 50,000 then that's going to give us our adjusted gross income of 48,000. Simply put this $2,000 of self-employment health insurance deduction simply put you paid for your health insurance and as a result you got a deduction which is good and this deduction is for AGI it means it appeared before you got to your adjusted gross income. As always I would like to remind you you have to differentiate between for and from AGI so everything that comes after this is deduction from AGI. Now there are certain rules we have to learn about this deduction so not everyone can take their self-employment health deduction and this is what we're going to be talking about today. This topic is covered in an income tax course as well as the CPA exam as well as the enrolled agent exam. If you are a CPA candidate or an enrolled agent I strongly suggest you take a look at my website farhatlectures.com no I don't replace your CPA review course I can be a useful addition to your CPA review course I can add 10 to 15 points by explaining the material differently maybe better maybe not better but at least differently than your CPA review course your risk is one month of subscription your potential gain is passing the exam and if not for anything take a look at my website to find out how well or not well your university doing on the CPA exam this is a list of all my courses please connect with me on LinkedIn if you haven't done so and take a look at my LinkedIn recommendation students that use my system to pass either their CPA exam or their enrolled agents exam like this recording share it with others connect with me on instagram and facebook let's take a look at this self-employed health insurance deduction and obviously not everyone can take this deduction there are certain rules otherwise people will take the will pay for their health insurance and they will get a tax deduction okay now let's assume you are self-employed and if you are self-employed in other words you don't work for a company because usually when you work for a company through your employer you can buy your health insurance and as a result you'll get a discount why because your employer the company that you work for put some of the bill pays pay part of the bill well payment for health insurance for self-employed individual their spouse and their dependent are not deductible on schedule c so when you have a business you have a schedule c and on schedule c it looks like an income statement and we'll talk about schedule c later you'll have your revenues minus your expenses guess what you can number back to your health insurance on that schedule however what's going to happen is and we're going to look at the rules some taxpayer can deduct for agi for adjusted gross income 100% of their self-employed health insurance premium now I really I said the example is 2000 usually the health insurance is quite expensive so let's say $10,000 right because you know I should have used a different number so simply put if you are self-employed and you bought your own health insurance policy although you cannot deduct it as a business expense you can deduct it for agi which is gives you the same effect believe it or not now well the same effect to a degree of course the amount of this deduction can be limited in to respect so simply put you cannot just pay you know $50,000 in health insurance and take the deduction you might be able to but you are subject to other restriction the first restriction you are limited to what's called net earning from self-employment so taxpayer cannot take a deduction for any amount in access of the net earning from self-employment from the trade from the business that you are that you are dealing with what is net earning from self-employment net earning from self-employment is taking your gross income which is your revenue reduced by your regular expenses so revenue minus expenses minus one half of self-employment income because you have self-employment I'm sorry net income self-employment tax and any deduction for contribution to qualify retirement plan so if you have any deduction for qualified contribution you have to take them and whatever is left that's the maximum amount you can take and we'll work an example for your self-employed health insurance deduction so if you took $50,000 let's assume you paid $50,000 worth of premium just an exaggerated number and you end up with $30,000 of net self-employment net earning from self-employment you are limited to your net earning from self-employment so that's the first limitation the other limitation is the availability of other health insurance coverage well just just to simplify things now let's assume my youtube business you know I this is what I do for a living so I'm self-employed that's not what I do but let's assume that's the case so okay that's fine I am self-employed now let's assume my spouse my spouse works which is indeed she works at Johnson & Johnson and my spouse is covered by her health insurance and also my spouse she is allowed to cover me so her policy says I will cover you which is my spouse and will cover your will cover your husband and will cover your kids and under those circumstances I am entitled to participate in a let's look at the word subsidized health health plan subsidized health plan it means the company Johnson & Johnson helps my wife foot the bill helps my wife pay part of the bill under those circumstances I'm not allowed I'm not allowed to take the deduction why I can pay my I can pay for my old for my own health insurance if I want to but I'm not allowed to take the deduction because I do have the option of participating with my wife in her Johnson & Johnson health care in her Johnson & Johnson health insurance plan okay so eligibility for alternative coverage is determined on a monthly basis what does that mean it means every month I have to ask myself do I have a subsidized subsidized health insurance plan if not then I can take the deduction if yes then I can take it and what the subsidized mean subsidized is when someone other than you pay part of the cost all the cost or part of the cost for example where I work at the college they pay the majority of the cost for health insurance it's part of being a professor now they don't pay you a lot but that's fine I have a good health insurance coverage right so totally like my plan is totally subsidized for example where it's it used to be 100 percent subsidized when I first started working health insurance was 100 percent subsidized I did not have to worry about it I had a good health insurance although the pay is not good but at least you have that piece of mind so subsidizes anytime someone helps you participate of help helps participate in paying the premium for the health insurance the premium is the cost for the health insurance to have coverage let's take a look at an example Sophia is self-employed and she has a net earning from her self-employment of 17 000 for the year she has an individual only health insurance policy through her business which she pays 145 dollars per month so Sophia wants to protect herself from a health perspective she's paying 145 dollars a month now an unrelated local business employs Miguel Miguel is her husband Miguel employer provide health insurance coverage for all employees and pay 100 dollar toward the monthly premium for each employee is this a subsidized plan yes because the employer is paying toward that plan well Miguel is allowed to cover Sophia under his policy but the couple has chosen not to because the cost would be higher than Sophia's current policy Sophia said no no I don't want to be covered because I can get the health insurance at a lower cost well in this case Sophia cannot take the deduction so she can pay the lower cost 145 but she cannot pay the deduction okay now they don't tell us how much she has to pay but it seems it's less than 145 but she cannot take the deduction I'm sorry more than 145 for herself why because regardless whether you choose to take the to take that subsidized plans or not the fact that it's available the fact that it's available you lose your deduction you lose your deduction in other words you cannot take the deduction because the plan exists now let's change the scenario a little bit let's assume Miguel did not start work until April 1st prior to that time remember Miguel worked for a private company not with his wife he was employee of his of Sophia's business and both he and Sophia were covered under a group policy cost $300 so January February and March he was employed with Sophia's business his wife and for the first three month and they were paying $300 on April 1st Sophia changed to an individual policy because he left he went to that company how much can Sophia deduct for self-employed health insurance remember now Miguel can now cover her in his new at his new company well under those circumstances Sophia can take $900 Sophia is entitled to deduct the health insurance cost for herself and her spouse for the first three month January February and March 300 times three after that time since she is eligible under Miguel's policy although it's not economically feasible the fact that she's eligible to participate in a subsidize remember the word subsidize it means somebody else is paying then she can no longer take any additional deduction and this is what we meant you have to visit this this concept every month let's take a look at another example Patrick self-employed as an as and is entitled to participate in a subsidize qualified long-term care insurance not health insurance long-term care insurance through his wife Jennifer's employer okay the general health care plan offered by Jennifer employer is not subsidized so they do have a health insurance plan at Jennifer's business but that plan is not subsidized what does that mean it means Jennifer will have to pull the pay the full amount from her own pocket now I'll give you an example my first job in a CPA firm I still remember I was very excited that I got the job because you know I get my foot into a CPA firm and the salary was decent was okay was acceptable minimally acceptable I'll have to say okay but again when you start in a CPA firm you should be lucky and grateful that you got a job and I was grateful and lucky but I did not really read the offer letter very you know in the tails and the reason is I did not really care about the benefits I thought they must be decent and what happened is this at the CPA firm what I work is this as long as you are a staff and a senior accountant and I believe yes staff and senior the health insurance is not subsidized in other words they don't pay anything for your health insurance they do offer you health insurance but they don't put the bill in other words the bill that you pay for the whole amount and I still remember the payment was around again if my memory does not fail me around $450 per check and that was kind of a little bit hefty for me but it doesn't matter I'm glad I went through it and hopefully this is a lesson for you that when you get a job in a CPA firm take it you are going to suffer at the beginning you have to prove yourself and move on to get your CPA and move on with your life and succeed but the point is the plan was not subsidized what does that mean not subsidized it means I have to pay everything for my health insurance they took they took the money from my paycheck but they did not pay any penny toward that health insurance now the partners at that firm did not have to pay a penny because they are partners the business the partnership the company will the CPA firm base for that okay so hopefully this is a good example now Patrick is entitled to participate in both health plans remember the insurance the health care it's not subsidized because what we care is about the health care we don't care about the long term care insurance he chooses to obtain the general health insurance and the qualified long term care insurance through his own business he said you know what I am not going to participate I'm going to buy my own long term care insurance and my own health insurance guess what under those circumstances he will be able to deduct the cost for the general health this is what we're talking about okay subject to income limitation but he cannot deduct the cost of the long term care insurance that's totally separate that's not health insurance so notice although Jennifer's business offered the health insurance but the plan is not subsidized okay so Patrick said look you keep it I'm gonna buy my own and because your plan is not subsidized I can deduct my health insurance on as an as a deduction on line 16 as part of my as part of my scheduled one which is it's gonna reduce my adjusted gross income which gonna reduce my taxes okay so the general rule is that if someone else is willing to pay for the insurance coverage fully or partially the premium are not deductible okay here yeah they just say they simply said oh you can buy it through us but we're not giving you any discount we're not paying with you we're not we're not helping you therefore forget about the discount we're not helping you we're not contributing to that so just make sure you know that rule but FYI for now for your own information for your own information the self-employed health insurance instruction is also available to a partner in a partnership and to a shareholder and as corporation owns more than 2% of the stock and the reason I say FYI for now because you have to understand how as corporation work how partnership work and in case of a sub chapter as corporation wages from the corporation are included in self-employed income for the purpose of the of determining the deduction limitation because remember one of the deduction limitation is how much profit you made so your wages from if you if you're receiving wages from that from that C Corp then that's considered part of your net earning don't worry about this just now that partners and a partnership and shareholders and an S corporation they are also entitled to this deduction subject to obviously limitation just FYI at the end of this recording I'd like to remind you that if you're a CPA candidate or an enrolled agent I strongly suggest you check out my website for hot lectures dot com once again I don't intend to replace your CPA review course I'm sure you paid thousands of dollars for it by all means keep it I can help you I can help you understand it better make it easier for you take a look at my website take a look at my resources study hard good luck and stay safe


It is a partnership. It is not a kingdom. There are two visions. One is a union of states, union of languages, union of cultures, a bouquet of beautiful flowers that can challenge any power in the world. There is another vision. The idea of a king which the Congress removed in 1947. Now that idea of a king has come back. That there is a king, a Shah-in Shah, a ruler of rulers, a master of masters. Only the king has the voice. You think that you can suppress them. Yellow! Yellow! You have no idea of history. You have no idea what you are dealing with.


How would you evaluate your summer camp so far? I think it's been unique, you know? I mean, obviously for everyone, it's been a little bit different. And for me, I just got back out on the field.  But, you know, I want to hit a little bit better right now. I've been kind of, you know, not getting the results that I wanted. But the sim game yesterday felt good. It felt like I finally sort of feel like myself in the box. I don't say as far as evaluating. I'm going to try to end it with a bang.  How did you feel defensively? I know they had been holding you back a little bit because of that planar fasciitis. I felt good, you know? I mean, I caught the ball that was hit to me. So, you know, there's no negatives there. But I haven't really had a lot of action out in the, you know, left field, right field. But, you know, hopefully tonight I'll get a little bit more. And through the end of camp I get some more. But all positives moving forward so far. Do you allow yourself to think as things are winding down here less than a week from opening day? Where do I fit into this roster? I mean, I think it's pretty natural to, you know, let your mind wander to those areas. But, you know, something I've learned the last couple of years is to stop trying to play GM, you know? I have a role. I don't know what that role is going to be. I guess as the season continues to unfold we'll figure out what all of our roles might be. But, you know, hopefully it's one that gets to play a big part in a consistent role if I earn it. Clint, thank you so much. Thank you. Any other questions for Clint? Sweeney Murdy, please unmute your line. Clint, how are you doing? Good, how are you? Good, man. Hey, when you made the decision to talk about the decision last week of wearing a mask, a lot of us took that as a responsible sign and a sign of maturity. And that's something that, you know, you've kind of wrestled with, I think, a little bit the last couple of years, at least publicly, media and all that.  It was interesting, you know. I got a lot of positive feedback. I got a lot of negative feedback as well, you know, just from wearing the mask. A lot of people have their own opinions, but the way that I'm trying to go about it is it's my decision, you know, and our teammates need to stay safe and as long as we continue to continue to band together and try to stay safe with this, we'll finish the season probably where we want, which is hopefully, you know, hoisting a trophy and being World Series champs, but the only way to get there is to stay healthy and to stay together and as far as the maturity thing goes, you know, I mean, I don't really put too much thought into that. There's a lot of people that have said things about me that don't even really even know me, so it doesn't really affect me with what they say, but if they're thinking that I'm growing up, I guess that's positive right now. Thanks, Glenn. Thank you. We'll take our next question from James Wagner. James, would you please unmute? Hey, Glenn, what's up? I hope you're doing well. Just kind of curious, like during the time away, like during the pause in this season and even going forward from now, obviously you won't get to do as much like live in-person hitting. If you want to do a lot of extra hitting, it's harder to do that. So I guess a long-winded way of asking, like do you do the concept of like visualization and do you use virtual reality? Like did you use that before? Do you hope to use that going forward as a way to like keep your mind active and, you know, thinking and seeing at bats, but actually doing them if that makes sense. Are you talking about more like my own visualization or the actual VR, like the virtual reality?    And I actually looked into buying one of those, but didn't know where we stood with the season and didn't want to spend, you know, over $2,500 on something that I might not use if we didn't play. But as far as, you know, visualizing goes, I didn't really do too much of that. It was more just getting in the cage and turning the fastball machine up as high as it could go, you know. I mean, obviously I like to visualize before the at bats, during the at bats, after the at bats, as far as just needing the reps, I was just getting as much off the machine in live VP as I could, but it was hard to come by live VP so it was a lot of time in the cage with the guy that was coming to me. And do you try to like go through at bats, though? Like with our new lion bat to get a shower, like on the way to the park, like you feel yourself hitting. Do you do that?  It's fun to visualize, you know, what you did positive, what you did negative.  So I was continuing to watch the videos of what I did in spring and, you know, try to continue to push that positive feedback that I had in spring and bring it into camp.  So I do think it would be a positive thing to, you know, try to visualize myself having some really good abaths moving forward, because it does help to kind of do the pre-stages of what could come if you put yourself in the right position. Thanks, Nick. We'll take the next question from Ken Davidoff. Ken, please unmute. Hey, Clint. I had one other question for you. Just to follow up on what you were talking with Sweeney, you said you got negative feedback from people you know or in the game or just like morons on social media. It was the social media stuff, you know. I got called a sheep by some people. But it's all good, you know? I mean, obviously, everyone's entitled to their own opinion, but with the situation that we're in with how fragile, you know, this virus is for some people, I'm not really too worried about the negative feedback because moving forward, I think it's the right thing to protect myself, others around me and everyone else that everyone goes home to, you know, because it has affected us and we want to we want to win the World Series and the way to do that is to be healthy. So, you know, if it means wearing a mask upsets people, I don't really I'm not really too worried about that one as far as you know what the ultimate goal is here, which is to make it out of this safe and win a World Series. And my original question was just Garrett goes tonight and I have a hunch that he's going tonight as long as he's healthy. Just how excited you are to play behind him and just what it's been like getting to know him these last few months.  I mean he's he was sitting out there watching Clark Smith throw in the same game yesterday so you can tell that he's engaged in a lot of areas whether it's, you know, for the young pitchers or he was even watching some guys hit BP in the batting cage the other day so it's interesting to see how interactive he's been with both sides of the ball offensively and pitching side too. Thank you, Clint. Thanks, Ken. We'll go to Ron Blum. Ron, would you please unmute? Hey, Clint. How are you? Good, how are you? You look at the expanded rosters in the first four weeks of the season. Does that enable you to relax your approach at all just knowing with four extra players the first two weeks, two extra then after that, that there's less of a chance of shuttling back and forth and you can just relax and sort of let yourself show what you can do. Definitely, definitely but you know the thing is we I'm not trying to get too relaxed with how many guys that we have on the roster that could play on other teams as well. I'm competing against guys that could be on starting teams on a lot of other teams so I don't want to get too relaxed in the sense that I'm concrete in the spot but I am happy that the rosters expanded that way I can continue to try to get my feet wet and continue to try to obviously make a positive out of any opportunity that I'm given. Thank you.


Hello everyone. Thank you for joining today's Bitesize Talk. I'd like to begin by thanking the Chan Zuckerberg Foundation initiative for supporting all NFCO events. So a few, some information about today's Bitesize Talk. So the talk will be recorded and is being recorded at the moment and the video will be uploaded to NFCO's YouTube playlist and also shared on a Slack platform. After the talk, which is a 15-minute talk, we'll have a session for question and answers. So feel free to post your question on the chat box or unmute and directly ask the speaker the question that you have. So for today's talk, we are honored to have Yvonne Floden, who's the CEO and co-founder of Secura Labs, who will be presenting on Nixlo Tower, which is a centralized command post for launching Nixlo Pipelines. So over to you Yvonne. Okay, thank you very much. Thanks for the intro and thanks for having me here again. So just a bit of a clarification. I'm really going to specify that we're going to talk about Nixlo Tower and the CLI in specific, specifically that we've released it towards the end of last year. It's been like a kind of work in progress and something that we've been sort of wanting to do for a while now. It really tries and answers some key problems that people had. You have Tower itself, which has a graphical user interface and also has an API. We really want to solve the problem for people who are used to working with Nixlo from the command line, but also people who want to have infrastructure as code like set up. So maybe as a brief introduction, I can start on a little bit about the kind of background to it and also the background to Secura. So if you don't know, we're the main maintainers of Nixlo Project and the company's about four years old now and really kind of solve the problem primarily around the workflows becoming more complicated in terms of number of steps, but also the larger amounts of data and the kind of cloud and cluster configuration side. This kind of really ties in with what we've been doing with the CLI because it really allows you to define like your whole research environment. Nixlo and you know, particularly NFCore have done a fantastic job on defining like the workflow. And if you think about that workflow being typically a repository, you know, you've got some profiles, you've got some sort of test ways of running those pipelines, but there's almost like a problem outside, which is like a little bit bigger than this, the workflow definition, which is like, where does that workflow run? So how is that infrastructure created? How can I create all of that in a kind of reproducible way? And how can I start to do this when I'm using long running services without having to rely on my laptop being the kind of the key provider of all of that. So that's what we're trying to go into a little bit today and it really should be a little bit of a show and tell session with some examples of how you can do this from the command line. So please forgive me if there isn't any kind of typos as we go through this, but hopefully it can give you a flavor of what's possible and you can start to think how you can apply it in your situation. So I'm going to go into the kind of the meat of this first and then this is really kind of the architecture of Nexplo tower, not something specifically to know tons about, but the point is that it's like a full state web application and it connects in with these computing platforms. So all of your different cloud providers and obviously the data associated with that with the repositories. And then how do you interact with that yourself? I mean, just typically three ways of doing so. The first is obviously through a web browser. So you're connecting and sort of going through cloud or through kind of a user interface like model. Then there's the command line, which I'm going to show you today. And all of that is kind of built around and sort of built on top of this API layer. So towers published the API. It says open 3.0 standard from that API. So you can go into the documentation and do that. And we have a lot of people who are just building purely on top of that API layer, but there was kind of a need to be able to interact with tower also from the command line. Here's a kind of quick example of what we're going to see later on. But the idea is that you can start to then launch pipelines, monitor these pipelines, understand a little bit what's going on and define the infrastructure in this way. So I'm going to go through a couple of things. The first is just the very basics of the installation and the setup and then how that works, show you the repository. And then we're going to also go through and just see how we can launch some pipelines and how we can sit up to infrastructure as code. Now, the way that the CLI is written, it's basically in parity with the API. And this means that you can do a lot of things, and probably many more things than we've even kind of considered for most applications. When you see this, I kind of want you to consider like other use cases. If you've got some, it'd be fantastic. We had people reach out to us the other day who were using this for uploading data sets and triggering pipelines. For example, when we wrote a blog post on that, it was sort of a fantastic piece of work. And we kind of see a whole bunch of other use cases outside this kind of direct setup. So please shout out if you kind of want to see how that works. So the first thing I'm going to point you to is just tower itself and the way that it connects in terms of the CLI. So you can go to cloud.tower.nf. And when you log in here, you've got your credentials that you can log into. So typically people are using GitHub or Google to log in here. And the first thing you have is like the community showcase, which is what we're going to be working in for some of the parts of the day and really a collection of pipelines. There's some free compute so you can jump in and start launching it. And you can interact with the CLI as well. The point that I want to make here is to set this up the way the CLI works. It connects to tower and it connects via your token. So you can create your own, as many as you want, sort of access tokens here. You can see that I've created a token for the NFCore demo token here. And when you create a token, let's just give a demo example here. You can see it just gives you that key there. So we can basically, there's how it sort of links in there for doing that. I can just quickly remove that one in case of demonstration purposes. So I've got one which is linked in, and I'm just going to go and export that into my environment. So how does it all that work? So the linking that works is that we have the tower CLI, which is a standalone open source piece of software, which you can download from GitHub. We have built it in all the different environments. So if you go to tags here for each version, we build this for Linux, for OSX, for Windows as well. And then you can simply download that file and really move it to executable and run it here. So I'm running a Mac today. So I've just downloaded the latest Mac version into my terminal. And then you can start to run it here. There's a little bit of background on how this works and how you can set this up. But I'll kind of leave this for later on and we can jump into a demo specifically and see how that works. So I'm now going to switch over to my terminal, to my command line. And we can run a little bit from there. Okay. So here's my command line. The first thing you can see is that we basically, instead of calling it sort of tower or anything like this, the command that we call it is the tower. And you can see the different commands that you have here. So tower itself can really interact with all of the different aspects of the system. So we have things like actions for automations, organizing collaborators, compute environments, credentials, datasets, as well. The other nice thing you can do here is to write tower info. And this is a kind of like a health check. So it's going to go connect with the tower instance. It's checking that we can connect to that there, the version that we're using, showing which user I am, when I'm authenticated to do this, and checking some details there. And this can be quite useful as well for just kind of setting it up and running that for how you go. So the way that you set this up is you would typically export an access token here. So in this case here, I can got my access token, which I've copied from before. I would then paste it and export that there. And then you're kind of good to go and you're connected. There's a couple of other different options that you want to do when you're considering the setup. The first one is really around which workspace you want to work in. I showed you the community workspace before. But if you have your own workspaces set up for your organization, you can simply change that from environment variable, in this case the tower workspace ID, but you can also change it from the command line when you're running this. So you can just say tower workspace from there. So I'm going to say here and just export my one that I'm essentially the community showcase. And anything I do now, you'll be able to follow along live. So if you log into tower, you'll be able to see all of these actions and essentially pipelines triggered off and things that were created, followed them as we go through. So I'm going to export this tower workspace ID here. Just going to confirm that everything is working and it's all fine. So I've uploaded my credentials connected to the right workspace and we're ready to go. The first thing you want to consider in the first kind of use case for tower is the primary use case of what we all do is to basically run pipelines. So kind of how we can trigger those off. And in tower, we have a special concept of what I call as pipeline is. It's essentially almost like a reserve name that we've created for the system. And a pipeline is a combination of the workflow repository. So you think of this as like you get repository where the kind of source code is hosted, combined with a compute environment, which is really where the execution of that pipeline will take place, plus some parameters, essentially inputs that you want to see default parameters, but also other parameters that you want to use. So those three things come together for what is called a pipeline. And if we go into now here and we see inside of the tower showcase, and you should see the exact same thing. If I was to say here, pipelines list, we'll see that it lists all of the pipelines that we have inside of this community showcase. And this is like the end of core pipelines, but also we have some other ones we're adding in here all the time. And these are kind of preconfigured ones, which are good to go. So again, it's a combination of the repo, some compute environments, and some parameters. If I want to launch one of these pipelines, I've got a couple of different options and come a couple of different ways that we can do this. Well, the first thing is to say, we could say tower pipelines here. And I want to say launch. And when I launch this pipeline here, I can then choose the name that I want to give it. I'll essentially launch that pipeline, or I can choose an ID. Let's just choose like a default one. And we will chase that we want to launch in if core chips. So I say this here. And you can see that I have made a mistake here, pipelines launch, I think we have to give it a name here, typo. No, of course. And just copy paste my example, maybe I've made a typo here somewhere. Okay. Okay, I must have made a typo there somewhere. So this is the interaction that we've basically taken place. And we're submitting now that pipeline was saying launch that pipeline with tower. And it's important to note sort of why is this different from from next flow run. And the primary difference is that when we're launching this pipeline, we're directing tower to launch it. There's nothing running now on my local machine where this is launched. There's no like next flow instance, there's no kind of head job or anything. Everything has been delegated to tower, which in itself will submit that compute into the computer environment where that's working. That's got a lot of advantages. First, again, I can shut down my laptop if I need to run out to go to any work at the end of the day. The other thing is that all of the essentially the record, all of this, all of the logs, all of the information about the execution of the pipeline has been managed now by tower and has a full kind of history of that. That's kind of a very important thing. You don't want to be sort of reliant on your laptop or where you're launching the pipeline to manage that information. It also means it's been collaborated. If you go into the workspace now and click on this URL, you can follow along live. This allows people to interactively work together. Maybe there's an issue that you can fix, and then you can fix that and launch that again. We can work in a much more collaborative manner as well. That was a kind of basic one where we didn't actually change any of the parameters. This was a default launch of that. But what if you wanted to start running some of the more pipeline where you're actually changing things up? You've got a couple of different options for doing that. We can define a little bit like the next floor command line here in terms of the different stuff we can run. I want to say now I want to run the viral recon pipeline from NF core. Let's say that I want to now, instead of just run it by default, I want to use an expert profile. This profile may be some test data that you've got. Maybe it's a profile because of something specific about what you're going to define there. I can just use the exact same profiles here to launch that as well. That's going to trigger off there. It's going to be launched into the community workspace I'm doing as well. Another more common use case is really around not so much the changing of a profile but changing off the input data. What you can do here is very much like what we call the params file. You can create a params file in YAML or JSON here. You can see I've defined some input data. I've got some different options for that for those inputs. Here I've saved this in this file called params.yaml. I can then go say, okay, let's go launch the tower launch of the NF core. Now I've got the choice here of defining some profiles but I could also let's say add in now the params file itself. Let's just say a profile for test. I also want to put in here the params file exactly like we would with the exploit. At this point here I can just specify exactly what the location of that params file is. Obviously this allows you to kind of pre-define a lot of stuff that you're working off like sample sheets that you've got pre-defined there and they can kind of trigger off there as well. Okay, let's enter the params file. I think I've probably made some typos in this much better copy, pasting and the life demos than trying to do this so it can prove it works. Okay, so these are all that and then we can launch that. So this is the kind of basic use case of launching those pipelines. You can of course monitor them. You can kind of follow them along. Maybe you want to do that from the GUI. Maybe you want to do it from the command line. There's a whole bunch of different sort of end points there. I want to kind of switch gears a little bit now and think about how we can define a little bit of the infrastructure around this. So so far we've just kind of launched those pipelines and we've been on models of them. What about if I wanted to now do this whether I want to set up pipelines for other people or define my research environment in a kind of more generalized way? So I'm just going to just switch the change over to a different workspace here. I don't want to kind of build the stuff in the community workspace. I don't want to populate it with different things. I'm first just going to change over to the workspace here and then I'll look at the different pipelines that I have inside this workspace. So this is a private one that you can't see but its principles are exactly the same here. So I'm just going to say tower pipelines list. It's going to show me all of the pipelines in that space and you can see that just whole bunch of stuff that we've been populating and inside of here. You can see the repository associates with see a lot of the core stuff and then the kind of name of the pipeline. What I want to do now is imagine that I wanted to say take this and I had like a test version of this or development version and say I wanted to copy that or I wanted to give that to you. So you could kind of capture the whole thing in your environment or put another way. I wanted to really define exactly what that pipeline is made up of beyond just the workflow itself. So one way that I can do that with tower is actually to take the pipelines. So take the pipeline's command here and then export the particular pipeline itself. And the way that this works is when I give it a name. So let's just take the first one from the top or copy paste this time as opposed to trusting myself too much. When I export this, you'll see that it's exported entirely as this Jason found. And this has got a fantastic functionality because it means I can import and export things using this using this command and really define all of my pipelines as code. So these pipelines may have different configurations, different setups for different environments. And you can kind of define that now entirely inside of the Jason file, but also you have a pretty nice way to interact with it in this regard. So that means I could go create a new pipeline, maybe change one or two things out. And all of that infrastructure is kind of shown there as well. This kind of principle of importing and exporting, defining and kind of having this at a stored location works for all of the resources. So I'm showing you pipelines here, but the same thing applies to if I was going to show you, for example, the credentials. So I want a list inside tower of all my credentials that are inside of this workspace. And you can see I've got credentials here for Google, for GitHub, for Azure, etc. All of that becomes available for me to see. And then I can kind of think about how I can link that into actual computer environments of generating this stuff on the fly. So if I wanted to, for example, export my compute environment here, which is, as I said before, it's going to be like where the compute takes place. So it's going to be my AWS batch. In one example, let's say there's some credentials for that, how that's set up. And you can have a look at what one of those looks like. So this export here, the credentials, you can see that this is the whole definition of that that is required. So this is running on US three, etc. All of the working directory for that and any kind of how that sets up. So there's obviously a whole bunch of these things that you can learn just to kind of give you a full demo and probably makes a little bit more sense now all of the commands that we've seen here. If we do tell command on here just by itself, you can kind of see that you can start to interact with creating the workspaces themselves participants, generating the pipelines, creating data sets. And I just will point out one more thing to kind of maybe to give you some sort of inspiration on what's possible here is that we recently released a blog post around this, which really took many of these ideas and put them all into kind of play. The concept here was that we wanted people to be able to essentially drop a sample sheet or sample comes off a sequencer. And as part of that will trigger the execution of a pipeline all the way through. And the tower CLI is obviously is obviously perfect for this. And we wanted to kind of set this up on on the first case on AWS itself. So the way that we did this means we defined some Lambda function that essentially takes a sample sheet which gets generated when data enters to an S3 bucket. And then it uses the tower CLI to generate a data set deposit that into tower and then to invoke the job with tower itself. So it kind of allows you to then to integrate with many other different services for doing so and then create this whole. This is a kind of a walkthrough if you're really interested in and seeing how this can be done. We provide all the files. And there's also a Git repository here if you want to go through and follow this up yourself. But I'll kind of end with that. We're really excited to see what people build with this. We are sort of expanding this out as well as as we add more functionality to tower, you know, keeping everything really, really kind of aligned in that respect and really excited just to see what to see what people build with it, you know. Thank you, Evan. That was a really interesting talk on next floor tower. I don't know if there's anyone who has any questions to follow up on this. Maybe I can start the questions off. So I haven't used next floor tower before, but are there any more supplementary dependencies you need on your local machine when you're using tower? So when you sit up with tower, there's a couple of ways to do it. One of them is just writing with tower from your next floor command. So you can say next floor run with tower. This is still running it with your kind of the head job is still on your laptop. To connect externally, you should log into tower cloud and then you can essentially create your computer environment like that. So they're kind of two different ways of working. And they're kind of to really get the full power of this. You should kind of log in. As I say, it's running as a service in there and to provide full clarity around this. So this is tower cloud, which you can go and log in and use. And our business model is primarily around deploying this in customers own environment. So customers have their own version of tower. This is the public one I'm showing you, which you're free to use. We have a question from Paul.  So some of Paul asked, I have access to a HTC supercomputer at my institution. What is my use case for NF tower? I've only used NF tower on a limited basis and don't see the need of it. Who are the main users of NF tower? Yeah, we can think of a couple of use cases. I can jump in there and maybe demo a little bit. So one thing in terms of HPC, I'm showing you kind of batch and AWS batch and different cloud environments here. If we go down to that same workspace we were working before, these are the same computer environments that I showed you. And you can connect in here with all the different platforms. So you connect in with your own, in this case, your PBS or your own slim cluster that you have here. And this kind of organizes the infrastructure side of it. So you can connect those bits into there as well for that part. There's kind of three primary use cases around the use of it. So if you are creating pipelines and you want to make them available for anyone who maybe doesn't even have an explore expertise or command line expertise, experimentalists, et cetera, you can create your pipeline and define it in a way which makes it super easy for them to come in. So here you can create your own customized user interfaces here. So as a user, I just need to slick my input data. I would come in and I say, I can run my RNAseq sample sheet against that.  And then I can kind of trigger the execution of that job often. It kind of simplifies the whole kind of launch process for them. As a buying from a tissue, you probably want to create those pipelines and make them available with compute to your users and to do that. Maybe you want like a long running service, you don't rely on that. You have a kind of full history of your execution. So you can follow those pipelines as they're kind of going through as well. And you can also kind of automate things as well. From the kind of system admin side, you have the computer environments, which can be defined. And really a lot of work around the, obviously, the collaboration side of it. So there's a whole bunch of use cases there. Okay. So apparently everyone else was appreciating your talk. I don't know if anyone else has a question. Okay. Seems like Ron is satisfied. So thank you so much, Yvonne, for the talk. And I'm sure people can catch you on Slack if they have any questions. Absolutely. Thanks so much for the time, Ron. And yeah, reach out if you have any other questions. Always happy to take them. Sure. Thanks, everyone, for joining today's bite-size talk. See you next week. Thanks so much, folks.