Most of this information comes from instructions for schedule 8812 credits for qualifying children and other dependents tax year 2022 you can find on the IRS website irs.gov irs.gov. Looking at the income tax formula we're down at the bottom where the credits are located. Remembering the first half of the income tax formula is in essence and income statement although a strange one the bottom of it resulting in taxable income similar to net income for an income statement we use that to calculate the tax before credits or other taxes not by multiplying by one rate but by using the progressive tax system and then we have to deal with the credits and other taxes like self-employment tax and the payments that we have made either through withholdings or estimated tax payments to get to the tax refund or tax due bottom line remember the credits are similar to deductions in that we like them both however if we could choose between one dollar of credit and one dollar of deduction we typically want the one dollar of credit because we get the full benefit for the one dollar of credit whereas a one dollar deduction would simply be reducing the taxable income by that dollar and the benefit would be dependent on our tax rate remember that in terms of the form 1040 we're looking at page two of the form 1040 page one deals with the basic weird income statement of the income tax formula to get to the taxable income page two deals with the credits and the payments where we might have many credits including this one a refundable portion and a non refundable portion so we have one kind of credit category that's now basically being being broken out into two places on the tax return because of this concept of it being refundable and part of it being non refundable the non refundable part means that it can't take the tax liability below zero if it does you'll basically lose the credit for anything that goes past that point the refundable portion giving you a benefit even if the tax liability goes below zero all right general instructions taxpayer identification number requirements you must have a tin by the due date of your return so if you or your spouse is filing jointly do not have an SSN social security number or itin issued on or before the due date of your 2022 return including extensions you cannot claim the ctc child tax credit odc other dependent credit or actc additional child tax credit on either your original or amended 2022 return if you apply for an itin on or before the due date of your 2022 return including extensions and the irs issued you an itin as a result of the application the irs will consider your itin as issued on or before the due date of your return quite considerate of them so how much is the 2022 child tax credit so for the 2022 tax year the ctc child tax credit is where $2,000 per qualifying dependent child if your modified adjusted gross income is 400,000 or below married filing jointly or 200,000 or below all other filers if your MAGI remember when we think about these phase outs it usually starts with the AGI which is your adjusted gross income the M is the modified adjusted gross income so if your MAGI exceeds those limits your credit amount will be reduced by $50 for each 1000 income exceeding the threshold until it is eliminated so when you're discussing the child tax credit with people you could basically give the general concepts $2,000 it would change substantially in 2021 it's basically reverting back to its original format after the crisis and whatever the reason was for the adjustment in 2022 and then there's going to be an income limit that's fairly it's a fairly high income limit and then oftentimes you'll be able to say look at phases out once you get past that limit and you probably don't need to actually know exactly what the phase out is in your mind possibly depending on the software to do that because your job might be to discuss this visualize this plan for this and so on so that you can you can talk to people and make projections and then when you get down to the nitty gritty of doing the actual phase out you can have the software help you out with that process so there is that so the CTC is also partially refundable tax credit that is it can reduce your tax bill on a dollar for dollar basis and you might be able to apply for a tax refund of up to $1,500 for anything left over so in other words the refundable portion and the non-refundable portion the non-refundable portion means most credits the concept is this is a tax so we're talking about federal income taxes so it shouldn't be the case you would think for a credit to result in the liability going below zero and you still getting money from the credit when you don't owe any taxes right that would be so that wouldn't be a tax but we can use the tax code as like a benefit program and not just for taxes which is in essence what's being done with the refundable portion of the credit allowing people still to get a quote refund in quote which isn't really a refund it's a benefit program at that point because it's not really taxes because you're getting a refund on on the refundable part and that's why it gets a little bit messy on the second page of the tax return because now we've got to think about well how are we going to do that logistically calculating the non- refundable portion that can't takes the liability below zero and then the refundable portion which can the refundable portion acting kind of like a payment in essence like like it meaning you're going to get a dollar for dollar benefit uh generally from it even if your tax liability goes to zero or pass zero so this partial refund portion is called the additional child tax credit by the IRS that's why we have these two terms so when you normally talk to people you say yes the CTC is the child tax credit 2000 whatever and then when you get into the refundable portion you most people probably still say CTC child tax credit but the additional child tax credit is what's being referred to when we get to this to this refundable portion that you're breaking out in these two categories okay each qualifying child must use the CTC or ACTC child tax credit additional child tax credit must have the required social security number so if you have a qualifying child who does not have a required SSN social security number you cannot use the child to claim the CTC child tax credit or additional child tax credit on either your original or amended 2022 return the required SSN social security number is one that is valid for employment and is issued before the due date of your 2022 return including extensions if your qualifying child was born and died in 2022 and you do not have an SSN for the child attach a copy of the child's birth certificate death certificate or hospital records the document must show the child was born alive so each dependent you use for the ODC other dependent credit must must have a TIN by the due date of your return so when we think about the credits that are going to be taken here generally the thought process would be could you get the child tax credit if you cannot get the child tax credit could you get the other dependent credit and this is where it kind of ties into the idea of a dependent normally of course when you're thinking about a dependent someone that you're going to put on your return as a dependent you are getting a benefit from that primarily the first thing that comes to mind would be the child tax credit if they qualify for the child tax credit but if they don't qualify for the child tax credit then you may be able to get the other dependent credit and therefore these two credits are kind of are kind of linked together because they're basically attached to someone who might qualify as a dependent so we have a similar kind of requirement you got to have the TIN by the due date of the return for the other dependent credits so if you have a dependent who does not have an SSN social secured number I-10 or A-10 issued on or before the due date of your 2022 return including the extensions you cannot use that dependent to claim the ODC on either your original or amended 2022 return if you apply for an I-10 or A-10 for the dependent on or before the due date of your 2022 return including the extensions and the IRS issues an I-10 or A-10 as a result of the application the IRS will consider the I-10 or A-10 as issued on or before the due date of your return


