Hello, what's up? We are on twitch. We are not live Particularly would like comment subscribe turn on your post notification bells man Let's continue to grow the family from Chicago to the UK And if we do go live and you happen to miss the live any great moments will be on this channel right here, but this This link is down below in the description go follow that man. I'd appreciate it. I would really appreciate it Don't forget we do got the patreon dropping two videos today might be three But I got two done so far. They're gonna they're scheduled to drop today, so I'm not gonna promise that third one. I ain't gonna lie to you links down in the description I really appreciate this if y'all follow me here. Even if y'all want to look support me Because a lot of people ask me how can I send you this? How can I send you that? Just sign up to the patreon? That can support me You know, I'm sorry cuz I don't want to just I don't want no handout. Just you know, I'm giving something been returned And don't forget we got the discord a Lot of these requests that I'm doing today are off the discord So, yeah, things down in the description a Lot of youtubers a lot of youtubers getting to this mode Where they think they know best? Oh I got me here. I got myself here, but let and all out honesty Like okay, I granted when I first started I didn't know what to react to when I was just reacting But then once I got rolling and y'all start coming in and start showing support Y'all gave me damn near all of my all of my top is videos that I've ever had. Yes I had to delete all my videos. There's slowly but surely coming back I'm putting them back on with all of the viral videos. I had before y'all y'all suggested them all So I'm not against Taking y'all requests and watching them. I do that so Number one way to be successful is listen to you listen to the service listen to the game And y'all could put child opinions here on the discord links down in the description Um This is from coffee house prime. I am sub to scoffing house crime. I do like a lot of their stuff They they they beyond on it um a sinister murder Plot it on the dark web The case of re is see I don't know how my bad. All right, pita This was in the discord as well. So let's get into it I Believe this is a discord. I can't remember On august 17th 2007 from the intimidating depths of the dark web an ominous message appeared the message read I'm looking for a partner in crime. Would anyone like to work with me? Two other individuals would answer back thus creating an underground friendship between three newly formed criminals And moving forward the trio plotted an elaborate and evil scheme to get rich Their plans would target the vulnerable And ultimately it would cost the life of a terrified individual and leave a nation reeling in anger Good morning. Good afternoon or good evening folks. My name is adrian and welcome or welcome back to coffee house crime Today we're looking at the disturbing case of rea is a guy infamously He's he's from the uk right I can't I can't talk an accent right now. Maybe because i'm I don't know, but it's it's a slight known as the dark site murder in japan This case brought many questions around the nation's death penalty Though shockingly it barely made any international headlines before we begin and just to let you know I post true crime in strange cases here weekly. So if that does sound like a kind of thing Please consider subscribing to the channel. It really does. Hey, i'm already sub my boy. You feel me? Help me out and now with that said, please grab yourself a coffee pull up a seat and get ready for the deep dive This is the case of rea is a guy That's a w intro. We got a little coffee grinding and everything. That's tough Welcome back to japan folks found in the far east of asia This island nation is tucked away to the west of russia china and korea It's a highly fascinating country and with thanks to its geographical positioning It experiences a jaw-dropping variety of seasons. We're talking several meters of snow in the north here Where's nose in japan? Which greatly contrasts to its tropical paradise in the south This case takes us near the middle of japan's main island hanshu i chi prefecture is home to seven and a half million residents and is often referred to as one of japan's main manufacturing hubs Its capital nagoya is the country's fourth most popular city and landmarks include at suites shrine a tree-lined shinto pilgrimage site and the restored 17th century fortress of nagoya castle And of course talking about one of my most favorite topics the city is famous for its nagoya style tebasaki japanese Yeah, see a listen I love me a japanese-chinese my goalie or whatever Whatever woman that that could do this Fried chicken is from asia if y'all didn't know We didn't invent that they think we did we just be eating it but they be doing that That's in chicago you go to the chinese fight get the chinese fried chicken Look at this perfectly golden my bad. I enjoyed the scene too much chicken wings with shatteringly crispy skin coated in garlic Ginger and black pepper now today's video requires more explanation before we get into the story Although many of us would have already heard of the mysterious dark web and its disturbing connotations never heard of it Knowing what it actually means is very crucial here open any standard browser and punch in any old url And typically you're surfing the web But taking it one step further if you want to access something Confidentially such as medical records your mail or fee based content like only fans You have to access the deep web to find it Which by the way, did you know that around 98 percent of the internet is actually classed as the deep web? The long story short here is that if you want to access confidential things Then the url you follow has to be both encrypted and time based so no one else can follow it Well, we're going even deeper than this The dark web is a subset of the deep web that is intentionally hidden away And furthermore requires a specific browser such as tor to access it now There are good reasons for this one example is to hide customer and consumer data And of course with the intent to make something private also comes a demand to exploit it Which is surprisingly very easy to do It's almost impossible to avoid the usage of the deep web and even the dark web And with no adequate restrictive measures put in place It is a free market for both sleuths and criminals to operate at will Sharing your personal data online is a lot easier than you may realize Every time you sign up to a website or subscribe to a newsletter It often comes with the terms of service for you to accept and unfortunately It is as simple as that by accepting the site policy or terms of service You might actually be giving consent for your data to be sold and resold by hundreds of data brokers This is where the real problem exists Many of these data companies hold personal information like your name gender online alias shopping habits and even your home address Smaller consequences include spam and targeted ads However, in the wrong hands people with the right information and a vested interest in you could do a lot more damage And this is where this video's sponsor comes in Incogny Incogny helps you protect brokers the objections Yeah, you fit that in look at this They gotta pay the bills I get it For you after signing up it's to work with a type of data your online privacy in below And now let's get straight back into the dark web But most estimates place it at around 5% of the entire internet Compared to 98% being the overarching deep web family and only 2% being the typical non restricted worldwide web Now despite its ominous sounding name not all of the dark web is used for illicit purposes But indeed it is an area for scammers fraudsters and other illegal activity to flourish And throughout recent years felonious activity here has become more frequent more severe and even more creative The worst corners of the dark web includes fordry and hacking illegal pornography and even murder for higher services And on august 17th 2007 amongst this dark virtual world one fateful message appeared in the forums of one of these hidden websites I'm looking for a partner in crime the message read I just got out of prison Would anyone else like to work with me in the togai region the ominous messages author went by the username yameshita Which was a pseudonym used for yami no shokuan roughly translating to the job of darkness in english And the person behind it was a 40 year old man who went by the name of kenji kawagishi kenji was not your typical stand-up citizen Bullied as a child due to his ongoing kidney disease He became a delinquent in japan society And although he eventually settled down with a wife and four children after several minor convictions He would sadly eventually return to the world of illegal activity in august of 1990 He began to use the dark web to obtain open and sell bank accounts Which could then be used for fraudulent activity although this brought in extra cash for the family His spending habits rapidly outweighed this new stream of income and by 2002 his apartment was ultimately seized due to tax fraud And missing mortgage repayments now unfortunately kenji was also allegedly abusive towards his family Yet thankfully his wife didn't put up with this bullshit She and the kids fled for their safety shortly after these signs started to appear and eventually the two settled for divorce But kenji grew exhausted with his life after this and between the years 2003 and 2007 He was in and out of prison on several convictions of fraud Despite these charges he continued to use the dark web after this and often moved from job to job Which was usually in transportation or commercial security Surprise he in japan don't they ban you can't they ban your internet access and if you violate they can come for you At the time of posting his message on the dark web He had just come out of prison on yet again more fraudulent activity And was now living out of his car in isai city and after reaching out into the unknown world of the dark web Three other men responded just a heads up But we're going to exclude one of them as eventually he bailed out of the scheme and was never involved in this case However, the other two were far more guilty Tsukasa kanda was a 36 year old with a similarly troubled history to kenji bullied at school and suffering from chronic headaches He was also abused by his father and this volatile and deeply harmful environment led tsukasa to join local gangs and commit minor crimes However, eventually in 1989 he graduated from takasaki technical high school He began to use the dark web in 1997 Was convicted of fraud and then found himself a job at the newspaper company isahi shimbun Allegedly he often got in trouble with his colleagues and his boss And his take home salary was so low that he received weekly pocket money from his girlfriend to support him at the time And so similar to Kenji tsukasa was also in debt and was financially desperate Yoshitomo hori a 32 year old dance player from the same area also responded to the message And although he had no prior criminal history He was over four million yen in debt the equivalent of 30 000 us dollars or 25 000 pounds Although there were several other replies to the message on the dark web kenji selected these two to work with and just a few days later on August 21st 2007 the three met at yoshitomo's residence It is here that they began to formulate a devious scheme to make money All three men were in crippling debt and blinded by both panic and greed They simultaneously expressed a cold disregard for the welfare of others Their drafts contained several plans which included pickpocketing Kidnapping and even a heist against a pachinko parlor, which by the way is a type of japanese casino The trio tried to conduct one of these plans the next day on august 22nd and The next day they didn't waste no time Desperation to make you do some cold stuff And their plan was rather simple target a pachinko parlor customer follow him home and then abduct him and rob him of his money However, after tailing his lexus vehicle They realized his home was alarmed and he had a dog and so there was no way they were going to get him After following another target home the next day They were very disappointed to realize that he was in a very tight security building And so yet again the heist was called off The group came closest to making money when they used a stolen credit card to buy a gold necklace at the local don kiyoti But sadly or rather not sadly this also failed By the way, for those who don't know don kiyote is an incredible experience to have when visiting japan The buildings are usually massive and sells pretty much everything you can think of And in a good way, I remember being absolutely overwhelmed when I went there from instant noodles to underpants frying pans to dog beds and pokemon costumes all the way through to uh 10 gags don kiyote Like what is this like a mall? Tei has you covered It's kind of like a multi-level department store cross treasure hunt And I bet my bottom dollar that you'll be sure to leave with the suitcase worths of stuff It's kind of like a It's kind of like a mall slash like Like a like a like a Dang, I forgot the mall that we used to have in chicago. I forgot the name of it man. They tore it down But it's like little Little things like this Whatever the place sells really cool stuff and not even sure why but when I went on kiyote, I bought 10 of these in like 10 different colors kind of cool though, right Anyway So it appears that our three men were not having any luck with their plans and with their failure came both Frustration and desperation and tragically the very next day and after upping the ante their devia schemes would come with some very harrowing consequences flea market Flea market. It looked like a flea market It used to be one of those on chicago. It was on clark and On the north side clark and something clark and like ridge, maybe I don't know Flea mall hustle. What was it called? I forgot it was a long time. I was a kid Three reasons by any time mailbox was the best investment for my side hustle By by using my home address as a mailing address or worse a p.o. Box and hello I couldn't find my cursor august 24th 2007 it was a friday and at 10 p.m That evening young office worker rea issa guy was walking through the streets of nagoya to return home from her job The day was long in the tooth and with it being a friday the working week had overstayed its welcome rea worked in the office of a semi local firm most of her tasks were administrative Meaning she was not someone particularly high ranking in the company But was just as essential to keep it ticking along trying to find recognition and reward for her hard work She stayed late to finish her duties that friday and by the time she had almost made it home that night The streets of kanagawa were dark and silent, but no worries She only had a few more corners to walk to make it back to her front door Looking into her past rea had always been a hard-working and thoughtful individual She was born on july 20th 1976 to her father suiyoshi and mother fumeco Sadly she was only a child when her father passed away This tragically leaving both her and her mother to fend for themselves But through this the two formed an inseparable bond and although she dropped out of high school She impressed her mother by jumping straight into work to add to this rea even held on to the dream of one day buying her mother a house rea loved board games In fact one of her favorites was called gome and in her spare time she often met friends and even made new I've seen this game before Never understood it. He once at go cafes across the city She was a strong-willed person yet caring all the same time And now that she had reached her 30s She was focused on progressing her career which takes us back to the story to august 24th 2007 residing in komei 2 of jacuzzi warden. I like how he does as though like He gives you the backstory makes it sound good and goes back to the story Just so you can just so you can develop a relationship with the person Nagoya rea used the Higashiyama line to reach her local station at moto yama This was part of her usual commute and once there she made the one mile walk back home It was just past 11 p.m. When she walked past an idle vehicle and with no reason to be alarmed She ignored it without giving it any second thought it was at this moment Though that the car made a u-turn and discreetly passed by rea Peering up she noticed a man nervously looking around at the buildings And as she approached him he turned around to ask her a question politely I'm looking for the local convenience store. Do you know where I could find it rea stopped to answer However, before she could even answer him She turned around to see another man lunge at her and all in the meanwhile The car she'd spotted before had now hastily parked up next to them rea screamed out loud But nobody in the neighborhood had heard her and before she even knew it She was in the back of their vehicle a vehicle that was now speeding off into the distance All this stemming from the dark web That's crazy It's crazy to me that four percent of only two percent of the internet is worldwide internet Then the deep web is ninety percent eight percent of it and then under ninety eight percent four percent of the dark that's wild The deep web is like the ocean And then the the regular web was like the little bit of land I'm saying consequences of that night were discovered the very next day A body was found around 35 miles northeast of Nagoya and in the mountains near Mitsunami It had been partially buried near a bridge from route 33 and tragically this body belonged to rea as a guy She was discovered by the authorities just after 7 p.m. Meaning she'd been missing for just over 20 hours They didn't even execute the plan they immediately despite being concealed in a remote location She had been discovered very quickly for a very good reason because the one to break the news would be none other than one of the Killers themselves earlier that day the authorities were greeted with a very concerning phone call and after picking up the phone The voice said I kidnapped a woman. I stole her money killed her and then buried her in gifu prefecture As you can likely guess the three men to abduct and kill rea is the guy where kenji yoshitomo and sakasa And she'd become their first and only victim from the dark web After abducting rea and planning to rob her of all her money They then murdered her in cold blood before why wait the only reason they really got caught is because ding tricked on themselves Like what was up with that? I just had a guilty conscience as he should But you know being 35 miles out of town and dumping her body However, it seems like it didn't take long for kenji's sanity to break because by sunrise he had become extremely paranoid After making the call he was detained by seven police officers dispatched from the midori police station And after being questioned for 15 minutes He was taken to the mobile investigations unit before leading officers to the site now kenji was absolutely terrified of capital punchments However, under japanese law, he was not allowed to be executed if he surrendered himself first And so after his despicable act He was trying to beat them to the punch Bro was out there singing quicker than gunna That's tough And kenji was left with two options try to evade the law and risk his life or give up his free life and guarantee survival kenji chose the latter and in addition to this He even confessed that he had the help of two other accomplices and even provided both their names and addresses Yoshitomo and tsukasa were arrested the very same evening and just hours later Rie's body would be formally identified by her mother. Naturally, Fumiko was distraught by the news Rie was her one and only child with a father who had died decades before The entirety of her family had now been lost and rey's absence left a massive hole in her heart She described identifying her daughter's body as an out-of-body experience And despite her daughter's body's chilling condition. She hugged her tightly through the pain and anguish Colleagues of rey were devastated too. They had known her for many years Not only was she just a colleague, but she was also a friend too by midnight The special investigations unit publicly announced rey is a guy's murder They further reported that three men had been arrested and believed that no one else was at risk Although only one had openly surrendered to the authorities kenji Yoshitomo and tsukasa all eventually confessed to their crimes They told investigators that they had met through the dark web and that the primary motive was greed to settle their unpaid debts Furthermore, they also confessed that they were willing to do anything to achieve this which Like why don't y'all take it to that extent? Y'all robber? Okay. Why don't y'all just let her go after that Sadly included murder the details of this crime are particularly saddening after being abducted Rie was handcuffed inside the car and driven to a secluded area The vehicle used to transport her belonged to kenji and had been unlawfully obtained through one of his former fraud schemes through the dark web Her bag was looted which at the time contained 62 000 yen the equivalent of $450 or 380 pounds She was then further pressed to provide her bank card's pin number But unknown to all three of them at the time she had given them a fake one shortly after this Rie was then suffocated and beaten with a hammer approximately 30 times and eventually she heartbreakingly Dang that's gruesome too to come to her brutal injuries The three assailants then stopped by a hardware store purchased two shovels headed out into the mountainous countryside And at around 4 30 a.m. Dumped her body in mutsunami at around 9 a.m. That morning They tried to withdraw money from her bank account using the pin that Rie had provided them 2 9 6 0 or was it 2 9 4 6 or 2 4 6 0 astoundingly it seems that remembering force So none of these idiots wrote down It was fake anyway, but none of these dudes wrote it down Purple digits required far too much intelligence for these three men as all three of them had forgotten what she had said Despite already showing incredible levels of stupidity. It takes a special Kind of Incredible levels of stupidity. I could have said that better myself It's sad despite already showing incredible levels of stupidity It takes a special kind of stupid to come to the next conclusion But since they had failed to make any money this time around All three agreed to meet again later that evening to find another woman to abduct rob and murder However, as we all know before they could even get there Kenji's conscious thankfully got the better of him following the loss of her daughter Fumiko made it her mission to punish her three killers just as hard as they had punished her And within 10 days of Rie's death She had launched a campaign calling for the death penalty for all three men By the 10th day she'd received the support of 100,000 people. Yeah, no, okay They need that they need that penalty of death Uh It's just in the gruesomeness of that they did it By October was 150,000 and by December was 318,000 signatures Not only that but incredibly even Yoshitomo's and Kenji's fathers begged the courts for the death penalty Although single murders already face the death penalty in Japan This case seemed to drum up a lot of anger in the general public And not only that but recent trends showed that people favored stricter punishments Initial court proceedings began roughly one year later in September 2008 I would be surprised if Japan did not give them what they asked give the people what they asked for And in this first session all three admitted to robbing and murdering Rie They further admitted that things got out of hand when they tried to live up to their boasting online This is because all three men had claimed they'd murdered someone in the past when in fact all three were lying to each other Is your website? That's crazy murder was a qualification It may all was capping about it Defense attorneys argued that Kenji, Tsukasa, and Yoshimoto should not be punished with the death penalty because Rie's death was supposedly accidental No way! How? They suffocated being hit with a hammer 30 times. How's that accidental? And then the next day you all agreed to go do it all over again That ain't accidental. That's premeditated They also argued that historically speaking all single murder cases usually result in a life sentence and not the death penalty Now all three defendants disputed who was the primary assailant and mastermind behind the murder Kenji insisted that Tsukasa was to blame And Yoshitomo followed these allegations But Tsukasa blamed Yoshitomo claiming that he was the first to strike Rie There were clear differences in attitudes during these discussions Although all three men seemed unfazed and emotionless over their actions Tsukasa often made fun of Rie throughout court proceedings where Kenji said that the victim was simply unlucky But on march 18th 2009 judgment day finally arrived The district court found all three defendants guilty of all charges and as a result Tsukasa and Yoshitomo were sentenced to death for their actions It was ruled that their motives for the crime left no room for leniency and that capital punishment was the only option And Kenji was given a life sentence due to his early surrender Although Rie's mother and ex-partner were both disappointed at Kenji's life being spared It was widely recognized that a death sentence for Yoshitomo and Tsukasa was exceptionally strict when compared to similar cases As expected all three men appealed to have their sentences reduced And while Yoshitomo's death sentence would be reduced to a life sentence Tsukasa accepted his fate and withdrew his appeal This resulted in both Yoshitomo and Kenji being spared their lives However, for Tsukasa, that would not be the same and on June 25th 2015. He was executed via hanging Asad's executed via what? Same and on June 25th 2015. He was executed via hanging That gotta be the worst way to go out Like like you you deserve he deserved that but like I didn't even know that could be I I didn't even know that was still a thing A sad side note to the story but unknown to Fumiko at the time Rie had actually been saving more than half a monthly salary to help buy her mother a new home At the time of her death, she'd saved up more than 8 million yen, which is the equivalent of $59,000 or 50,000 pounds If it wasn't for their forgetfulness her assailants may have even got the hands on all that money But thankfully they were too stupid to remember for digits Regretfully I see much familiarity between this case and the story of Eve Carson Both were bright young women with great prosperity ahead of them And they were both caught up in their day-to-day lives when bad luck and merciless tragedy struck They were targeted hunted robbed and then murdered and for what exactly a few measly hundred dollars The motive behind their deaths is quite bluntly almost entirely incomprehensible an entire life filled with friends family Partners love hope Friendship and prosperity was ended to temporarily fix the financial burden of an irresponsible low-life individual The stark level of selfishness is entirely enraging and now a mother has lost her one and only child An array of people have lost a good friend and a young woman has lost her life To this day Fumiko still gives lectures in various schools Listen, I don't care what nobody say. I'm from my daughter will know Jujitsu at the high clip And she'll carry that Meow with her if anything get out of hand Teaching my daughter all of that places to talk about her daughter's story She provides insights into keeping people safe on the streets and even raises awareness of dangerous online behavior RIP, yeah And that's pretty much where we are today with Tsukasa dead both Kenji and Yoshitomo remain alive and behind bars Forever and so concludes another video today folks. Thank you so much. No problem Tlo leave a like comment subscribe turn on your post notification girls. I'm gone