Když máš to nebyť kůl na letku, kterou jsem kde nemohla se hrad. Kterou? To pět. Nevím, já jsem rád, že do tom stánku ona tam ležila, tak co si jí záv. To je opravdu na rýchli a to je můžeme mít všechno záv. A nebo kdo je teď opravdu? Je to díky můžeme. To je na 340 i d207. Kdež jste to nejde? Také to nájsí. A musím se poznávat na wi-fi. Díky, můžeme zvukat s výkorek, co se spoufnaje. And if you try, I think that's enough. I will show you some cool stuff, I guess. OK, I have some slides for today. Trying to get them to display correctly but this screen resolution is very quite small. Let's see if I can fix this ... Not far to go. This is what happens when you have a high DPI display, and you plug into a low resolution monitor Tohle se potlap hodně jít. Už jsem mám mít všechny dělávou důvodní a druhé tyšté důležitice. Když bych mi výpnali? Albo hodně lidi. Ahoj, než se to zvukat. Jak se nám než jen vzloučil? O, než můj lidi! Děkujeme. Děkujeme na klás. Vzlušeme nejštězné vzlušení. To je hodně vzloučil s systémem. Až jsem zvukat vzloučil vzloučil se než jen vzloučil. Zvukáme se, když můžu dělat. A ho SoundCloud světování směje těch dneštých dneštých vědět. Jdyskou se začala výquadu USB v lékuně, a jsou ta vymelící. Nevím, že jsem nežekl které. Měl jsem ktevě zlepštějí v třeba. Měl jsem nežekat kteřit ve doma a potí měl jsem kteřit to třeba. Takže jsme se pro to předstí. Jdem si proč když si sem zvoušit. Až jsem kteřit jeden a umějte střiad Produce 1 do helpu. a je to začnout, protože vyskává je velmi služitý. Oto je tady všechno odložit, nemůžu jít, že musím se všichni důvodit. Všichni dnes se otevří, kde jste možná vám nejlepší kopie od výzvodního výzvodního komandářa. Když jste do výzvodního výzvodního originu na GitHub, větábu je, All these branches, this off- everyone's screen in our releases tab. In the future, we have jist rolled out one dot one dot two release for our upstream code. This also has a lot of information about API changes, new features that have been introduced in this latest release. There's also some screenshots. This is Jacob's new features that are coming through. Good to see he's available. Mám to závodit všechno jedna USB a nám je to dělal. Mám to závodit všechno jedna USB a nám je to dělal. Když máte already the CLI tools, jsi měl dobrý, jsi měl dobrý, jsi měl krátký, půjď se na výstření. Některý, to je to, když se vytvořilo, když se vytvořilo. ... ale ... ... OK. To bude ... ... nevěději, kde je to. Páte to na dvej, když máte. OK. Už se to potom se závodit. Já chcete se vytvědět, když se to závodit. A to ... ... představíme na závodit. Proste, že ... ... tady je hodně. Nic na to? OK. Můžu bych taky vždyť. Já vidím výstřední výstřední, a v tomto výstřední výstřední výstřední. Takže jste musíme tomu když vytvážené? Jste jste které? Jste tady? Ok, sílojíme, že máme zvuky s hledním výstředním. Jsme když můžeme vytvážené. Přeci nám to vytvážet. No, zvuku do náshojíců, můžeme se to zvukovat. Jestem po Mohci, když bych můžeme zvuky zvuky výstředný. a to je tím, že se to dost. Díky, když se to díky. A hodně Jorge může hodit, když jsi může vytvědět, když jsi tady hodit, když se Jorge může hodit. Je to v občasku, díky, díky, díky. Vypadáme, když se to díky. Díky, díky. Vypadáme. Vypadáme. Díky, díky. Jsem vždycky, Ryan Jarvným, než začínáme, a závědějíme. Já jsem s Red Hatžačným tým svojím svým zvížením. Já jsem vždycky jen závědějí. Abychom, než jste. Abychom, než jste. Abychom, než jste. Abychom, než jste. Abychom, než jste. Potom se potom děláte se zvukovat a zvukovat se z nás výdělí, které se vytvoří, když je vytvořil. Můžeme přijít tím, aby se významy na kontainerizáře s tím, že se vytvoří nejlepším, které je vytvořil nejlepším, které je vytvořil k containerům. Máme tady o zároveň a zvukovat s nejlepším imagí, z významy zvukovat vyznamy vyznamy vyznamy vyznamy. A jsme se o replikace a hlavě s kubernetesem. Můžete mít kuberneti? Všichni všichni. A když jsi chtěl udělat, co se o kuberneti děláš? Kde je to dělává? Když je to dělává? Všichni? Borg. Všichni kuberneti. A když je to dělává, co se o kuberneti dělává? A bych to byl dělávý, že jste tím, když mám všichni dělává, a všichni dělává, co se o kuberneti dělává. Jsem který, ale všichni dělává. Everything they do except maybe some android. Everything from Google search, Gmail, Google apps, Docs. Everything at Google runs inside containers. It's not Docker containers internally.  They need very high density per machine. They are not currently using Google, Borg je to průvodní práci, které se věděli, aby to vzpět vzpět vzpět vzpět vzpět. Kubernety je to vzpět vzpět, které se vzpět vzpět, ale vzpět vzpět, které se vzpět vzpět. Takže se vzpět vzpět vzpět vzpět vzpět vzpět, takhle vzpět vzpět vzpět vzpět. Když jsme se vzpět vzpět vzpět vzpět vzpět. To bude brzit třeba to, které se vzpět vzpět vzpět, které se vzpět vzpět vzpět, a vždy, v mojí celé vzpět, můžu si vzpět vzpět vzpět vzpět. Můžušu se vzpět vzpět, Můžu se proč nejlepší typografie, že můj sým závodních environment. A můj sávodní environment, můžužit to, když můžu mít vývodní database, ale jeho pro stážení a testovat, nechud nevětně zaštět, který se vývojí závodní. Můžužit, když se vývodní environment. Těžké sávodní byla nejlepší ryský. Tento je to, které je to, které je vývodný. když tam je to nejlepší výzvědět, který se je vzřudit. Na začivném cestu všechno je to OC command line tůl. Jovali to byli občas udělali ahojí U.S.B. Kto jde, nebo nebo na to OC command line tůl? A je to, které jste. GitHub.com, OpenShift origin releases. Měli se výstředný na jednému líbě, nebo... ...a výstředném těchto. Když jste výstředný výstředný, děláte jen hodně, ne? Ne, nejde se na USB. Mě jste. Mě jste. Mě jste USB, hodně? Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Mě jste. Já saní to this is an open-source community. You can solve this problem. I am confident. So let me show you how you can do it. Go to OpenShift Origin. Look for the Releases tab. Yeah, the download is very slow for you. A nebo všechno je to zvonit do wi-fi ahoz. Zvonit na vás nebo všetké větění zvonit. A to rád mi zvonit. There are client tools for 32-bit linics, 64-bit linics, Apple Windows, a tu nemůžeme sejt hlavní výjty na dň. Tu nebo se jen 64-bit linics. Ahoz, když jen je zvonit? Když je to? Když je Apple? Jsi OK, jsi OK. Ještě, když je to všechno. Pěkne ještě nejlepší za tím. A když můžete, když můžete všechno USB. Když je to všechno? Je to všechno? Je to všechno, když můžete všechno všechno. OK, jdoužím to všechno a než se to všechno. Jsou všechno. OK, tady jdoužím to všechno. Všechno, že jsou všechno. Jsi to všechno, když můžete všechno. Všechno, že jste všechno. Jako můžete, když můžete všechno. Je to Apple a jste všechno. Všechno? Jste všechno. Jdiš jste všechno, když můžete všechno a než se to všechno, když můžete všechno. Před 64-bitlinix. Je to to, kdo můžeme. Úloží, že jsme všechno dělat všechno. Jsi můžete všechno dělat všechno. Všechno, že jsme všechno. Všechno, že jsme všechno. Proste, let's go try to log in. We have a different server name for today. I believe, let's see if this one works. I think we do. OK, so, the server name for today can DevKonfCz. You need HTTPS, OpenShift Master, DevKonfCz, OpenShift3roadshow.com is where we'll be working. A všichni můžete jít úzorování tady, takže to je něco, který můžete představit příjde. Prvním rovící tady. Zděláme z 0, ne? Jsme rovící 0. Prvním rovící 1, rovící 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7. A zděláme z námi... Zděláme z 0, 1, z 0, 2, ne? Prvním rovící 1, 1, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 8, 9, 9, 10, 10, 11, 12. Prvním rovící 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1. Oh, no laptop. OK. Můžete mít s nám z nás jen. So pick a user number. Iíll be your user-0, 0. OK. Is everyone able to reach this webpage here? In расс Вид now. Is this readable? Not quite. OK, letís go through up here. Open Shift-Master, 되면. Could update my slides. Yeah, yeah. Je to nějaký klas? Tak. Já vyslyphuji, že je všechno, takže... To je... To je tady, takže to je... To je. Taky, děkujem. Potom jste mi, že je ještě tady. Je to závodně páržačne a teď řekáš. A... A, jsme měli kvělou. Závodně, já bychom to vypěděl na měch jí. Vám je to závodit. Vám je to závodit. Závodit. Závodit. Závodit. Závodit. Závodit. A hověději máte úžitě závodit. Mám tady přijít mi. Užitěji 0,0. Vám je to závodit. Vám je to závodit. Je to závodit.ake OK. A z rá�ka. Vejka úžitě pose. Víme?  Někdy bude se hlavnout pro mojí tímhle pár aplikace s tímnicovou vysvěření. Někdy bude se hlavnout pro mojich vývod mortarů a kvílé děláví. Když se když se děláví na kvílé děláví s qA. Zrysta se hlavná pro projekti a prvnejstvání. Vy chodí se než vývodni, a pro těch d나� vývodni k당沒 se vyvodnout. To vám je to, co se můžete závodit.  Až pro projekty, třetí prošletí.  Můžete mít vědělávac pro dělávací a promětí, než můžete dělávací, ale to je tady, které si dělávací a promětí je velice do dělávací. Můžeme cítěnit svou, jakovým vám je zvukovat? V méto dělávací a jakové mě je nevám vypravit? Okay, alright, I'll keep it moving. Let me know if I'm going too fast. But I don't want to delay too long. I will get to this content. So I'll open up, here's a basic application that should be pre-deployed for each of you. How many people have heard of a smoke test? Smoke test? You familiar with this term? When I was traveling, I've done this, this is a term in, maybe more popular in the United States. Je to, že se plukujeme na vlád, a nezapravili to, že se to nezapravili, nezapravili to, že to je třeba vásho testa. Ahojéto, že je to nezapravila, ne? To je velmi minimálný test. Jsme vzpozvávali velmi minimální aplikace, který je vzpozvávat svět, které se vzpozvávali vzpozvávat vzpozvávat a prožekty se představili. To je nejvěděto, jak ta díky s koncelu zvoužit. Jsou vědětovává výstředla. Výstředla vyskává výstředla. Můžete vytvořit vědětová vyskává výstředla. Můžete vytvořit výstředla. Máte výstředli výstředlí, teda výstředlí výstředlí. Můžete dít výstředlí. Vždyšte do rovních mikroservices,ame které se nevášové námi nepovrátí.ardoučí 호váře na дítky, půlου se dotý Huh, můžu to být, měny zvuky, závodní mladéle. To bude největom Kubernédy. Také to bude které zvuky, když se jedno z svých nevůvůvůvůvůvůvůvůvůvůvům v tom podgrupě, to všichni se všechny závodí. A když se všechny závodí, to všechny závodí. To je všechno všechny všechny závodí. Jak se to všechny závodí? A kdež se opušlíš? Nekvělá se, že se jste mělo by apačekotně závodit, že se podgrupě závodí všechny závodí. A teď se pěkní podgrupovat a větkáš, kdež se je závodit závodí. A tak z výšem listy, že se prváváte. uvidjete, že největné konfigurace se kiperujení nejlepa na nájdu selektoru a který teď umoží takový slyčený pod Muchas Memory když je to výřekt. Takže se zvukáváme šlapný nášlock, který ta vlastně nekazá nezapravití, nezapravití rychle a zvukáváte, jak se to zvukává. Jak se to tady jste přijet, který to je to mnohem, které je to přijít? Takže když jste přijít, vždyjíte v poděžitě, a v poděžitě s větším důtem pochodům. ...we can get a quick look at... Here's a topology view here. ...so there's a couple of pieces that we have, one of these pieces here, this is called a route. ...and if you click on the route, you should see more information in the right hand column here. Je to ráda typu, je to ráda námí, a ráda je třeba publiková hodinává na ráda. A ráda je hodinává na ráda námí. To je, myslím, vysvěděvá, ale to je hodinává ráda. You can see which images the container is based on. You can see if configuration has been injected into these container environments. You can also, if you want a persistent disk, you can attach volumes. Because these container environments are meant to be stateless, easily destroyed, easily scaled, easily recreated. And so if you want persistent disk, you need to add it. OK, but that's really nice because it's all Docker concepts, right? All pure Docker concepts, Kubernetes concepts. And the extended types that we have, the deployment config, we're actually adding as a new object type in Kubernetes. It's an experimental object type. After the Google team took a look at our deployment config, they said, wow, this is actually really great stuff. We'd like to merge this upstream. So when it becomes an upstream feature, Red Hat's very, very actively contributing on Kubernetes. I think we have the second leading contributor and we're the second largest contributor as far as companies go. So very active on the upstream of Kubernetes, very active on the upstream of Docker. It's not just our open source, it's the community's open source, right? So the deployment config is becoming an upstream feature. I'm not sure if it will be called deployment config after it's merged into Google's code. It may get a name change, I'm not sure. Depends on, yes? Just deployment. Ah, OK, yeah. That's the ground name, just deployment. Just deployment. So we may need to do a small rebase around. Essentially it's the same. Yeah, essentially the same feature. And who knows this feature best? The Red Hat team, right? OK. So I'm going to go back to the overview and we'll scale up this environment. Please don't scale it up to 5,000 or go ahead and try two or three. And you should be able to see our requested allocation and then it should be fulfilled, hopefully. We've had a couple stability issues with this environment, but aha, OK, we're up to our three containers. Hopefully you all have as success with this demo. Let me know if you have problems. We're eager to collect your feedback and if you would like to pay us, we're eager to collect your money as well with OpenShift Enterprise. We, of course, have the upstream code available, but you can get support from Red Hat, from the team who's working on the core concepts. So now it's hard to see on this screen. Here we will see if I could change the zoom here. Now you can see we have three pods managed by the replication controller.  We have three available. And this is called a service. This is in Kubernetes Tourist. This is basically a software load balancer that will distribute the load across these pods. Within OpenShift, we provide a flat network map across all of these pods. If I click on one of these, actually, I'm going to go to a different view here. This is not quite what I wanted. If I click on one of these pods, I should be able to see here that there's a particular IP address on the node and internal IP address. This is a 10.4 here for this particular pod. And if I go check the pod next to it, this one is on a 10.9. This probably means it's on a separate node. It got placed randomly across our cluster of 10 machines. And you could kind of tell between these that here's a 10.5. So they each get internal IP addresses. The pods can communicate directly IP to IP, but it's more preferable since you don't know if these IPs will stay if a pod is removed or rescheduled somewhere else. The best way to communicate with this group of pods is via the service or the load balancer. Let's see where I'm at in my slides here. Now that we've seen a little bit about the OpenShift web console, anyone still working on logging in or getting the command line tools? You need help? OK. Well, at least you know where to go and which user number. You're 32? 22? Sure, 22, all right. OK. You can use that online too. I'm using it, and it works. OK, good, good. So, good to know you're all ready to continue. We'll talk really quickly about how to dockerize an existing application. If you have a source repository today, you could add a docker file. How many people have never used a docker file? Only a few people. OK, good. Docker file, I'll take a look at an example really quickly. So, this... I wonder if I have a... This might be easier to read, slightly. So here the docker file starts with a line that says from Fedora21. That's the base operating system. I have a maintainer line, and you can see in here I'm doing a yum install, right? Is there anything... Can anyone point out... Is there any potential issues with... I don't know how to ask this correctly. I'll just tell you that one of the issues with doing a docker build is that there is this either a yum install or an apt-get install as part of the build process. In order to carry out this command, what do you need? You need root, right? That means if you are running builds for other people, you're handing out root permission during the lifecycle of this build. And that may be a risky move. For OpenShift, we have a hosted version of our service called OpenShift Online where we say, hey internet, anyone with an email address, come at me. Bring your worst, right? And so we have trolls, we have hackers, we have fraud, we have all kinds of people coming in and trying to take over our machines. And for that reason, when we run image builds on OpenShift Online, we probably will not have the docker build, build strategy enabled on our system. You can build straight from docker files on your own, outside of the system, and then push your resulting image into OpenShift. That will work. You could also use OpenShift to build using the docker files if it's something where you are managing OpenShift. But when Red Hat manages a public OpenShift environment, this might be a build strategy that we disable for security reasons, right? And if you're working in a high security environment, it depends on how much you trust your developers. Do you trust every developer with root? Maybe, maybe not, right? Maybe it's just the operators who do this type of work. So along those lines, we actually, we do builds of the base images by the operations team. And then since docker is a layered file system that you can commit new layers and then do a diff in order to see what's changed. We can add on the application code on top of a known good base, and that's how we do something we call source to image. So we'll show a source to image build next. If you're doing, how many people use JavaScript? A couple people, all right. I'm wearing my Node Interactive shirt here. I do a lot of JavaScript programming. This is a tool that I wrote for helping auto-configure your JavaScript application to work in OpenShift v2, OpenShift v3, Heroku, Modulus is a Node.js hosting. Basically, this gives you vendor neutral configuration strings to help configure your application. If we get a chance to look at some of the source code later, I'll show you how I use this. But inside the container, this is one of the tools I use for auto-configuring my application. We talked about adding a docker file to your existing repo. That's one way to get started. Also, yes? I would love to hear. There might be, I'm not sure. The main thing that you need to know for v3 and for docker, if you're really just targeting docker, the main thing you want to do is expose your web service on port 8080. And also when you bind to an IP address, you want to bind to <IP_ADDRESS>. And then regardless of which IP we assign, it'll work. So really, this is 8080. This is really the result of any time I do that auto-configuration in a docker-enabled environment, this is what my, so for Python, you could shorten it just down to this if you wanted to. It wouldn't maybe, this might work on Heroku as well or other platforms. But if it doesn't exist for Python already, maybe someone should make an auto-configuration library. Another way to automate your builds and to outsource that risk of handing out root permission, you could automate your builds on dockerhub. If you have a docker file in your repo on GitHub, you can do an integration between GitHub and dockerhub. And then any time you push to GitHub, they'll notify dockerhub. Dockerhub will run your build and host a copy of the resulting container image. This is pretty good for a free solution, but my builds take about half an hour here. It's not quite fast enough or rapidly iterate on code. In OpenShift, my builds usually take a minute or less. So let's look at building and shipping on OpenShift. Here's one repository that you can, if you're going to follow along and do a full build and deploy, this is a repository that you can fork on GitHub. You can also just deploy this directly. This is really, it's not even a good, if you want a good repository, I've got better ones. But this is just a very basic repo that I forked from one of my co-workers. Slow network here. Some of our UI really relies on web sockets in order to update the web console. So when the network is slow, it may seem not quite as responsive as what you would see on a better network. So here's this smoke test application. This should be what you have deployed already. It's really just an index.php file with, I think, some text inside of it. It doesn't really execute any code or interpret any code. It's very simple. So not really worth writing down, but yeah, feel free to try it out. You could also, the slides will be available long term, whether it's on a website, which I'm hosting in a Docker container. So you can fork this project as one way to get started. If you want to do Node.js, I would suggest RyanJ slash HTTP base. This is the one that I will be using. HTTP base. GitHub.com RyanJ HTTP base. So if you hit fork on this project, you'll be able to configure an automatic deploy any time you push to this repo. So let's take a look at source to image. I'm going to use the add to project button. That should be in the top right hand corner. And just in case this is, well, let's see about this network. Aha, okay, finally loaded. This looks kind of crummy because I have such a high DPI monitor and as you can see from the browser tabs up top, usually these icons are a little bigger. This looks a little nicer. So hopefully if you have your laptop open, you should be able to confirm this. This is actually a very nice UI. So I'm going to find my Node.js base image. This has already had the yum install already done. All the risk of handing out root permission has been handed out to my operations team, who's already built a standard base. This allows them to have throughout the entire workshop, they can make sure everyone is using the right OS. There are correct dependencies. Everyone is patched up. We don't have a shell shock or heart bleed or any of these major low level exploits at wild within our network. Did you have a question? No, okay. So I'll use Node.js. I'm going to copy this HTTP base repository. I'm going to name the service. Dub, dub, dub. Since it's a web service. I could just hit create here. It's really that simple. You tell us what source code you want. We build an image and hand you back a host URL. Really simple, right? You can't really get much more simple than that. But let's look at the advanced options. If I wanted to start users on a particular branch, let's say I was developing a new feature, I could start them on a particular feature branch or tag, or if I wanted to deploy master from last week, I could look up the commit, check some, and put in the commit hash here, right? Then I could build that particular commit and deploy that. I can also, here is routing. Do I want to expose a route? These routes work kind of like Apache virtual hosts. We look at the host header of the incoming traffic, and then based on the host header that's incoming, we'll assign the traffic to a particular service, and the service will pass it on to the pods, right? If I wanted to have a specific host name that I knew, I've already pointed the IP address or the DMS to go into my cluster, I can sniff for that host name and make sure it gets passed on to my service and then to my pods. If this was a back-end service, a database, I would make sure that this box is not selected. We only want to expose our front-end services, our front-end web services, we'll leave our protected services without a route, so it can only be contacted internally. And if you deploy that base, you would attach persistent storage to that? Exactly, yeah. Would you do that here? No, no, this is for builds, and we wouldn't be running a build with a database. We'd be deploying a pre-existing image. This build service? Yes, yes, it's built into Kubernetes. There was a previous service, they called this load balancer a service. I don't like the term, because that's also what I call my web services. So I'm not too happy about the terminology, but the Red Hat team took a look at the service code in Kubernetes and figured there's some improvements we can make and so we replaced it with a HA proxy-based load balancer. So the service is a HA proxy instance that's running within Kubernetes. It is included by default in Kubernetes. I think these routes are... We'll see whether this was a Red Hat contribution. I have a list which ones were Red Hat, which ones were Google. We'll see that in a minute. Build configuration. So I want to automatically rebuild whenever my code changes on GitHub. Wouldn't that be slick? As soon as I push, let's rebuild a Docker image and deploy it right away. Also anytime the operations team makes an update to our base image. Let's say they find out there's a new exploit, Heartbleed, Shellshock, one of these things, we want to patch our whole cluster. All they have to do is push an update to the base image and if I have this box selected, it'll rebuild my application container that has the base image as a dependency. Really slick. Dual trigger mechanism for rebuilding. Either from the dev team or the ops team. Either one can trigger a rebuild and for my dev environment I don't mind if the ops team rebuilds my containers. No problem. For a CI environment, same is true. Also since these images are stateless, anytime we push new config to the image, usually we do that via a redeploy. It's probably the same image, we're not rebuilding but we're repushing. Oh, actually this is... Yeah, this is build configuration. We can put in specific keys just for the build here and we can also have in our deployment configuration we can say auto deploy in certain conditions. So I leave this auto... From a dev ops perspective this is my continuous delivery checkbox. Check this box, continuous delivery done. At least for my dev stage. Once I have an image built then it's simply a matter of promoting that image across each of the remaining stages in my deployment pipeline. I'd probably leave this unchecked in production. Maybe it's only the release team that does that final promotion of the image. But for every other stage usually I auto promote or auto deploy. We could also say if this was a high availability service we may want a minimum of three right from the start we can add that into our config there. I'll hit create. We'll get this one started. Here's our new service. The build is running. Let's take a look at the build blog and see how well our network is holding up. Usually this page will stream in the results as the build happens. Let's see how streamy this is. Hey, it's moving. That's better than... Good, good, alright. Better than not moving, yeah. So we can watch the build as it happens. When this is done we'll see that it will start pushing the resulting image into our internal Docker registry. OpenShift has a integrated Docker registry and it's... should get there pretty soon. I'm not sure if the build has finished and I don't have the next message or if... oh, here we go. We got some more messages. Lot more messages. If we had errors during the build process these build logs are kept for a short amount of time that's configurable by the management team. They can say keep the last 3 builds or the last 10 depends on how aggressive you want to be about garbage collection. Let's follow. Usually this finishes in generally under a minute is my experience with Node.js. Other language types it may vary for Java users we have something called binary deploys so if you're already building war files or ear files you can use binary deploys to ship your resulting Java environment and we'll wrap that in a Docker container. If you're doing a full Maven build on our system that'll be a little bit slower but we can also do a full Maven build so you can do just a standard get push to get hub get hub will fire off an event back to open shift trigger a new build and a new deploy. The webhook, yeah, I'll show the webhook next. So I'm going to go back to my says the build is completed. Let's go back here and we should be able to catch the deploy happening here. Here's our hostname that's been added or our route. So if I click on this right now I'll see an error message because there aren't any pods available to service the request. My request is going into the cluster on this URL. It's hitting the routing layer that's then passing it on to my service. The service is trying to contact the pods but there's no pods yet and so it should I was expecting a 503 error but the network so slow that it was able to deploy the pod before the request went through. Here's my resulting application that's been built and deployed built into a Docker image from our source using the standard base from our operations team. And then I can go in and scale this up right away. Hit the up arrow the down arrow, scale this up and down. Take these guys down. So here we're up to two containers for our dub dub dub service and I should be able to see all this on our topology diagram here. This is our dub dub dub our route, our service the pods, the replication controller and the deployment config. Any questions? All good so far? Okay. We talked about source to image. Okay, so we talked about, there's a couple pieces. These are two particularly interesting pieces. This will be called deployment in the future. I've just recently learned. The build config is still something really unique to OpenShift and really what makes part of what makes OpenShift a much more developer facing project. Kubernetes is primarily a tool for operations teams who already have images and want to ship those images but it doesn't give developers a whole lot to do until after the image is already built and even then it's really a more tool for operators. So I think our web UI and this build config really add a lot to make Kubernetes much more usable for real users. We have some change triggers that we'll see inside the deployment config. We'll redeploy on environment change or on image change. So if a new latest image is available in our internal registry that will fire something called image change trigger that will notify our deployment config and that's one of the hooks the deployment config uses basically to trigger those deployment events. Docker build is one of our build strategies. Source to image is much more secure and I think faster and better for a variety of reasons I think. Webhooks. Next I'll set up a webhook and then we'll do basically a make a get change in order to build and ship. So here's my HTTP base repository. I already have a fork of this. If you want to follow along with the webhook example you will need to fork this repository. Or you could use the smoke one and then use a PHP base image up to you. There's also some Python examples available if you prefer Python. I could give you a repo URL for that as well. But let's take a look at our builds. I'll go here to my www service web service and take a look at the build configuration. Here is a generic build trigger. This could be used in maybe with Jenkins or even with curl if I really wanted to trigger a build right from the command line or automate it. I could use this generic one. There's also a github webhook. So I'm going to copy the github webhook and go to the settings area and click on fork. All right? Pay attention for this part. I should have more slides for this because this is a little tricky. So if you're following along go to your fork of the repo and click on settings. Try clicking several times if you like. So in here you could see there's a webhooks and web services section. Give it a second click and cooperate. It's really counting on the it promised me a hard line for the presenters and it doesn't seem to be working. All right, here's our webhook. All right, so I will I'll remove my previous webhook and I'm going to add a new one. Here we go add webhook. I'm going to paste in the payload URL. This will link back to my OpenShift Master server. One thing to note here since I generated this environment yesterday and you probably already noticed this when you contacted the server we're using a self signed SSL certificate for this environment. This is because I generated this environment using our Ansible deployment scripts and I haven't bothered to pay for SSL for this one day workshop. So if you really want the SSL certificates I encourage everyone to have real SSL whenever possible but I just generated it myself or really the automation tools generated it for me. So since we have due to that fact I'm going to click on this disabled SSL because one of the steps you'll need. Make sure not to forget this step. Disable SSL. Good question. So I went to browse and then I went to builds I clicked on the build that I want to automate and then there should be a configuration tab within that build and the github webhook should be there. So I think I still need to add webhook. Just you can leave the secret blank all you need is the top line and you need disable SSL. Otherwise everything else leave with the defaults. My webhook is created I should now be able to make a small change to this repo I'm going to make a change to the index.html file and I'm going to edit it so I don't have to get clone and pull down the project onto my laptop I'm going to use this edit the file right on github. This will make it very easy to commit a change trigger our deployment automation and watch the result next section is good how much time? 25 minutes better hurry OK I've got my editor here I'm going to change this to I shouldn't be making a change like this to one of my let's see I'm going to make a more minor change I'm going to change this to I'm going to change this to HTTP base and a container that'll be my new title or new H1 on the page so before we had welcome to HTTP base I'm going to say HTTP base in a container so I'll commit these changes like a good developer I'll add a commit message and like a bad developer I'll commit directly to the master branch if I was committing to a feature branch we could definitely you saw earlier how I can automate based on a feature branch OK commit made let's go back here and see if we can watch the result that should automatically trigger I'm going to reload the screen just in case the web socket connection has dropped looks like it's likely it works well for me oh good good very fast as soon as you make that commit it's going to make that post across to our service in Amazon it's not going to rely on the slow network so it should be right away much faster my build might be done by the time this page loads let me know if you see a failed build in our workshop yesterday we had a couple failed builds not all the deploys happen super smooth on Amazon I often see people operations teams say they use Amazon and whole machines just drop out automatically as part of how infrastructure as a service you're supposed to assume that these things are easily destructible but it's not always convenient when your workshop instances disappear halfway through we really focus on the platform layer and so if containers disappear we'll see that they automatically get replaced but we're not really dealing with infrastructure layer that's really we consider that to be a different problem to be solved by a different team of people and it really depends on what infrastructure you have if you have your own bare metal you could bring your own bare metal you could use Amazon you could use Google compute you got a variety of choices as is there a functionality in OpenShift automatically provision number based on load for example I can spawn 10 new EC2 instances if I need and at the same time if load goes down I can just migrate containers to few nodes and shut down the rest that would be a Amazon specific integration I don't know if we have anything to automatically add nodes that can automatically add a lot of cost if you get your script wrong you can do the same with just to there are APIs to spawn and kill the machine we do have auto scaling based on CPU load and memory not sure if it is in the 3.2 release but so it can scale the node there is automatic scaling is it present not sure but that's what you need to change your core if your initial build that's what you need for your initial build launch is all defaults it doesn't keep any instance running there's a so what we have is that's very configurable in Kubernetes there's something called a replication controller that manages the lifecycle of the pods we create one replication controller for each deployment and then we have a variety of strategies for how to migrate the traffic from the first replication controller to the second so you can do scale down one as you add one and I think that should be the default if you have more than one pod it should be slowly switching it from one replication controller to the next but that's very configurable with your deployment config really not having much luck with the network I tried reconnecting and it's still having a hard time connecting here yeah if you want specific libraries available to PHP or specific C libraries that maybe your application uses you would bake those into your base image and so if I would make a request to my operations team to say my standard base for PHP needs to have image magic and some crypto libraries and some extra things like that to make a request to our team give it a try okay I'm going to give the I'm going to officially give up on the wifi for now and try try the network again see if this is oh yeah I know the thing is when I do I click on auto ethernet here and it says connection established but then hey success okay let's see if my deployment has happened by now I should be well into HTTP base in a container so this amazingly fast a split second after my network connection resumed it was already deployed so this should be very easy make a change on github immediately get a new image and a new deployment and you could see your result right away environment and rerun the test for the next stage of your pipeline good tip thanks Steve okay so now I'll do really quickly replication and healing with Kubernetes hopefully I can move this through this part faster the network holds up I'm going to add some pods here I'm going to say let's scale this up to six environments and then I'm going to use the OC command line tool if I can find a terminal here I'll do OC login against our server URL I'm using a self sign certificate so I'll accept to the additional risk here I'm going to be user double zero password is devconf cz and I'll take a look at the list of containers see if I could move this up a bit I'll do OC get pods and we'll see all the containers that we have I have my smoke build and my one smoke environment I have a dub dub dub build a second build and all of these have a dash two these are from my second deployment the rebuild I could also run if I was using the upstream kubernetes tools kub control get pods let's see if there's any difference in the output exact same output we actually pass through to the kubernetes command line tools for anything that's relevant to kubernetes so now that I have a list of pods I can actually do potentially cause some damage to our cluster and see what happens I'm going to do OC delete pod and I'll pick a couple of these guys this guy this one and maybe this unlucky pod so these three will delete and let's see how quickly this recovers it looks like we're still waiting for one to scale up here but let's see what happens either that or the network dropped that's still waiting for one let's see what happens when we cause some damage to the environment so right away we recognize that there's an error and we reallocate auto repair our environment immediately I'm not sure why this one's having some trouble scaling up find out which one that is and kill it you killed some pods I could also do that from this view here let's see this guy is pending let's go in and delete this guy see if that fixes us up ok something happened there was a reaction that one was destroyed another one got scheduled so the idea with these replication controllers is you ask for a certain amount and kubernetes helps enforce that you always get what you asked for kubernetes kubernetes is a very early project it's evolving I think they're out of beta now but we're working really closely with them to help ensure stability of the underlying kubernetes platform and the docker engine is another thing that we're doing a lot of work looking at ways to make the docker engine really performant it's been a challenge sometimes but I think it's a great toolset to start with don't you have any quotas defined this project does not have any quotas defined if I did have quotas defined I'd be able to click on settings here and then we should actually see graphs based on my allocation from the operations team so the operations team says I get 10 cpu cores and 20 gigs of memory I should be able to see how much of my quota has been used on this page here the quotas or the oh yeah anywhere that you have hardware anywhere you have hardware we can target it using ansible so that was replication and healing we did a scale up earlier here's how you would scale from the command line here's how you can do a list of get pods in order to automate or to demonstrate that auto recovery here's a list of terminology for later I know this is a lot of terms it's a lot to think about especially if you're new to the topic so I tried to make a nice list of follow up I know we've covered a lot of this already but this helps kind of give you a standard idea of what we mean by a node what we mean by an image it's not a VM image it's a container image what we mean by containers volumes, pods I tried to detail all of this so that you would have easy references and this will link through to our OpenShift documentation so you can learn more about each of these topics build configs here's a map of some of the pieces that were contributed by Google and some of the pieces that were contributed by the Red Hat team so Red Hat's really been doing a lot of work to make that image notification trigger that will update our point of config and cause a new replication controller to be created any time a new image is added to the Docker registry we also have from the developer side any time the code, source code changes our build config will fire a trigger to create a new image throw it into our Docker registry that fires an image change trigger and then creates a new deploys a new environment there any questions about this no, make sense what exactly is meant by deployment so I have a question about the terminology deployment in OpenShift terminology what do you mean by deployment what we mean specifically by deployment is usually the creation of a new replication controller which manages the list of pods so you may deploy a micro service thank you it may be usually it's a single micro service that's being deployed but a deployment config can also mention multiple images or multiple containers and target a larger deployment the first version of your application you click deploy so you get this running and it really is up to you it's up to you to define what is in the deployment configuration but this is a object let's take a look at what I have here I'll do oc get dc and the deployment config I want is for www if I put type of JSON or I could do YAML I like JSON better so I'll use that and we'll take a look at the deployment config so here's the object type is deployment config this is the standard Kubernetes object that will be stored in etcd we can see every Kubernetes object every single one has a spec and a status any time you request any data from the API you get two responses here is the actual state and here is the requested state that you've asked for so here's our spec what we would like to deploy and at some point we'll see the status of what is actually live so if there's a mismatch usually the replication controller corrects for mismatches and the deployment config only triggers when there's a change from the integrated Docker registry composition so I'll do one last example where we'll deploy a more complicated application that has multiple pieces to it there's a couple ways to do a composition I know Docker has a swarm I like these Kubernetes templates OpenShift is basically a Kubernetes template with support for the new object types that we've added deployment config is a new object type that you'll find in a OpenShift template but maybe not in a Kubernetes template yet if you have a OpenShift template that only has replication controllers and pods then you should be able to deploy it on any Kubernetes environment not just an OpenShift environment but really any Kubernetes environment should allow you to deploy one of our templates as long as you don't mention one of our special object types one of these advanced object types like a build config they don't know how to do a build so leave that out when you have a Kubernetes but OpenShift gives you support for additional object types what's that yeah, yeah I don't know very much ask the atomic team I need something that works today I use the OpenShift stuff because it's ready right now and it's based around Kubernetes they try to have a more open spec that may target a variety of these environments depends if you need to target multiple platforms you could look into their spec I stick with the Kubernetes stuff for now yeah, yeah CoreOS is another good spec to look into this is the main one that you want to know though this is the link to our templates so here's an example app this is what I'm going to deploy we could take a look at the source code really quick here is the template inside this template you can see there's a list of objects the first is a service standard Kubernetes service I could deploy this to any Kubernetes environment there is also you can see there's some of these strings here we're actually going to inject some variables into our template before we deploy or before we install it you could see one of the containers that I'll be adding is a MongoDB container this is going to be my database this one just uses a ephemeral disk so if I delete MongoDB no trouble but this is really just for demo purposes and for testing my development environment in my next stage when I move to staging I'd have a different template that maybe points me to a larger size database probably a persistent disk so we could see that we're going to inject the database password the database name and a variety of other details we're also going to pass these same credentials into our front end environment so it knows how to authenticate against our database where are they stored they're stored in ETCD in our build config or our deployment config here this is the template before it's actually executed and what you can see at the end of the tip or somewhere in this template we'll see a list of parameters these are going to be automatically injected in some of these will predefine a default value and some of these we'll use an expression to generate so I could have a for every user in this class we could say I want you to start with the name user and then have a 0 through 9 and you know 3 numbers and we could generate users 0 through 999 if we wanted to give it a specific range I should probably have more than 3 characters here but you could see how it's very easy to generate a semi random username and a password here we've got a little bit more characters 16 characters for our password a little bit more secure but we could bump this up if we need to maybe in our production stage we use 100 characters I don't know so there that's the basics I'm going to take this template I'm going to do oc create dash f and I have a local copy of this template I'm going to install the template this will make it available thank you this will make it available internally within OpenShift so let's take a look at that this allows me to really make easy one click installers for you don't even need to be a developer this could really be anyone within my organization I want them to spin up or deploy a specific solution and now we have a way to iterate on those solutions and maintain those solutions so I'll do add to project and here we see in the list of databases in this list here is my new installer Restify this is a Node.js web service we're using MongoDB and we'll show a map with some data on it so I'll click on this we'll go right into this workflow that allows us to customize the source repository sorry it's hard to read here it's because of the screen resolution if you want to make it a font smaller the old guy in the back can still see it there you go you can go more if you want I'm a good judge for not being able to see oh hey thanks we could change the web service name I'm going to let it automatically generate the database username and password I think we have good defaults in our template and I'm almost out of time so I'm just going to hit create and we'll see if we could launch the whole template it says application created we've got some information on how people can follow up and log in from the command line I'll go back to my overview page we could see already MongoDB is being provisioned it's being, here we go scaling up we've got our MongoDB available the build is running for our front end web service the route has already been defined we could take a look at this log and watch the build but since I'm low on time I'm going to go through the last bit of my slides and then hop back and hopefully we'll have a big reveal of the resulting app so ways to try OpenShift of course we'd love to have your money sign up for OpenShift Enterprise OpenShift dedicated if you want us to be your operations team you can have the guys at Red Hat actually admin in your project with OpenShift dedicated in dedicated we set up a pretty good size cluster I think it's ten machines or so the upstream releases are available on OpenShift Origin releases this is where you got the CLI tool we also have an all in one VM if you want to run the whole thing on your laptop we have a virtual box file and a vagrant, virtual box image and a vagrant file so really follow these instructions and just run vagrant up and you'll get the whole cluster all in a single machine on your laptop this is great for developers to experiment or a way to demo this environment for other people you won't be able to do webhooks here since it can't call you back at local host but it's a great way to demo all the rest of the pieces you can also build your own cluster using OpenShift Ansible I set one up this morning 20 min to provision a group of ten machines this is an example of the commands I used if you want to do specifically OpenShift Enterprise in Amazon you want this repo here instead this is some experimental stuff we'll be merging back down into OpenShift Ansible very soon if you have specific questions about this feel free to reach out, I'm Ryan J I'd be happy to help with some free ebooks for you guys if you want to learn more about Kubernetes click on this link, we got a free O'Reilly book another free O'Reilly book about use about Docker security the OpenShift docs Diane here from the OpenShift Commons effort is a great resource if you have a company who likes to communicate be involved in the conversation at Red Hat we really believe OpenSource is about being involved in a conversation about technology that's why it needs to be open if I have to agree to a non-disclosure agreement I'm cutting myself out of the conversation so bring your company into the OpenShift Commons participate, give us some feedback we're not going to ask you to sign an NDA we're not even going to ask you for money it's a very open great way to participate we also have some official training courses from Red Hat and some extra white papers some references if you need to convince your boss so I'm out of time, I'm going to go back and let's see if our build has finished and if my environment has deployed ah it still says it's ah 503 well I think you guys got the basic idea and you should be able to deploy a whole map mapping application any follow up questions if I wanted to deploy an application written in go is there a bare thing to deploy it application written in go I think he's asking if there's a straight up docker and he can drop a binary in exactly what's up yeah I don't know we don't have any builder images any base images for adding your go repo code on top of a known base but if you're interested in contributing a source to image GACO locally has some information yeah OK, sorry I'm out of here if you have any more questions I got to get out of here meet us at the OpenShift booth in the main area we'd be happy to answer any questions thank you guys