All right. I think we can get started. Welcome, everyone. We're talking about Drush 9 today. This is the latest and greatest version of the Drush command line tool. My name is Moshe Weitzman. I'm a longtime Drupal developer, one of the maintainers of the Drush project. You can see that I'm an independent consultant available for hire on architecting big Drupal websites, specializing in developer workflows. And you can see that I'm also the maintainer of the DEVEL Contrib project. Right here, Greg Arenderson. He's going to be the other speaker today. Greg is the Pantheon platform engineer and open source engineer at Pantheon and three of the projects that he maintains are listed there. There are more, but those are three you might have heard of. So here's a quote from our founder, Arto Bendikin. He gave Drush its slogan. It's a veritable Swiss army knife designed to make life easier for those who hack at the command prompt. So I bet we have a lot of people in here who hack at the command prompt. And I hope you like our latest version of Drush. So Drush has been around for a long time. It's 11 years old. And Drush 9 is the first time we've done a ground up rewrite since Drush 3, I believe, the year 2008. So really, this is a monumental change. And we're really proud of where we've gotten to and what it is. And we hope you guys love it as much as we do. Some of the principles that guided the rewrite of Drush are listed there. It's object oriented. It's symphony based. It embraces the composer workflow. And it embraces Drupal 8. So there's been lots of change in PHP land since 2008. And Drush 9, I think, really brings us up to speed. Drush has always been a pleasure to use in that it does what you want with little fuss. But right now, we have a situation where authoring commands is a modern sort of activity, as well as all of the guts of Drush are object oriented and really nicely decoupled. So we have two main sections for the talk today. I'm going to be talking about using Drush 9. And primarily, Greg is going to be talking about all of the APIs underneath that make it do what it does. So getting started with Drush 9. There's typically two things that you have to do. You have to start your project. And by this, I mean your composer project. For the moment, I'm assuming you're starting completely fresh on a new project. The way you start fresh is you go to a specific GitHub repo called a Drupal-composer slash Drupal-project. And you follow the read me there, and that will give you all of it. It assembles your code base. For your Drupal-8 project. And in addition to a Drupal code base, it gives you the Drush command line tool right there in your project. The second thing you have to do is install a tool called Drush Launcher. This is a small composer-based tool that's distributed as a far, drush.far.   And then that hands off control to the site local drush that came in with the Drupal-project. So just to re-emphasize, here's a screenshot of the Drupal-project's GitHub repo. Here's where you want to go to get started, OK? And just follow the read me instructions. Basically, there's one composer command you need to run called composer create project. And it will go ahead and get you started. You get a copy of Drupal in there. You get a copy of drush in there. You get a copy of Drupal console in there. So just about everything you might need for your project is right there. And then in order to be able to call drush from anywhere on your system, you need the drush launcher. So this is a screenshot of the drush launchers GitHub repo. Just follow its read me for how to get that installed.  If you need to update it later, it has a self-update function. So that's the process if you're starting a new project. If you already have, let's say, Drupal-8 site and you want to use drush9, your best bet is to make that into a composer-built project. That's really what drush expects. And to a sense, that's what Drupal expects to. Otherwise, you're going to have a really hard time managing your dependencies. So I just want to mention two projects that help you convert from a bare Drupal site to a composer-built one. MakeConvert is a command that's in drush8. If you are a drushmake fan, this command takes your drushmake file, loads it up, and emits equivalent composer.json. So with that, you're well on your way to having a composer-built project. And the next thing is a drushcomposer generate. That's a contrib project that you can check out with a drush command in it. And that will take a bare Drupal website, look at the modules and projects you're using, and create a composer.json for you. Saves you a little time. In general, your goal with either of these tools is to have a codebase that gets assembled by composer install. All the other ways of assembling your codebase, like drushdl, like drushmake, like grabbing tarballs and sticking them in directories, all of that is legacy at this point. You really want to be using composer. And of course, people ask, I don't want to. Why do I have to? I think the two-word answer is dependency management. More and more of the modules you want to use in your Drupal sites have dependencies. And they have dependencies on composer libraries that are not part of Drupal. Those libraries have other dependencies. And it gets to a point where you can't keep all your dependencies compatible with each other without using a tool like Composer. So for people who have been resisting it, I sympathize with you. I resisted it also in the very beginning. But there's a happier life on the other side. So please go ahead and embrace Composer and help out your friends in getting there. But there is no turning back on the Composer wave. Thanks. So I mentioned that Drush 9 is a huge rewrite. And there's a lot of changes, particularly under the hood. I want to emphasize that a lot of things haven't changed. And you can still run the commands you have been running. Drush pm-enable. Drush pm-uninstall. Unchanged, OK? Uli, rsync, SQL sync. It's all there. It has the same options it always has and works the way it did. The config commands. I mentioned their Drush at foo status. The at foo is a site alias. Those are used identically to how they always have been. Drush pml, pm-list is the long name. Dash-formin equals JSON. That's an example of an output formatter. Drush has had these since Drush 5 or so. They still exist in Drush 9. From the command line, they work exactly the same. And just one plug for the Drush topic command. The topic command has lots of documentation about how you do things in Drush. OK, so just run topic. You'll see about 20 different topics that we've written. If you read one a night, it only takes 20 nights. And I encourage you to do that. So some things have changed in Drush 9. And I want to call out the dearly departed for things that you can't do anymore. Drush make is gone. The archive commands are gone. And the quickDrupal command is gone. pm-update and pm-download are gone. So these were good friends to a lot of us. And I thank them for their service. But they are deprecated and gone right now. One little note. People may have been used to using dash n to mean no. It doesn't mean no in Drush 9. It means non-interactive, which really means accept the defaults. So please don't keep that habit if you are using dash dash no. A ton or five tons of procedural code is gone in Drush 9 to be replaced by shiny new object oriented code. Drush 8 and prior versions supported multiple versions of Drupal in one Drush. That is no longer supported. So you'll notice that Drush 9 only supports Drush 8 and doesn't support the prior, sorry. Drush 9 only supports Drupal 8 and doesn't support Drupal 7 and Drupal 6. If you are still running Drupal 7 and Drupal 6 sites, I encourage you to keep on using the Drush 8 the branch. And that will stay maintained for a long time. And why did we lose all of this dearly departed stuff? Because there's only a few people maintaining Drush. And it got too big to maintain this like multiple version thing and lots of procedural code that was calling into Drupal 8's OO code. It really became a bear to maintain. And so we went ahead and overhauled it. I think it's going to be more pleasurable for the maintainers to work with and more pleasurable for the people who are authoring Drush commands to work with. There are a few things that have left Drush 9, but we think they're going to come back soon, either in 9.0 or 9.1. Shell aliases, the site set command, and bash completion are things that we had in prior versions and we don't have right now. They're pretty ancillary features of Drush, so I don't think anyone's going to cry too many tears. But hopefully they'll come back soon. We did pick up some new tricks in this version, and I want to make sure people know about them. The first one is the config split project. So config split is a project you can put in your composer file. And once you have it, you gain some real super powers with respect to the Drupal 8 configuration management system. Specifically, the main use case is if you have a dev environment and a stage and a prod environment, you can have different configuration in each environment, but they don't interfere with each other. They don't cause differences when you are trying to do imports. So you can have your develop module and other debug modules installed in development, but they will not be enabled in your prod environment. So essentially, you're maintaining different config.extension.yml files in different directories, and config split knows how to put it together before a config import happens. So config split is a different project from Drush. If you have a need for this, just go ahead and add it to your composer, Jason. And it takes over the services it needs to in order to achieve that feature. In Drush 8, you had trouble running commands from your composer root. You had to CD into Drupal's doc root and run commands from there, or use site aliases, and then maybe go back up a level in order to do composer operations. That's been cleaned up, so now you can run Drush just from the composer root, and you don't have to CD back and forth all the time. It's a small thing, but it really is a bigger convenience to do it that way. Config files and alias files are now YAML instead of PHP, which is nice. There's still an alter hook if you want to go ahead and make changes dynamically. And Drush Generate is a new command that we added in Drush 9. And I'm going to talk about that and give a demo now, since it's a pretty big piece of new functionality. OK, so Drush Generate is a scaffolding tool. It generates code. I have some examples here of commands that it understands. The alias is GEN, GEN. So Drush GEN module standard, you'll see that in a second. That builds a whole new module for you, and some of the introductory pieces that you usually have to build. It goes ahead and puts those in your module. If you're trying to create a new content entity, this is going to be a really fast, convenient way to do it, Drush GEN content entity. Drush GEN DCF, that's short for Drush Command File. So naturally, if you're trying to write new Drush integration for your module, this is the fastest way to do it. Use the Drush Generator for it. If you are writing contrib modules, you can add generators. Those are command files. You can look at Drush's documentation for how to do that. And just want to give a shout out to a composer project called Drupal Code Generator. Drupal Code Generator is the smarts and muscles behind this feature. This is something we bring in via Composer. It's a library that's maintained by Cheetech, and Drush really does a thin wrapper around it. So we are able to quickly add a lot of awesome generator functionality without maintaining that within Drush proper. So that was really a huge win. We're going to talk about Drush APIs in just a second. First, I want to demo the generator stuff. OK, so can you guys see that OK? Saw a couple of nods. I ran the command SUT gen module-standard. Now, you can see that I'm running SUT and not the word Drush there. Please don't focus on that too much. SUT is a useful alias for us to run commands in another Drupal site. It's like a site alias. So imagine the word Drush is there instead of SUT. We're using the new generate command, and we're passing the argument module-standard. It asks me what module name I want to create, what's the machine name, the description, the package, the dependencies, and now what features of modules do I want in this initial creation of the module? You can see I want a libraries file, permissions file, event subscriber, controller, settings form, boom. So what we have now is that Drush Generate has told me that it has gone ahead and created a whole bunch of files in the modules pastry directory. So I did it. I knew I would do that. The in command is still available and works as it always has. Actually, it works better than it always has. Both Ian and Uninstall used to prompt you. Do you really want to enable? And do you really want to uninstall? They no longer do that unless there are additional things that it needs to tell you about. So if you're trying to uninstall something that depends on C tools, and you didn't mention C tools, before it uninstalls C tools, it will say you're going to install X and C tools. Is that OK? But it won't prompt you if you gave it the permission already to uninstall what you're doing. Same thing with enable. So I now have a pastry module. I've enabled it. If I want to add to it, let's say I want to add some menu links. You can see there's autocomplete there on the module names. Generate asks, well, what module do you want to put the new menu links in? And I say the pastry module. It went ahead and created the pastry.links.menu.yml. So I want to show you all the things that Generate can do. They take more than a screen's worth of stuff. Here we go. Three different kinds of forms. JavaScript file, configuration entity, content entity, plugin managers, lots of different plugins, access checker services, breadcrumb builder services, route subscribers, twig extensions, templates, browser-based tests, kernel-based tests, themes, and lots of different kinds of YML files, routing, services, et cetera. So there's already a ton of stuff that Generate can do while you're building a module. So really encourage you guys to use the new Generate. If you find something missing or you find something broken, encourage you to look up the Drupal code generator and submit your new templates there for what can be generated. If it's something specific to your module, go ahead and put it in your module. Let's just look at the code that got generated. OK, so this is pastry.info.yml. That's not particularly interesting. Here we have libraries, pastry.libraries. This is ready to be customized by you for whatever your module needs. You remember, we did menu links. There's a child link and a dynamic link and external links. So there's lots of great starter code here, so you don't have to remember and look up how everything works. Permissions and their keys are all there. Routes and the different ways those work are ready for you to customize here. So that's what generating a module looks like and adding new things to a module. So really excited about this new functionality in Drush 9. OK, so moving into Drush APIs, the format for authoring commands has changed pretty dramatically. You'll recall that in prior versions of Drush, you had something like Ctools.drush.inc in your module called Ctools. And inside that file was a hook drush command, ctools underscore drush underscore command, with an array that defined your command and then a function in there, which was the command callback. That's a little bit different now. We've moved to object-oriented, so we have classes. Those classes can have their dependencies injected, and those classes are referred to by tagged services. So this is very much the symphony Drupal 8 model for how you create commands. In addition to commands, there's lots of drush hooks, which is the mechanism for hooking into other commands on your system. Those also are annotated methods in a class. And I'll give you examples of these now. And just a note for contrib authors who already have Drush integration, you can keep your Drush 8 code the way it is. For people who are running Drush 8, they'll be running that code. For people who are running Drush 9, you'll want to create a class just like what I'm going to show you. Sorry for this delay. I'll start talking about the classes. OK, so I'm going to show you image commands.php. That's a class from core Drush 9. And in it, you will see that it extends a class called Drush Commands. So Drush Commands is a base class that all your Drush commands are going to extend. Risky, OK, good. All right, class image commands. Here's the namespace for it. It extends Drush commands. Then all you have to do is make one method in your class. Here we have the flush method. It takes an argument called style names and an argument called options. Options is something that you always put at the end of your argument list for your method. And in this case, there's only one additional argument here. So the way you tell Drush what arguments and options are available for your command is just by documenting it with annotations. So it's very annotation-based, sort of like Drupal content entities or Drupal plugins or PHP unit tests, annotation-centric. So here's the command description at the top. The command name comes in with an at command annotation. The argument style names and its description is declared here. There is one option for this flush command called all. And there is its description. Here we have six lines that all are example usages. So Drush help shows you examples for how to use it. So definitely encourage you to use the at usage annotation. And moving along, there's two special annotations that are used by this command here. Validate entity load and validate module load. There are hooks that look for this annotation on any command. And if present, they go ahead and run their custom code. In this case, validate module enabled, image as a parameter, this command will fail to run if the image module is not enabled. So that's a good way to avoid bad exceptions for the user if they try to run this command without the image module. Image styles are the things that are getting flushed. Of course, they depend on image module, so that would be an appropriate annotation. And a similar one, we want to make sure that the image style content entity is still present. So that's what that other annotation is about. The at aliases annotation, put as many aliases as you want. Here we have IF is the short version. Image dash flush is the sort of prior version of Drush. Use dashes. So all of the prior names are in here as aliases. So your muscle memory will still work if you do PM dash enable or image dash flush. The canonical name has changed to image colon enable and PM colon enable, or image dash flush rather. And then just the body of the method is the work that you need to do in your command. A little bit more about hooks. Hooks are annotated methods also. Here we have a hook that wants to interact with you before the command callback is or the flush method is called. And it wants to operate on just the image flush command and not lots of image commands or all commands. And here it's just going to prompt you for which of the many image styles do you want to flush. So if you didn't specify, you get this interaction. All right, I'm going to hand it over to Greg now. Vienna, thank you. My mic is on, so I'll give you my welcome again. Welcome to Vienna. I'm glad you could come and join us in the session today. So most gave you a great overview of what we're doing in Drupal 9. And I'm going to dive down a little bit into the internals and talk about what's inside of Drush and how you use it. So at the top of this hierarchy, we have the Drush application itself. And Drush adds facilities such as bootstrapping Drupal site aliases that allow you to easily select which site you want to operate on and remote execution. And on top of this, we're building on a project called Robo, which is a task executor for PHP. If you haven't seen Robo before, I'd suggest you check it out. It's very useful for building continuous integration and other sorts of build tools. It allows you to build tasks with a lot of different building blocks that you can put in collections. And it does nifty things. A lot of the features that we had in Drush historically, we pushed down into Robo. So they're generically available. And Robo has a facility where you can use Robo as a framework and really quickly make your own symphony-based command that has all of the capabilities of Drush, included quick command generation with annotated commands and all of the things you see below the stack. So this is brought into Robo in the consolidation suite of libraries, which provides annotated command support, output formatting, and some nifty configuration facilities that I'll show you later. And of course, all of this is built on top of the symphony framework. We're not any different than symphony. These are ways to build actual symphony commands. And if you're used to using symphony console, you'll find that those APIs are available to the commands you build. So I want to take a quick diversion and talk about the two-autoloader problem. This is a problem that not a lot of people are going to encounter unless you're writing a command-line tool such as Drush or Drupal Console. And the problem you have is your primary application, the one that enters. It has the real front controller in this example, Drush, has to bootstrap another application, Drupal. And Drupal has its own auto-loader. So if you have two auto-loaders, two different sets of classes, you have to make sure if those are going to operate together, that they have exactly the same version of classes. And this diagram shows that Sember compatibility is not sufficient for two different auto-loaders to work together. And the reason is, if you have some fancy library and one application has version 1.0.1 installed and the other has version 1.0.2 installed, it's just gone up one patch version. It's entirely possible that this dependent library may have changed its implementation slightly. In the example here, we have a class called sub that extends a class called base. And there's a function foo. And inside the function foo, it formerly called the protected method in the base class called bar. But someone decided that bar wasn't a great name, and they renamed it to baz, or baz, or whatever they wanted to call it. And if you're using these classes together, Sember hasn't changed at all. The API is exactly the same. Both of these different versions work equivalently. If you have two auto-loaders, though, PHP is kind of indiscriminate about where it gets its files from, well, it's not quite true. The auto-loaders are hierarchical, and it will load them in order. But if you only load half of one library, like, say, you take in the base class because you've called some command, and then you load another auto-loader on top of that, so you end up with your subclass from version 102 and the base class from version 101, it's going to try and call a method that doesn't exist in the base class. And this is really annoying to try to debug. And the reason I wanted to go into some depth about describing why we have this problem is in the Drupal community right now, we have a lot of people talking about why don't we just keep the global drush? Why don't we go back to the island and not have to have the dependency resolution? And it's this sort of problem that can create really difficult to manage situations. They're hard to resolve, so I want to make sure everyone understands the background there. So as Moshe said, we are very firmly in the camp of saying you have to move forward for Composer because if you have a Drupal module that requires dependencies, we don't have a good alternative on how to do resolution of those dependencies. And the more of these modules that appear, the more of a problem this is going to be. So if you're not using Composer, your Drupal boat is taking on water and you have to either bail or go back to the island. And we're saying that going back to the island isn't the right solution. We're going to try and bail and get into a new boat that floats. But in the meantime, we still have a lot of people using global drush. And the global drush isn't really supported for all of the reasons that I just mentioned, but we're going to try and keep your boat afloat for a little while while you're bailing because it's taking some people a little while to get onto the Composer boat. So the Drush pre-flight takes some pains to try and make sure that this process does not immediately catch fire if you're still trying to use the global drush. And I'm going to describe how this works today in Drush 9. And we're hoping to get this same mechanism backported to Drush 8 shortly so that people who are still using PM Download for now will have more of a chance of being able to interoperate with Drupal 8.4 when it comes out in just a couple of short weeks. So the stages of the Drush pre-flight starts with pre-processing the arguments. We need to do this because symphony doesn't understand site aliases, so we bring those out and then prepare a pristine set of environments that we're going to pass on to symphony later. Then we load all of our configuration and aliases, and this has to happen right up front because the configuration and aliases are going to determine which site you're operating on, which is what happens in the next step. We look at the config and the aliases, identify our Drupal route. Then once we know which Drupal route we're definitely operating on, we load the Drupal Auto Lodo right up front. And in the past, this wouldn't happen until later in Bootstrap, which gave you a much greater chance that you would load some base classes that later a Drive class might cause a conflict. Finally, we do our dependency injection, which brings all of our classes online once we already have the Drupal Auto Loder loaded, and then we hand off to symphony with an application run, and from there, various hooks are going to come in to bring your site up and make it usable so these magical Drush commands will actually do what they're supposed to. So in this list, steps one through five is what we call the preflight, and then six and seven is what we call the Bootstrap and Execution. So in the early phases, Drush goes to some panes to only use a limited number of classes in the preflight. And in this diagram here on the very left, it says that we're identifying the Drupal site. So we've loaded the Drush Auto Load file, and all of the Drush sources in that green box are now available and loaded. These are unique, they can't conflict with Drupal. All of the Drush vendor is available through the Auto Loder, but only some of the classes that we need get loaded. Then we proceed to the next step, and we load the Drupal Auto Loder. At this point, the Drupal sources and the Drupal vendor are available, but not all of them have been loaded. Anything in the Drush vendor directory at this time that also exists in the Drupal vendor directory is going to be masked and you won't load it ever at all, which is good. So the Drupal version is going to take precedence. If a module is expecting a certain version of a class, it's gonna get that version of the class. And finally, we Bootstrap Drupal, and you can see the little red box is still there. Anything we loaded really early on is still going to be active in the runtime, but everything else is going to come from Drupal and the Drupal dependencies. Now, if you're running Drush and Drupal as the same application with the site local Drush, then the dotted line around those two vendor directories indicates that those two vendor directories will be the same thing. Composer will resolve Drush's dependencies together with Drupals, and everything will come out right and which is what we recommend. But if you're still bailing, then you'll find that Drush 9 is gonna work a lot better and shortly Drush 8 will have that same improvement. This has been a big issue in the issue queue about the problems with Drupal 8.4 and Drush 8, and we've been working hard to try and keep that better for the 60% of you who are still using the PM commands. We're here to tell you your time is limited, but we're gonna give you a little more time to get on the other boat. So once we call application run, Symphony is going to take over and start doing stuff. And the first thing that Symphony does is it runs the command event, which prepares the command to run. And then once the command has been prepared, it goes into hook in it where the command itself has an opportunity to initialize its variables. And then we step into hook interact, which Mush showed you later earlier, which gives you a chance to prompt the user and fill in any arguments that they didn't pass in on the command line. We have no control over Symphony's validation of args and options. It just does the right thing and throws an exception if you passed in some arguments that weren't correct. And then we continue along to hook validate where your application can take a look at what options were provided and figure out if the command can run or not. And those validate annotations that Mush showed, those happen as part of the hook validate stage. Finally, the command execution happens where you do the needful. And after that, if your command returns a set of a rowable collection, then robo is going to be hooked in as well and it'll run all of your tasks for you. And finally, the final result of the execution is going to be passed to the output formatters, which are going to display and render the information for you. So during the command event hook, the alter options hook will run and this is where output formatters has a chance to hook in. And output formatters will take a look at your command and says, aha, you do output formatting with tables. So I'm going to add, the output formatters is going to add additional options where you can select the fields and anything that's needed. So if you wanna hook in and add new behavior across multiple commands, the options can be injected for you. You don't have to keep adding them to every command that does output formatters or whatever other aspect oriented hook you might have placed in there. The next thing that's going to happen in the command event hook is configuration injection. And I'll show you that a little bit later. We have a cool configuration component, which is consolidation config. It's been extracted from Drush and is used in Drupal and a number of other applications. If you are familiar with Grasmesh's BLT tool, he is using Robo and Robo configuration to configure his build tool. And so with this application, you can have a YAML file with configuration and the configuration is pulled out and injected into your options. If you have the same option on the command line, it'll override what comes from configuration. In the init hook, Drush adds a couple of default operations that will happen for you before your command execution starts. The first is the redispatch hook. This is the part that detects whether your alias is a remote command or not. And if it is, it'll redispatch to the remote machine. Otherwise, execution continues and the bootstrap hook brings Drush up to the right level of bootstrap. So every command doesn't have to have a full bootstrap. It just bootstraps to the level that it needs for the APIs that it needs to operate. So if you have a lightweight command that doesn't call all of the APIs and just needs the database, it can run a little faster. So this is all stuff that Drush has done since version one or two brought forward to the object-oriented symphony world. This shows you a very simple example program. It shows a command called try formatters. And if you take a look at the output data there, what it's returning is a very simple array of arrays. And every row of the top level array has a collection of fields, and every row has the same set of field keys in it. Now, up at the top, there's an annotation called field labels. And there's a mapping in the field labels from the machine name, which is for second and third, to the human readable name for that field, which in this case is given as Roman numerals one, two, and three. And then at the end, all you do is take this data and return it. You wrap it in a data class called rows of fields, which is really no more than a marker class that says that this array can be displayed in rows and columns.  So based on the fact that you've returned this marker class, the output formatter is going to inject into your command help that says these are the formats that I know I can format tables into and make those available through the dash dash format equals table or dash dash format equals YAML. And the nifty thing about that is later someone comes and adds a formatter and injects the formatter into your application, then that new formatter is available to all of your commands. You didn't even have to know about it. Your users can start using it. So on this screen, you can see on the left, we've got an example of what that data looks like when you format it as a table. It's a symphony console table output. And on the right, you can see if we specify format equals YAML, it shows it with the machine names instead. In addition to selecting what format you want, you can also select which fields you want from any fieldable output. And on the left, you can say we've selected fields three and one. And so not only have we cut out field two, but we've also reordered the fields. And on the right, we've done the same operation, but we're also specifying that we want the output in JSON. So we've trimmed out the rows we don't want, converted it into JSON, and this kind of manipulation will make your life a lot easier if you're using Drush in some sort of tool suite where you want to pipe the input into some other command, various commands, like different formats of data better than others. And it's super useful to have output formatters because you don't have to deal with that as a command writer. You get all of the power without any of the overhead, without having to write the overhead. So as Moshe mentioned earlier, we've switched our config. In the past, we had drushrc.php, and you could just write any old PHP you wanted. If you wanted a command-specific option, you would put it inside of a well-known variable called command-specific, and that would all get parsed by Drush. But now we have the equivalent in YAML in the command element. There's a site install namespace. So this is for the site install command. The options for site install of account name and account pass are specified here, and the config module is going to take this configuration and inject it into your command line options, as I mentioned before. Now, you'll notice that site install, it appears on two different lines. It's not listed just as site install, and there's a couple reasons for that. One is the pragmatic reason that site colon install, well, colon is the separator for maps in YAML, and you could escape that, but that would be ugly. So for one, it reads a little bit better by splitting it up into the two different lines. The other is there's actually some facility here in that immediately under the site element, if you list options there, then the configuration under command site options will apply to all of the commands in the site space. So if you have common options amongst one group of commands, you can separate it that way, or you can have configuration just for your specific commands. Aliases are config and they look a lot like a config file. In the past, we had aliases drushrc.php, and you could do anything you wanted in these files. You could define a bunch of different aliases, and your alias names were usually separated by dots, and the different components didn't mean anything. In Drush 9, we've become a lot more opinionated. If you have a file called example.alias.yaml, this represents a single site called example, and that single site always has multiple environments. In this case, we're showing a dev environment and a live environment, and you can't do anything with this site other than have the multiple environments of the example command. In addition to example alias.yaml, we also have group aliases.yaml, and in this case, you have a group of different sites that all have some relationship to each other, and each of these different sites always must have one or more environments, and so there's just an extra level of nesting in your yaml configuration. Finally, Drush 9 has a very robust new set of unit tests and functional tests, and these tests are actually pretty much the same tests as we had before, but they were massively rewritten for the massive rewrite of the architecture that we redid in Drush, and the Unish functional tests create this thing called the SUT, the site under test. So the site under test is a Drupal site that's managed with Composer, and Unish is the unit testing for Drush that will build the site and take the Drush that you're testing and inject it into the site under test so that the operating environment for the unit tests are the same as what we're recommending that you do to make the Drush application part of your Drupal site. And in addition to the functional tests, we also have new unit tests in the isolation area, and I mentioned at the beginning that we take pains to isolate which classes we use, so the isolation test actually has its own Composer JSON that only includes the dependencies that we want to use during the preflight and all of the unit tests pass functions in, read the function value that comes out exactly the way you want your functional tests to be that don't have any dependency on Drupal, and we verify them that way. So I think that is about the end of what we have to talk about. Before we take questions, I would like to remind everyone that there's contribution sprints going on on Friday. There's a mentored course sprint in the room Stoltz 2, and the first time sprinters workshop is in layer one and two, and the general sprint is in the main mall room. If you like the session, please come up to us and tell us how much you liked it, and if you didn't like it, go ahead and fill out the application survey. I'm just kidding. Give us whatever feedback you have in whatever form, but we do have this survey that we would strongly encourage you to fill out, and with that, I'll welcome Moosh back and we can take some questions. Yeah, we have time for a couple of questions here. So there's a microphone up front. Regarding the Dress launcher, what I've been doing all the time is just adding vendor slash bin to my path. Is that wrong, or should I know about the Dress launcher? It's not wrong. You can do that too. You can just call vendor bin Dress directly and skip the launcher. That works great. Yeah, I do the same thing. I have vendor bin in my path, so if I CD to any composer project, I can run anything in vendor bin from the local directory, and that works great for Dress too. That's probably because I use virtual machines. I have one Drupal site. Okay. Yeah. Hello, my name is Boris, and I have several questions, in fact. Okay. The first, can you tell us something about the core compatibility things? There are rumors, and it's stated on the docs Drush site that Drupal 8.4 will require Drush 9. Drupal 8.3 won't work with Drush 9, or there's an inofficial version of 8.3 of Drush 8, which will work with 8.4, and such things. That's the one point. And the other question, what was the motivation to integrate a code generator in Drush, which is already a domain of Drupal console? I think it's better slowed down as you've got two very different questions here. Two different questions. Yeah. Okay. Just to end the second one, do you happen to know whether Drupal console has the same code base, this code generator you mentioned, or is it something totally different, and the resulting code will be different too? Okay, that's a third question. You want to take two and three, and I'll take number one after you're done. Okay, sure. Okay, so the generate command, it was an opportunistic move by Drush to add that. We found a library that was super clean, super independent, maintained by someone