From Hollywood, it's time now for John Lund as Johnny Dollar. It's Red Egan, Johnny. Oh, how are you, Red? Was it a boy or a girl? Both. Very head-twins. Oh, and double congratulations. Do I get two cigars? Sure. What does it look like? All three. I'll be there in an hour. John Lund in a transcribed adventure of a man with the action-pact expense account. America's fabulous freelance insurance investigator. Here's truly Johnny Dollar. Expense accounts submitted by Special Investigator Johnny Dollar to Allied Adjustment Bureau Suite 418 Markham Building, Hartford, Connecticut. The following is an accounting of expenditures during my investigation of the Underwood matter. The situation wasn't a new one, and our position wasn't any different. Red Egan reminded me of all this in his office. We're in the same old spot, Johnny, with the same old problem. The policy of older is dead, and if we're looking into it, the insurance company is no longer a friend of the widow or the orphan, but a big bad monster trying to weasel out of a just claim. And every claim is a just claim. Well, the claim came into our office yesterday afternoon, and it turned it over to me for adjustment this morning. I phoned the beneficiary and wrecked her, and she hung up on me. Oh? Underwood's widow. She didn't like it a bit having an insurance man in Hartford calling her up. Even after I explained it, any insurance man left an investigation on a claim, and that's my business. Well, what exactly happened to Underwood? The only thing I really know is that he fell four stories from a hotel window and died instantly. Here. The AP account of his death came from a local paper there. How big was the policy? $25,000. Double indemnity if it was an accident, of course. What about the payment if he committed suicide? This doesn't say anything about suicide. My guess is that a local reporter wrote that up. Underwood was a major stockholder in the newspaper it appeared in. I doubt if they'd suggest suicide, don't you? I don't know, Red. I never met the editor. Well, meet him, if you like. Talk to him. Talk to anybody. When you get to Rexford, go to the inquest and sit with the spectators. Listen to what everybody has to say. After all, it's up to the coroner's jury there to see if Underwood was pushed, fell, or jumped to his death. Not us. I just want you there to be sure that whatever Columbia does about this claim that it's all tidied up. Okay? Okay. Oh, how about my cigars? Sure, help yourself. It cost me $3.69 a box. And on second thought, you can buy me a drink. Expensive card, item one. $214.65. A train fare, bus fare, and incidentals between Hartford and Rexford. I arrived at 11.30 in the morning and checked in at the same hotel where Raymond Underwood had met his death. I had some lunch in the coffee shop, and after that, I struggled my way against the belligerent north wind of the city hall in the inquest. There, I sat with the reporters and listened to a bellhop, a desk clerk, and a chambermaid give their versions of what had happened today underwood met his death. I was most interested in what Mrs. Underwood had to say.  Last Thursday morning. About what time? 12 o'clock, little before, I guess. And where? At the Pioneer Hotel, in his room there. The same room he occupied prior to his death? Yes. Were you alone? Yes, just with him. And, uh, what time did you leave? I was only there 15 or 20 minutes. I must have left before 12.30 to have an appointment. That was the last time you saw Mr. Underwood alive? Yes. They called me about three in the afternoon and told me that he... that it had happened. Uh, what did you talk to your husband about, Mrs. Underwood? We were talking about being divorced. Was the deceased in good health? Yes. Had he been drinking? Some. Not much. I guess he'd had a couple before I got there. She was a tall, dark-haired woman in her early 30s. Clothes were New York. Perfume Paris. Rings Tiffany's. He answered the questions of the interrogator without hesitation, without emotion. It had been previously established by the desk clerk that she'd left the hotel room a full 15 minutes before Underwood had left. By 4.30 in the afternoon, it was all finished. The jury brought in their verdict for the coroner's man to read. He is dead by a broken back received in a fall from the fourth story of the Pioneer Hotel at or about 12.30 p.m. on Thursday, February 19th. I left the city hall and went down to the Western Union office and wired the news to Red Egan. After that, I looked up Sergeant Hannon at the police station. He gave me a copy of the coroner's verdict and the best certificate. Here you are. Thanks. How much you stuck for? $50,000. The joy it goes, huh? Yeah, I suppose so. Uh, Sergeant. Yeah? Where's Mrs. Underwood from? Here. All her life? All her life. Born and raised right here in Rexford. Of course, she went to school in the East and grew up a couple of times, but most of her life right here. Mighty pretty widow. Mighty rich one, too. Underwood had it. I know. This, uh, divorce. Everybody in town knew they weren't getting along. Never did get along. How could they? Alice was 28 and Ray was over 50. He could have been her father. As a matter of fact, he almost was. How's that? Well, he raised her from the time she was 14. She was growing up. She didn't have any folks after her old man died. Ray was pretty good to her. I see. We went over what you were thinking, daughter. Sure, anybody would. But they were talking about divorce. The papers had been drawn up for a settlement. She'd got a lot of money in Alamone and so on. Alice had no call to push him out of that window or have anybody else do it. What about the possibility of suicide? The jury said accident. Is everybody here new Ray? He wasn't the suicide type. Nobody's the suicide type until they come to the end of the line, Sergeant. Then it's too late to interview him and ask him about it. But it's already been said as an accident, so I guess I'm just throwing words around. Never write to do that if you're not satisfied with the verdict, dollar. Anything we can do, be glad to help. Thanks. Thanks a lot. Expense account item two, $10.80, public stenographer. I assembled copies of all the testimony, re-interviewed the people of the hotel, had all of it typed up and notarized and forwarded to Hartford. Then made arrangements to meet my eastbound plane in Cheyenne. I was about to check out when my phone rang. Johnny, dollar. What's up, Red? Insurance agent in Cheyenne just got back from his and said he wanted to change. Maybe I'd better find out. What matters do you want to clear up? Just some details about your husband's death, Mrs. Underwood. I sure hate to trouble you with a time like this. That's perfectly all right, Mr. Underwood. Sit down.  Scott should be fine. All right. Did you know that Mr. Underwood wanted to change the beneficiary on his insurance policy last week? Yes. What are all right? Oh, fine. We also learned that he changed his mind about that the day he died. Can you explain any of that? I think so, Mrs. Underwood. Ray and I were going to be divorced. He moved out of the house bed a month ago. We went to his attorney's and drew up a tent of property settlement. Here you are. Thanks. I didn't see him for three weeks or so, and then we happened to meet and... Well, we had a rather fissure argument about everything. Where was this? In the dining room at a hotel. I was lunching there with some friends. I see. One of those ridiculous things we quarreled and parted very angrily. The whole thing was childish. My first impulse was to see a lawyer and demand every unreasonable thing I could on a settlement. I guess his impulse was to cancel me out of his beneficiary. Did you go to a lawyer? No. I cooled off. Do you know what day this was? The luncheon was at Tuesday affair, I think. Yes. That... that fits in all right? Our parting had been amicable. I mean, Ray and I just didn't get along as husband and wife. But we made it up. Just before he died, he called me that morning and apologized for his conduct. I apologized to him. I went to see him later at the hotel. He fell out of the window after I left. Yeah. Well, then, we can assume that this business with the policies had to do with the argument. I can't think of any other reason. You had no other heirs? No. Why? Well, you see, Mrs. Underwood, it's kind of hard for us to believe that a man involved in divorcing his wife would still name her as his beneficiary. Why do you say a thing like that? Well, because of past experience, I suppose. It's unusual. I see. Of course, I was the last one. I was the last one. Of course, I was the last one to see Ray alive. Mm-hmm. And I could have told you that we were reconciled that we were going to drop the whole matter that he was going to move back into the house. Yes, you could have told me that, Mrs. Underwood. But I didn't. I told you the truth. I hadn't lied to you, Mr. Donner. When Mr. Egan called from Hartfield a few days ago, I was very upset. I've never been a widow before. You're still looking at me with a question, Mr. Donner.  But I'd still like to know about the other matter. Why I am still his beneficiary? Yes. The next morning I interviewed all the people who had been on duty at the hotel the morning of Underwood's death. Then I dropped in to see Sergeant Hannon once more. Well, here it is, right here. I wonder what the room myself with two of my men. The personal effects of the deceased included four suits of men's clothing, and two of my men's clothing, and two of my men's clothing, and two of my men's clothing. I interviewed four suits of men's clothing, 14 shirts, five pair of men's hosiery... Was there a bottle in there? Flicker? Yeah. Nope. How about a flask? Nope, nothing like it, just a glass. Hannon, I talked to all the people at the hotel before I came over here. Underwood left a call for 11.30 the morning he died. They called him. And that's the only business he conducted all day outside of calling his home. We know he didn't leave the room. We know Mrs. Underwood visited him there about 12. Yeah. But more important, Underwood didn't call and have a bellboy bring him a bottle. Room service didn't send him any drinks. The chambermaid swears there was no bottle of liquor of any kind in his room all the time he lived at the hotel. He really didn't drink much. Well, that adds to it. What light drinker takes a drink before breakfast? He only had time to get up and shave before his wife showed up. Who said he had a drink? Mrs. Underwood. On the witness stand under oath, she said that her husband had had a couple of drinks. Mind you, she didn't say he was drunk, but she did say he had been drinking before she got there. You know what I think, Hannon? What? I think she just threw that in because it's a little hard to believe that a cold sober man had walked out of a hotel window and killed himself accidentally. But you and I and everybody else at that corner's inquest got the impression that Underwood was slightly tipsy. I want to know where he got the drink. I want to know who gave it to him. That's what I want to know. Where'd he get the drink? If he had one. That's a pretty good question, Dower. We'll return to yours truly, Johnny Dollar, in just a moment. Every Saturday in the daytime, CBS Radio presents City Hospital. Just one of a thrilling lineup of weekend dramatic programs at the star's address. City Hospital tells gripping stories of life and sometimes death in a great hospital. Tomorrow and every Saturday on most of these same stations, CBS Radio invites you to enjoy City Hospital.  After our talk, Sergeant Hannon agreed that there was enough of a doubt about the circumstances just before Underwood's death to warrant a re-examination of the facts. That was all I needed. I knew that Mrs. Underwood would be questioned and that the pressure would start to build up. I had some pressure of my own. Expensive Count Item 4. $13.25. Another long distance phone call. This one to Hartford and Red Egan. I explained our position to him. What? The best thing right now is to move fast. Deny liability on the grounds that the accident is not proved. Suppose she sues us. Letter. The burden of proving that it was an accident would be on her. Red, he didn't have a drink that morning. He might have, sure. But there's no doctor in town able to tell us he had any trouble along those lines and there's Mrs. Underwood herself. What about her? She was ready for that coroner's jury yesterday and she was ready for me when I called on her last night. The only one she wasn't ready for was you She halfway apologized for that. But she really couldn't think of anything to say to you. I tell you it isn't. Why? Do you have anything else? Free things. Instinct, experience, and statistics. She's a young woman. She was married to a wealthy older man. With him out of the way she has all his money. Everything, not just alimony and a property settlement. And when he left her in the way of property and other things, not to mention the insurance she can go places and do things on. All right. Tell him I'm working for evidence and the best way to get it is to bring her out in the open. File a complaint against her to the district attorney's office. What charge? Suspected murder. Remember the drink. He didn't have the drink. She had help. Somebody got into the hotel without being seen and pushed Underwood out of that window. You bet your boots I am. At six o'clock that night I compared notes with Sergeant Hannon.  She wasn't sure. But Hannon said what we both were thinking. He was sure enough in front of that coroner's jury to give him this leading impression, dollar. We better find out who helped her pull this off. Hannon had 16 men working on the case by then. It was a long, tedious job of combing over everything in Alice Underwood's background in order to find a possible accomplice. About four o'clock the next afternoon we interviewed one of the three servants in the Underwood home. That's right, sir. Once or twice a week. Do you know where she drove to? I have no idea, sir. She'd generally get up early in the morning and be gone all day. How do you know she went out of town? Couldn't she just have gone and visited a friend somewhere nearby? I suppose so, Mr. Dollar, but then she'd generally take a small suitcase to change her clothes. You don't take those when you're visiting a friend in town, do you? You might. Wait a minute. What car did she take? The Cadillac. And I knew it had come back covered with mud and ice. Always have to be washed up. I see. Mr. Underwood used to complain about it a whole, uh, about the car? Oh, no, no, about the trips. They had some pretty good arguments about them. Could you repeat anything that was said? Well, I don't guess I could word for word. Do you know what they were about? Yes, well, yes, about the same all the time. Mr. Underwood said she shouldn't visit that man. What man? Just that man. I never knew who it was that they were arguing about. Uh-huh. How long have you worked for Mr. Underwood? Me, I've been in this house 13 years, sir. And you've known Mrs. Underwood quite a long time? Uh, yes, sir. Yes, sir. When she was a little girl, when she first came here and saw her grow up and go away to school and come back and go away to Europe and come back a little more growing up and a little different each time. I seen her turn into a woman over the years, sir. Were you surprised when Mr. Underwood married her? Well, no. Yes, I guess I was. I mean, she always seemed so young compared to him, but then when she was grown up it was sort of different, so I wasn't surprised at that. Let me ask you this. Did she seem to fit in here? You mean when she married him? Well, before they were sort of, you know, like friends. I mean, they'd ride horses and go hunting and laugh and talk about different things, but she traveled so much and saw so many different things around the world that it didn't seem they were friendly anymore once that they were married. I mean, Mr. Underwood was Wyoming, you know, and Mrs. Underwood, she was well different even though this is her home. Okay, thanks a lot. Wait, I feel awful about Mr. Underwood being dead. I've been telling you the things the way I see them, and I know you'll probably hear different stories from everybody. But I'm glad you came and asked me if there was anything wrong about the way he died. I'd like it to be fixed. Sure you would. Mrs. Underwood probably had fired me for talking like this, but I don't care, this house isn't the same anymore. Before the day was out, a complaint had been issued against Alice Underwood for the murder. However, it was not served immediately because by that time, Sergeant Hannon's men had discovered the names of three men Mrs. Underwood would have been seen with at various places around Rexford in the past three years. One of them had been killed in the Korean War. One of them had moved to Chicago 14 months before. The third one was a man named Tyler. He operated a sizable ranch about 80 miles from the city limits. Then loading cattle under a couple of trucks. You're trying to find out if I've been seeing her on the sly while she's been married to Ray? Why don't you come right out and ask? All right, Tyler, I'll ask. Have you? No, I haven't. There's nothing between us. Any time we were together while she was married to Ray, he knew about it. He's a good friend of mine. I'm sorry he's dead. Alice is a good friend of mine too. Sorry, you people are thinking what you are. Well, come on, let's go off the house. Where were you last Thursday, Mr. Tyler? Did Ray die? Yeah. Right here. Can you probe it? Say, what is this? We haven't accused you of anything, Tyler. We're just trying to gather some facts. Alice is a grand girl. Put that down as one of your facts.  No, thanks. Oh, for me, thanks. When was the last time you were in Rexford? Oh, I hadn't been into the last six months. Wait, I was too. I came in one day around Christmas to do some shopping. Most of the time, my cook or somebody goes in and handles supplies there. OK, Tyler. Mind if we talk to some of your help around here? No. What do you want to talk to them about? First about where you were last Thursday. You were here, they'd be the logical ones to verify. Second about Mrs. Underwood. What about her? What we ask you, just checking it, Tyler. She's been taking trips and visiting somebody around here. We thought we'd get with you. It wouldn't look good if she was visiting me, is that it? It depends on the circumstances. Yeah. Tell me something, will you? Have you taken any action against her yet? Not yet. My company's filed a complaint. Suspicion of murder. I see. I'd like to tell you something. OK. Both of you know her, huh? Yeah. Her daddy was a drunk. When he died, Ray took over and gave her everything. If it hadn't been for him, he'd have been tossing ash and some restaurant around here, kiddin' the customers and married to a truck driver. What's this got to do with her? Let me go on. Sure, she loved Ray for giving her all that, but any woman needs more than that kind of love. I lied to you a few minutes ago. There was something between us. It was bound to happen to me or somebody else closer to her age. I was glad when she and Ray finally decided to be divorced. It was my chance to marry her. They were gonna talk to my people around here.  They'd lie right on down the line for me, but I can't let you take her into custody for something I did. Something she didn't have anything to do with it. I killed Ray anew. How did it happen, Tyler? It didn't mean to. One of my trucks has delivered some beef to the restaurant at the hotel. I rode in with the driver and went in the back way. I went right up to Ray's room because I wanted to talk to him. What about? Wasn't the divorce settled? Yeah, it was all set. All set. He called me the night before. Then kind of soar about Allison. I just wanted to go in and tell him what I told you. We didn't plan to fall in love. We didn't want to hurt him. We both loved him. When I got to his room, he wouldn't let me talk at all. He tried to swing on me. So I shoved him and he went out the window. That's all. Expense account item 5, $38.15. Hotel and food while in Rexford. Item 6, same as 1, transportation back to Hartford. Expense account total $491.50. Yours truly, Johnny Dollar.