so do you remember those vlogs where I was like hey I have goals for the day and I'm you know getting up and getting dressed and doing my makeup and hair today was not one of those days I just got off the couch really oh good not feeling so so good so I just chill on the couch watched YouTube videos because that was a productive use of my time and now I'm getting ready to actually do things we are putting up the Christmas tree tonight which I am so excited about I'm getting in the Christmas spirit I can't we usually put it up like way before now this is really late for us we're those crazy Christmas people you see all of the angry Facebook memes about we definitely started listening to Christmas music at like November 1st but we're finally giving a chance to put up the Christmas tree so we're gonna do that tonight you'll get a chance to check it out but first oh dear oh no this is not we're just gonna that's better right guys this should never see the light of the internet but it's going to now I'm up here because I just heard the doorbell ring and I happen to know that Amazon just dropped off a few packages for me because I got everyone's Christmas shopping done from the comfort of my couch because thank you Amazon I'm gonna go pick up those packages get Christmas presents sorted and get ready for Christmas spirit there is one I do not expect nor order hope it's not a bomb guys I'm just kidding does Merry Christmas on it right does amazing animal paintings and I saw this on Facebook and commented on it that I wanted to buy it off of her and she delivered it today look at this guy's like she's she's so talented and I I love chickens like I love chickens so much I had three of them as pets growing up you'll notice the theme in my life as I have always had way too many pets but this is seriously so sweet Mary thank you so much I absolutely love him his name is Henrietta by the way and he is perfect I guess I would be a sheet if her name is Henrietta gonna open these to make sure that like I got the right orders but I can't show them on camera because they're Christmas presents for people I'm not gonna one of these is for me cuz when you're drugged and you can't sleep and it's 2 a.m. you're gonna buy yourself stuff online it's just I mean how it works where's the Christmas tree footage you asked well it didn't happen and it still hasn't happened we're not lazy just tired the issue is we have to move this table that's covered in things to get our Christmas tree up which sounds like the lamest excuse ever and it is but that's the reality of things I know I plugged in those Christmas lights and got real excited for a second there but no Christmas tree footage just yet but in the meantime a story from today so I shared in a recent video that I had my counselor coming over and that you know not a lot of my counseling had really focused on my actual amputation yet and that things about that were actually you know okay I felt like I was handling it well and that's still true on the one hand on the other hand I hit a wall yesterday I don't say how to break down but I think the reality is setting in that like oh I don't have a leg and it's not coming back that might sound really dumb to all of you who are well aware of the fact that yeah if you chop a leg off it's not gonna grow back kid but I've gone through so many surgeries and gone through so many recoveries that I'm really used to you know going through surgery having surgical pain being stuck at home being on medications for a little while going through the part of the process that I've been in right now and now that I'm starting to get out and about and go in public and that was kind of what set it off yesterday I was going with my husband at best by to pick up something and it's like this whole process to get ready to go out and do anything it takes longer to get ready that's one thing that you'll learn as an amputee if anyone out there is about to be one takes longer to get ready to go places I was exhausted by the time I was like okay I'm ready to go and by ready to go I mean I just want to sleep for like two hours now because I have no energy I'm out of breath this is embarrassing like I used to be super fit and could like do everything and ah you know and just got really cross and really grumpy and it took me a while like actually process through the crusty exterior and be like oh okay I'm really having a hard time right now I'm having a hard time with the fact that like when I walk up to the register at best by the girl is staring at my leg before she's like staring at me and greets me and that's okay I honestly mean that's okay I do not hold that against people but it's a weird adjustment and I feel like I have to look put together when I go out in public now because people are looking at me I never used to feel that way like at all I would go out in public oh you know whenever in gym shorts and an old ratty t-shirt because I didn't care now I feel like whenever I leave the house I want to look nice first of all because it matters to me and I enjoy it but second of all because I know that people are looking at me and I don't want them to stare at the broken girl and think you know I don't know more negative things if that makes sense and I know that's a disordered way of thinking and I'm working through it but um it's been a hard 24 hours is essentially what I'm trying to say it's part of the process and I know that it's part of the process and I'm not even two months in to this thing and so I know I'm gonna have moments like this I think it's important to acknowledge them and and to try to figure out what I'm really feeling instead of just being you know crossed to my husband instead of talking about what I'm actually experiencing and the insecurity that I'm feeling so that's where I'm at today and that will shift and I'll be fine again for a while and I'll be good and then I'm sure I'll have another hard day or two I think it kind of comes in waves for me so in the interest of keeping things real which is the reason why I started this channel that's where I honestly am things are not always rain bills and butterflies things are not awful I think there's somewhere right in between


to take a class of semester one and unit two argument and argument form truth and validity. In this unit argument and argument form truth and validity we have to discuss the basic concepts they are nature of argument, kinds of argument, argument and argument form truth and validity. Dear learners, before going into this class truth and validity argument and argument form you have to know also the concept a basic concept of logic that is what is logic. Now, dear learners you know the logic the very word logic is derived from the Greek word you see the Greek word logos L O G O S logos and it means thought or reason or law they are learners logic is defined as the science of reasoning this definition is not accepted as the real definition of logic because reasoning implies a special kind of inferring or inference. In inference they are learners we proceed from known to unknown again I repeat they are learners in inference we proceed from known to unknown known to unknown or you can say we can proceed from perceived to unperceived or you can say we can proceed from seen to unseen. Now, dear learners we can take a example that example is you see that there is smoke in the hill and that is the known case there is smoke in the hill or you can say it is perceived case or you can say it is seen case and from this perceived case we proceed to unknown case that is there is fire in the hill which is derived from the premise there is smoke in the hill, but the important issue is that logic does not include the act of inferring or inference within the subject matter of logic. Dear learners again we can define logic as the study of the methods and principles using distinguishing correct from incorrect arguments. So, you see this helps us to makes a distinction between correct and argument correct and incorrect argument that is why it is clear that logic is a tool or strategy by which we can find out the distinction between good reasoning and bad reasoning. The study of logic therefore enhances our reasoning power to test the arguments whether they are valid or invalid. It also helps us in our domestic discourse to argue systematically with others. Dear learners that logicians deal to it validity or correctness and invalidity or incorrectness of arguments while psychologists concern with mental process that is why the traditional definition of logic as the study of laws of thought is not satisfactory from the logicians point of view. Now you see there are others as logic deals with correctness or incorrectness of argument. So, question necessarily comes what is argument and what are its kinds. Now dear learners you see argument consists of a group of propositions of which one is the conclusion and others are premises. You see argument consist of you see one is conclusion another is premises. Conclusion is derived from the premises. Dear learners you see again I repeat argument consist of a group of propositions of which one is the conclusion and others are the premises. Others are premises and you see of which one is the conclusion and others are premises which are regarded as providing support or grounds for the truth of the conclusion. Now you see their learners their premises provides support to the conclusion and you see premises are those propositions from which conclusions are derived and conclusions are those propositions which are drawn from the premises. So, you see their learners there is a necessary relationship between conclusion and premises. So, in an argument there is a necessary relationship between conclusion and premises. Now dear learners you see it will be clear to you when we go through the examples. Now dear learners you see the example all men are mortal all men are mortal. Then you can say another one Socrates is a man and therefore Socrates is mortal. Socrates is mortal. Now you see their learners this is an argument and here you see all men are mortal and Socrates is a man these are propositions or these are premises and the last one Socrates is a mortal this is conclusion this is conclusion because the premises all men are mortal Socrates is a man from which the conclusion is derived and that conclusion is Socrates is mortal in this example. Now dear learners you see so in an argument there is a necessary relationship between premise and conclusion. If we do not notice a necessary relationship between premises and conclusion then the argument will be invalid. Here you see their learners in this example in this argument or this argument is valid because the conclusion is necessarily derived from the premises like all men are mortal and Socrates is a man. So therefore dear learners these argument is a valid argument and dear learners you can take another example that is you can take all men are rational all men are rational and Socrates is a man therefore Socrates is rational this is the example of argument and another example you can take if rain comes if rains comes if rain comes we will not go out we will not go out and second one rain comes rain comes therefore we will not go out we will not go out this is also an example of a man so again you take another example that is A it is B and another example that is C you can take most actors are celebrities actors are celebrities and Amir Khan is an actor Amir Khan is an actor therefore Amir Khan is a celebrity now you see their learners these 3 examples A B and C the first 2 examples so that premises imply the conclusion the A and B this first 2 examples so that premises imply the conclusion and which is necessarily derived from the premises it means the conclusion the first one that Shibaji is rational and the second one we will know go out here the conclusion is necessarily derived from the 2 premises and the third one premises also supported the conclusion