This is the red shift, the blue shift is sweeping right now, but we thought we would bring you some highlights of our day today. We will run a video tape where we explain three different science experiments we have going on, and then we've got a little demonstration about what we eat aboard the Space Shuttle Columbia. Okay, well they even let the commander back in the Space Lab once in a while to experiment. This is a simple experiment, but it's one that has a lot of problems. It's called HHDTC, Handheld Diffusion Test Cell, Crystal Growth Experiment that we have all the way to date. In zero gravity we can grow bigger, more perfect crystals of all kinds, and as a result we can bring those back home and the scientists can study them with an X-ray diffraction microscope and really understand the character of what they're trying to study. For example, on this flight some of the proteins that we have, crystals that we are growing, might help out the development for remedies for arthritis. Some antibacterial drugs are on the horizon that we're studying. This next thing actually shows one of the test cells that we're growing on the HHDTC that's located back there in the Space Lab. The crystals look like flexor grains of sand to somebody like me who's perhaps not very versed on this. We have eight cells in each chamber. Three of the cells actually have stuff growing at the current time. I spent part of my day working on the large isothermal furnace called LIF. This is a facility provided by the Japanese Space Agency. We've flown it on, this is the fourth time it's been on a Space Lab flight, and the third time I've had the privilege of flying with it. It's a large furnace. We can put samples approximately eight inches long and about one inch in diameter, and I'm pulling one of them out of the furnace right now. We fly up 25 years on our mission and we're just about done processing them. I think we've done 23 or 24 at this point. This is a pretty much automated facility, similar to what you're going to see in the space station. Our job up here is basically to exchange samples where here I'm taking one of them out and I'm getting another one to put back in to start its processing. There's a lot of ground commanding during the whole processing run of these experiments and it doesn't involve us too much. It's a good way to get science with the minimal crew time on our part. The experiments we're conducting right now are diffusion-type experiments where we're looking at atomic motion and how impurities move around inside of a crystal structure. This is a sample of tin or other ones that we've been flying are lead tin telluride or gallium and impurities such as tin and antimony and termadium. These have great technological importance for electronics and infrared detectors. One thing we always get asked is how we burn these little fires in space. That's what I'm demonstrating here and how do we do it safely. This is a droplet combustion experiment. There's a chamber. This is a bottle that holds the gas. We install that into the experiment. Then it's released into the combustion chamber which is behind all those pieces of equipment in the front. Then that valve there is used after the experiment is over to vent the gases to space. During the experiment we record the views with four cameras which I'm pointing to here. Then we have computers of course to monitor what's going on. So the combustion is completely contained within the experiment. This experiment, the principal investigator is Forman Williams at the University of California San Diego. This is a droplet forming between the needles. The needles it releases ignite and it burns. This particular burn has a fiber support but most of the droplets were burned without the fiber support. You can see the flame and the foot formation in the middle. This tells us a tremendous amount about single droplet combustion. Okay, as promised we're going to show you a little bit about the foods that we eat aboard the space shuttle. There are actually five different types of foods. The first one I'd like to show you is a typical MRE, a military meal. It is what we have... And Tim's going to show you what it's like. Basically it has been cooked so it's been taken out of it. Take this into the field and eat it at any time. It lasts for years and years and years. So that's one type of food that we fly is the thermostabilized. Which is a similar technique but this isn't done for the military specifically. It's done for us and the bacteria have once again been taken out of it. And so it's eaten right from the bag. And this is a beef steak. This is a shrimp cocktail form. And what we do is we add water in it, which is also rehydratable. As dried apricot can be considered any different number of items. If Greg wants to pull some out with a spoon, you can see how our food sticks to the spoon rules are represented. And if not, they'll recommend things that we add.  That concludes our curriculum for today. Have a good afternoon. Space Lab, Huntsville for Greg. Yeah, go ahead. Yes, Greg, just want to give you a heads up that it looks like we'll be ready to continue CM1 at Step Juliet at 2259. So that's right. This is the one that needs that downlinking time too, right? That is affirmative. Go ahead, Ann. Janice, we have a special guest, Alabama Senator Jeff Sessions here with us today at the Space Lab Mission Operations Control Center in Huntsville. I'd like to speak with you. Senator Sessions, please go ahead. Janice? Science up here. A great time. I think we're moving into one of the finest centuries that we'll have in terms of technology and advancement. And you represent the very best this country has to offer. And we're just very pleased with the work that you're doing and how well things are going. Thanks a lot. We feel very privileged to be up here in such a tremendous week for the space program with the Mars Pathfinder Mission. What are the rock efforts going on in the mirror space and that demonstrate what people can do in space and with all the great science here on the Space Lab module, which shows all the things we can learn from being up here? Well, I certainly agree with that. And I think this is the beginning of a commercially feasible adventure in the space and exploration that's what this nation, what has characterized this nation, I think we are a nation of explorers and we're proud of you. Tell us some about the experiments that are going on and what kind of success you've had. The combustion experiments, because that's what I've been mostly working on. And then I'll pass on to Roger Crouch who's here with me and has been working on the more material science and glove box experiments and then Mike can tell you a little bit about what he's been doing too. The combustion experiments, we have two brand new ones that are flying for the first time on the combined 83 and 94. The combustion module one which is a space station design and the drop of combustion experiment which is a drop at burning one. All of these are looking at combination of soot production, lean flames and just half flame burn in space so we can hopefully create better means of producing energy on the Earth through burning which accounts for 90% of the way we generate energy on the ground. And those have been going exceptionally well. As I understand the experiments down there, they're very excited about the results they're seeing. Let me pass it off to Roger. As far as the details of what the scientific experiments and objectives are, I think probably the principal investigators there in the talk will be able to give you a real good feel for that. What I'd like to describe is that the pleasure that it is to be up here, the material science experiments that we're doing in LIF which is a cooperative, we've got the Tempest which is a cooperative program. The flavor that goes with that, we have an accelerometer that's also an international German U.S. And so I think that this is a portender of the future that will be one world as we go to space. Even going to Mars I think is a worldwide adventure rather than a single U.S. or a single nation venture. I'll pass it on over to Mike now. Yes, Jeff, my role has been to keep the space shuttle flying and working normally to support the science back in the lab here and fortunately we've had a beautiful ship this time. We've had very few problems and been able to support all this great science. The other thing I think it's real neat about this mission is it's kind of a bridge to the space station. A lot of the experiments and the techniques that we're using are the same kinds of things we'll be doing on space station. And I think you mentioned commercialization. A lot of the basic research we're doing now will evolve I believe in the space station era and produce commercially viable drugs from the protein crystal growth. And I think once that starts happening we're going to see space really open it up and lower its orbit to all kinds of commercial opportunities which will be great for our country and for the world. Well, I appreciate that. It does sound like things are going well. I serve on the environment committee and one of the things that we're constantly working about is how to burn cleaner and more effectively. And just a one percent or half of one percent increase in burning and ability to produce energy would be a marvelous thing for Americans. And I just wish you the best of luck in all your experiments.


It also helps us form our tenses. Many of the tenses will use these auxiliary verbs. Particularly, we have our continuous tense and our perfect tense. There are additional tenses that use auxiliary verbs, and we'll get into that when we talk about our individual tenses. Another important aspect of our verbs is that they generally tell us what tense the sentence has been formed in. Take for instance the verb to live. We could use it as live, or lives, living, or lived. I live, or she lives, in Bangkok, meaning the present. I am living in Bangkok, still the present, or I lived in Bangkok, meaning the past. Another difference with our verbs has to do with whether or not the verb is regular or irregular. With the regular verbs, in order to conjugate the verb into the past, we simply add ED. We need not do anything more. I worked yesterday. I played football last Saturday. It's always the ED form. With the irregular verbs, in order to conjugate or change the verb into the past, we have to change the word completely. Or certainly, we cannot simply add ED. So go goes to went. I went to the store yesterday. And speak goes to spoke. I spoke at a conference last Saturday. When changing the form of our verbs, there are a few patterns that we have to keep in mind. First of all, we have our one-syllable verbs, which follow a pattern at the end, consonant, vowel, consonant. In this instance, we have to double our final consonant before adding ING or ED. In two-syllable verbs, such as occur and happen, we have to be focused on where the stress in the verb comes. Here we've got occur, the stress is on the end of the word. Here we've got happen, where the stress is at the beginning of the word. When making these changes for the stress at the end of the word in patterns consonant, vowel, consonant, we double our final consonant before adding ING and ED. However here, where we have the same pattern, consonant, vowel, consonant, yet the stress is at the beginning of the word, there is no doubling of the final consonant. Now we go back to our one-syllable verbs, the end in Y. Here we have a consonant before our Y as in cry. In here we have a vowel before the Y as in play. In this instance, with consonant Y, we only add ING to crying, but we have to drop the Y and add IED for crying. However, when there's a vowel before the final Y, we need not do anything, we only need to add ING or ED.