So, I have two items of business to take care of before we talk about Cucumber. These slides, this talk is open source. The slides that I'm using right now are available at tinyurl.com slash Cucumbers have layers. So if you have any trouble seeing the screen, hearing my voice, following my train of thought or if you like spoilers, you can download a PDF with both my slides and my script written on your very own device. You can even download the slides now and walk out and see a different talk, and I will be in no way offended. It's been really hard to choose from this program. It's been really great. The other thing that I want to mention is that I work for a company called Real Geeks. We sell web-based tools for real estate agents, real estate, real geeks, yeah. Anyway, I'm sure you will be shocked, just shocked, to learn that we are hiring. You may also want to know that our office is in Hawaii. I live in Portland, Oregon, and I work from home, but here's a photo from my last office visit. This is my daughter and me looking at the full moon rising, and my partner who took this photo has it as a lock screen on her phone. In my opinion, this is the best perk of the job. But anyway, we've got stuff in Ruby, Python, and JavaScript, and we especially need some help with React.js. So if you're interested in writing software in Hawaii, come say hello. So I have stickers. So with that out of the way, welcome. I'd like to get a quick show of hands. How many of you have used Cucumber on any project, large or small? Wow, almost everybody, cool. How many of you have used Cucumber more than one time? Okay, cool. And regardless of whether you've used it once or more than once, how many of you would use it again? More than I thought, okay, let me see some maybes, but yeah. Well, this talk is directly aimed at people who may have used Cucumber in the past and decided not to use it again. I'm glad to see that less of you are in that camp than I thought there would be. But I hope for those people to offer you at least a different perspective, convince you to maybe at least give Cucumber another look. For those of you, like three of you who haven't used Cucumber, you should go get the Cucumber book before you start. It will give you a much better introduction than I could, even if this were a full 45 minutes of Cucumber 101. But just so you're not completely lost, in Cucumber, you describe features of your software in a language called Gherkin. Gherkin is a DSL for writing acceptance tests. Because this is a Ruby conference and we have a tendency to say DSL when we mean API, I have to clarify. When I say Gherkin is a DSL, I mean it is an actual domain specific language with its own grammar and semantics. Gherkin is not Turing complete, but it can be used to tell a Turing equivalent machine what to do. As I was saying, Gherkin is a DSL for describing software. Each separate Gherkin file is called a feature. Here's a feature directly from the Cucumber website. Feature has one or more scenarios. The scenario has more one or more steps. Those are the given when then that you see at the bottom left of the screen. And aside from a few keywords, which I've highlighted here in green, everything else is written in whatever natural language works for you. Gherkin's grammar is really simple. Everything from a keyword to the end of the line is treated, essentially as a single token by the Gherkin parser. And Gherkin is useful, quite useful just as documentation for your project. But Cucumber, of course, also lets you use these feature files to automate tests, which is why the people behind Cucumber like to talk about executable specifications.  A step definition is just a regular expression plus a block of code. This is how you translate from those human friendly blobs of text to something that Ruby can actually execute. When Cucumber wants to run a step, it tests that step against every one of the regular expressions that you've given it. When it finds a match, it executes the block that was associated with that regular expression. There's also a mechanism for taking captures from the regex and passing them as arguments to the blocks, which is how you can get interesting data into your tests. And in my mind, Gherkin and Cucumber are almost two separate things.  And Cucumber can be kind of unwieldy. I basically put up with Cucumber because I really like Gherkin. As I said, Gherkin is a DSL, or rather it's a domain-specific language where the domain is talking to other humans about software. That's very free-form, so it lets you talk about your application's domain using whatever language makes sense to you and your team. And Gherkin has just enough structure that it can be used to drive a lot of machinery for automating tests, but Gherkin is not a programming language, as mentioned. This is a critically important point that I think a lot of people overlook or can overlook when they're starting out with Cucumber. And I draw this distinction because programming languages are great, but when we're using them, they require us to get all of the details right up front, and that process of writing code and fighting with a very nit-picky parser tends to shift our focus onto how to do a thing. Gherkin, on the other hand, exists to help us think about what thing to do, why we're doing it, and even who we're doing it for. And it's also important to realize that Cucumber is not really a tool for doing test-driven development. Cucumber and TDD complement each other nicely, but it's been my experience that Cucumber works on a very different rhythm than TDD does. I think if Cucumber is a set of guide rails for TDD, and my workflow for using it goes something like this. Start with a Cucumber scenario, I run the scenario, and watch it fail. And I look at the error message to figure out why it failed and use that information to go write a unit test. I watch the unit test and refactor. At this point, I have a choice. If I need to write is, then I do that and I go back around the red-green refactor cycle, maybe several times. But if and when I get stuck, I go back to the Cucumber test again. It's probably still failing, but it's failing for a different reason. And that helps me figure out what to do next. I go back into the TDD cycle again, go round and round that inner loop. And at some point, I run the Cucumber test and it passes. Do a little dance, refactor, move to the next scenario. When I'm working this way, I spend most of my time in that tight inner loop, red-green refactor doing TDD. And the fact that the tests and the code are both written in the same language makes for less context shifting, switching, and it makes it very easy to go around that inner loop very quickly. Sometimes I'm writing a new test every minute or so if I'm doing really well. And this is where I'm focusing on how the thing works. It's a good satisfying detail-oriented work, but when I start to lose sight of the forest for the trees, I jump back up to Cucumber. And that shift from writing Ruby back to writing Gherkin helps remind me to get out of that hyper-focused how mode and come back to thinking about what, why, and who. And that helps me figure out what the next thing to do is. Tom Stewart, who I really wish were here this year, I'd love to talk with him about this stuff, wrote something about Cucumber that really resonated with me. He described Cucumber as more like a mind hack than a testing tool because it helps him think about the big picture rather than the details. And as I was putting this talk together, I asked Matt Nguyen, co-author of the Cucumber book, if there was anything that he wanted people to know about Cucumber. And he tweeted back that he wished more people knew Cucumber as a thinking and collaboration tool, not just something for test automation. Both of these quotes lead back to something I said a few slides ago. I asserted that Gherkin is not code and Cucumber is not for TDD, but negative definitions are not very useful. Or to put that another way, positive definitions are much more useful than negative ones. So what are these things for? Well, I already talked about how I use Cucumber as guide reels around TDD, but let's talk about Gherkin a little bit more. And everything I say in this talk, unless I'm quoting somebody else, is based on my own experience. I definitely do not speak for the Cucumber team. This is just what I think. I think that Gherkin is for describing software at the level of user intent. And you might choose to use Cucumber to turn your Gherkin artifacts into automated tests, but you don't have to. Now by describing software, I mean that Gherkin lets you capture acceptance criteria. And by acceptance criteria, I mean the system has to do this stuff or you don't get paid. By user intent, I mean that your Gherkin paints its picture in fairly broad strokes without getting bogged down into a lot of details. Details are what TDD is all about. I've worked with scenarios that look like this. And what I've found is that every time I tweak my user interface when I've got steps that look like this, 20 of my Cucumber scenarios will explode and then I get to spend the next hour or two editing them, which is not the best use of my time. And last, just because Cucumber is pitched as a tool for writing automated tests, you are not obligated to use it that way. Personally, I think Cucumber's greatest value comes from Gherkin and using it as a tool for facilitating conversations between developers and the people who pay us. I've written Gherkin files, thrown them away, and felt like my time had been very well spent because it helped me figure out what to do and what not to do. So this is what I now think Cucumber should be used for, but it took me years and years to figure this out and I made a lot of mistakes along the way. Some of those mistakes were very painful and embarrassing and in the hope that you can learn from them, I'm gonna share them with you. Yeah, this is the part of the talk where you get to laugh at me.  These are just some of the more interesting, entertaining or educational ones.  Here we go. So when we automated this, it would visit a route that was only defined in the Rails test environment. That route rendered a static view that in turn required a JavaScript file and the JavaScript file contained all of the unit tests for our front end helper functions. And that number 99, by the way, started out somewhere around 40 or 50, but we kept adding more JavaScript tests and every time we did that we had to go back in and update this Cucumber scenario with a new number. So how did this happen? Well, we had a fairly large Rails project with an extensive Cucumber test suite and we needed to run some unit tests that were most convenient to run in a browser and we looked at that and we thought, well, hey, we've already got this thing set up to drive Selenium which drives a web browser, right? So let's just put it in there and apparently there weren't any grownups around us to stop us. Here's something else I did in an actual project. Oh, that's a great look, I love that look. What this did was visit the new page for the widgets controller, fill out the form with randomly generated data, submit the form, check that it's on the show page and the show page is showing the same data we just submitted, click the edit link, change each value on the edit form, click save, make sure that the changes were visible, then delete the record and make sure that it was gone from the list. Now to make this work, we wrote something that could automatically mutate values in the form fields. In order to make that work, we had to add some CSS classes to our markup to indicate that a given field contained numbers or names or addresses so we knew how to mutate them. But that's just good semantic markup, right? At least that's what we told ourselves. And like seriously, this was a lot of fun to write. But while we were gold plating our Cucumber Suite, we were avoiding writing actual features that our actual customer actually cared about and pretty soon we were actually fired. So when you get a bug report, it's a good idea in my opinion to add an automated test to reproduce that bug so that you can prevent any future regressions of it. But also in my opinion, it is not a good idea to put these tests in Cucumber.  Ideally, you should be able to print out all of your feature files and hand a small stack of paper to a new developer or a new manager. And they in turn should be able to read through that stack of paper in an hour or two and come away with a fairly good, high-level idea of what your software does.  And doing this is also a good way to commit the next Blunder, which is just plain having too many scenarios. Opinions vary on how long is a reasonable time to wait for a test suite. Personally, I'm willing to wait for about five minutes, up to three or four times a day. Any more than that, and my tests just may as well not be there because I'm not using them.  That helps mitigate the problem. It doesn't really address it, but it helps.  It's perfectly okay to use Gherkin to facilitate a conversation with somebody, possibly even just yourself. Like I sometimes talk to myself out loud, sometimes I talk to myself in Gherkin. And then you can throw away the feature file once you've learned what you needed to learn from it. Now, if you do feel the need to hang onto it for posterity, you can go ahead and check it into your features directory, but tag it as like FYI or TBD or something and change your cucumber configuration so that scenarios with that tag never get run. And step definitions.  If you get the cucumber book and you should, as I mentioned, get the cucumber book, it will tell you to define a bunch of helper functions and then call those helper functions from your step definitions. And this does help. But I started using Cucumber years before the cucumber book was published, which means that I've made mistakes like having too many step definitions, having huge step definitions, sometimes up to 100 lines of code in a block, having too many huge step definitions, having step definitions that call other step definitions. Really, just putting about, just about any logic whatsoever in a step definition is not a good idea. After making all of those mistakes and more, I found myself feeling very conflicted about Cucumber. On the one hand, I really loved the expressiveness of Gherkin and I wanted to believe in this idea that programmers and managers could sit down together in a room and write acceptance tests together in universal harmony. But I struggled to reconcile that with my experience, with the project I was working on at the time, which had hundreds of scenarios backed by like 750 step definitions, which together made up about 5,000 lines of code in step definitions. And this whole test suite took about 90 minutes to run. And eventually I found myself, as I was struggling with, I found myself, as I was struggling with this conflict, I found myself asking an interesting question. How would you write scenarios if you didn't know what your user interface was gonna be? And I think that if you can tell from reading your Cucumber features, whether you're using a web application or a desktop application or a command line interface, you're probably letting too much detail leak into your features. Here's an example of the difference that I'm talking about. Here's another one. So this question floated around in my head for a while as I worked on other things, until once upon a time I was brought in to work on one part of a rather large monolithic Rails app that calculated salesperson commissions. Now you might hear salesperson commissions, and first off fall asleep.  But that would be far too simple. At this place there were usually about half a dozen compensation schemes in effect at any one time. These schemes changed a couple of times a year, sometimes quite dramatically. And they were worked out by the sales department who would put together something like 15 pages of dense, confusing, quasi-legalese to describe each scheme, which we then had to read through as developers and somehow translate into working code and tests usually went out the window as we did this. So one of my goals in working on this project as I trudged through it was to be able to describe every aspect of these compensation schemes using Gherkin so that it would be easier for me to think about it and so that I could take those Gherkin files and take them back to the sales department and say, this is what we would really like to have. Can we use this to maybe work together a little bit more smoothly? So I'm gonna talk about a simplified, fictionalized version of how just one of those compensation schemes worked. And it's really like there's some walls of text here in the next couple of slides. It's not super important for you to catch the details. They're not really all that relevant to the talk. I'm just, they're just here to give you some idea, some concrete examples of how I wrote and organized my futures for this project. We'll start with the concept of a sales target and a target bonus. Basically, the company says that if you sell $100,000 worth of widgets in a month, that's the sales target. We will pay you $100 over your base salary. That's the target bonus. And these numbers are not realistic. I just picked them to make it very easy to convert between dollars and percentages in my head and the different orders of magnitude helped me keep track of which was which. Anyway, there's a scaling factor here. If you miss your target, you get paid less. If you exceed your target, you get paid more. That's pretty straightforward, but there's a catch. The catch is this little thing called a pay curve. The pay curve is a simple function.  Now to describe the pay curve, the sales department actually gave us a spreadsheet with example rows for every possible input value from zero up to 250% of your target. We had some overachievers, I guess. Now fortunately, since this was already in a spreadsheet, it was very easy to build a chart so we could see what the pay curve looked like. Looking at the chart shows that it was a piecewise linear function and that helped me relax and figure out what was going on and get my head around what was happening. So I went back to the spreadsheet and from there it was very straightforward to convert the rows in that spreadsheet into rows in a cucumber table, excuse me, and use them to drive a scenario outline. In case you're not familiar with this feature of Gherkin, a scenario outline is basically a template for a scenario followed by a table. And the template gets executed once for each row in that table with values from the appropriate column filled in wherever you put a placeholder value. This is a very easy way to automate a lot of tests that look the same. Now because I knew that this was a piecewise linear function, I was able to get away with not pasting all 251 rows of that spreadsheet into a giant cucumber table. I just put in a few examples around each of those inflection points to make sure I got the boundary cases right. And then I moved on to describing the compensation scheme. At first glance, when I first wrote this, it looked remarkably similar to the scenarios for the pay curves. And it felt like I was repeating myself, but when I stopped and looked at it again, I realized this was actually introducing quite a few new concepts. There's the idea that there is at least one and probably more than one compensation scheme. You get sales, bonus, or sales target and target bonus in dollars instead of percentages. This has actual sales and bonus amount also in dollars. With those concepts in place, I was then set up to introduce the next feature of this scheme, which is the safety net. And this is the last new thing, I promise. The safety net is this feature to help out new hires as they're getting up to speed for the first few months. This is basically a guarantee that you're always gonna get paid at least to the amount of your target bonus. If you don't hit your sales target, we'll kick in the difference so that you can count on some income as you're getting up to speed. If you do better than your sales target, we'll still pay you more than your target bonus, but you're never gonna make less, at least until we take those training wheels away. Anyway, that's enough to give you a sense, I think, for how I organized and wrote the Gherkin features for this project. But I do wanna talk about an underutilized element of Gherkin's grammar. I left this out on earlier slides so that I can make the text bigger. But Gherkin gives you some space at the top of the file where you can write whatever you want. A lot of the examples and tutorials that I've seen show that space being used for as I want, so that. But in practice, I find that people tend to fill in that template without really thinking about it. So sometimes I just skip this part. For this project, though, I used that space to provide some context about why this feature exists, or what makes this feature interesting in comparison to other features that may be similar. For this scheme, I was worried that the examples of how the safety net worked in specific cases might not fully communicate or explain what that aspect of the scheme was for, why it was there. So I just took a few lines to explain it using the simplest language that I could. And after I handed this project off to some other developers, one of the bits of feedback that I got from them was that this documentation in particular was extremely helpful in making sense of these frankly ridiculous compensation schemes. And again, this is the sort of thing that you may overlook if you're trying to treat Gherkin as a programming language. If you're thinking of Gherkin as code, then this section of the file just feels like a large block comment. But if you're thinking about Gherkin as a medium for communicating with other people about your project, this free form text area can be really useful because it gives you a place to talk about things without having to squeeze your thoughts down into that step by step given when then recipe. Last thing I want you to notice about these feature files is that absolutely every word of these is expressed in terms of the domain, not the interface. If you sat down and you read through all of these features, you would learn a lot about how this organization thinks it can motivate its salespeople. But you won't have any idea what kind of app they're using to do it. So let's talk briefly about the architecture that I settled on for this application. I did choose to use Rails, but I wanted to try a slightly more disciplined approach than I usually see in Rails apps. So I organized the code into three main layers. The user interface is just standard Rails controllers and views. That layer in turn talks to a set of active record objects and some service objects. Those then interact with a set of plain old Ruby objects or pro-Ros that model the rules for the compensation schemes themselves. This is slightly unorthodox for Rails, but it's nothing really earth-shattering. If you do want to explore these ideas a little bit more, Bob Martin gave a talk in 2011 called Architecture the Lost Years. Now personally, I found this talk kind of hard to watch because I felt that a lot of Bob's rhetorical techniques actually detracted from the really good things he had to say. But if you can wade through it, it's worth trying to listen. And while I was working on this sales commission project, I also ran across a really good presentation that Jim Wyrick gave to Cincinnati RB called Decoupling from Rails. This is a talk with some good solid ideas in it. Unintended by the way. And it's well worth watching just for the main topic. But right at the very end of the video, after he finished the talk and really at the end of the Q&A, Jim said something that was really interesting. Let me tell you a goal that I have. You can do integration testing coming in at this level and test all the way down to the database and back. That one's pretty doggone fast. The only thing you're not testing is the controllers, the webby stuff, the views and things. I would like to demonstrate that if you do your Cucumber test right, you could run the Cucumber test at this level or throw a switch and run it at this level. So if you want fast integration tests, you can run them here. If you want complete, include the web integration test, you can run them at this level. I think that would be an interesting experiment. Now, when I heard that, I just about fell out of my chair because that was basically what I was doing in this project. Now, unfortunately for me, I never met Jim, so I didn't get a chance to talk to him about this interesting experiment, but I do get to share it today with all of you. So that's pretty cool. Now, my initial idea was basically what Jim had described. Using the tagging feature of Cucumber, I wanted to be able to mark a scenario as being tested at the UI, the model layer or both. And the scenarios that were tagged with UI would use Capybara to interact with the full Rails stack in the way that most people think about using Cucumber with Rails. But the scenarios that were tagged with model would run directly against the active record layer so that they could be faster. And the active record layer, I initially thought, would exercise the Poros indirectly, and I thought that would be good enough. But I discovered very quickly that that core Poro layer was complicated enough on its own that I didn't want to have to think about implementing it and mapping it to a relational data model at the same time, so almost immediately I added a core tag as well. Here's how that played out in one of the feature files that I showed earlier. Once I'd written the scenario, I would start by tagging it with the name of the layer that I wanted it to run at, plus a whip suffix to indicate that it was work in progress. Run the scenario, watch it fail. And from there, I'd drop down to RSpec and do the usual small fast TDD cycles until the scenario passed. Once the scenario is passing, I could take away the whip suffix. And if I wanted to reuse the scenario at the next layer up, I would then add another tag for that later, again with the whip suffix. And again, I'd write up a bunch of RSpec tests until I got that same scenario running at the new higher layer, at which point I could remove the whip suffix from that layer. So that's how I approached this from the gherkin side of things. But it took me a while to figure out a good way to implement this in Cucumber. I wanted Cucumber initially to run all of the core scenarios with one set of step definitions in place, then run all of the model scenarios with a completely different set of step definitions, and then run all of the UI scenarios with a third set of step definitions. And manipulating the load path was a little bit painful, but it basically worked. The real problem was that anytime I changed the text of a step, that meant that the step definitions fell out of sync, and I had to go and edit three different regular expressions in three different files and make sure they all matched, which, no. So instead, I wound up consolidating down to one set of step definitions that invoked something I called a step driver. And this has the wonderful side effect of making step definitions small and simple. With this change, I was able to then define three different step drivers to interface with each layer of my application, put all three of them on the load path so they all get parsed and loaded at the same time. I don't have to worry about that. And then I used an environment variable to decide which step driver to instantiate. Further details about this are beyond the scope of this talk, but feel free to ask me later if you're curious. I have a few observations to make about how this project went. First off, I have a piece of advice that comes to you from my inner five-year-old. The step definitions are lava. Because of the way Cucumber works, the step definitions pretty much have to be there, but they should be, in my opinion, a very thin adapter between gherkin steps and a custom driver written to interface with your application. Ideally, a step definition should be one annoyingly obvious line of code. I don't like step definitions because they exist in this sort of PHP-style flat name space. Everything, you know, there's no way to qualify that this is related to a particular topic. And they have one global scope for sharing variables between them, which is all kinds of fun. So moving all of the interesting logic out of a step definition and into a step driver then lets me use Ruby's full object-oriented tool set for organizing and refactoring that code for that driver. And it also helps me keep the step definitions so simple that I never have to think about them. This worked so well for me on this project that were I to use Cucumber again, and I will if I find the right project for it. I would write a step driver for that project even if I wasn't gonna use this multi-layered approach. And these, as I mentioned, these commission's plans, they came to us in dense, like 15 pages of legalese that we then had to translate into code. And it was just too complicated for me to understand that and hold all of it in my head at once. Breaking this problem down across architectural layers helped me, you know, cut it down just to focus on just the core logic and then figure out once that was working how to adapt that to active record and then once that was working then I could worry about having the user interface display and interact with that information. Honestly, looking back at it, this was probably the only way that I could have completed this app in a reasonable amount of time. The developers who took over this project from me, it would be an understatement to say they were not as enthusiastic about this setup as I was. But after they'd worked with it for a while, they did say some things to me like, you know, yeah, I can see why you did it that way with the implication that they would not have, but they could understand where I was coming from. And they also said it was really nice to have such clear documentation about what these business terms meant. So I'll call that a win. I do have to talk about performance. At Cascadia RubyConf in 2011, Ryan Davis gave a talk called Size Doesn't Matter in which he talked about the speed and relative sizes of various testing frameworks in Ruby. Cucumber shows up in nine different slides from Ryan's slide, Jack, and they basically all look like this. In every single metric that Ryan chose to present, Cucumber came in dead last. And when I saw him give this talk, I sort of laughed and I also winced because at the time I was dealing with that 90 minute test suite. And so when I started this project, I was fully expecting to pay a huge performance penalty. I didn't care, it was worth it to me. With that in mind, here are the numbers from this project. There were 64 scenarios that were tagged with core. They ran in under a second. At the model layer, there were 118 scenarios. They ran in under eight seconds. And at the user interface layer, I did use Capybara to drive the application. I didn't care about JavaScript for these, so I was able to get away with using rack test instead of driving a full graphical browser. But even with that advantage, these ones were by far the slowest. I had 11 scenarios, they ran in three seconds. And of course, these are the times reported by Cucumber. So they don't include all of the times that it takes me to load all of Rails. I had a rake task set up to run the whip versions of all three layers and then run the passing versions of all three layers for a total of six separate test runs. And because I was using an environment variable to choose, I had to load Rails six times. The total wall clock time for that rake task came in about 40 seconds. So yeah, Cucumber is no mini test. It's never gonna run thousands of tests per second, but I was pretty happy with these numbers. In conclusion, if you do decide to try Cucumber again, and you haven't been happy with the way it's worked in the past, I would suggest that you keep just these two things in mind. First, your features should describe your domain, not your interface. And second, the step definitions are lava. I would like to clear the stage as quickly as possible for the next presenter, so I'm not gonna keep you around here for Q and A, but if you do have questions or feedback or if you would like some more stickers for your collection, please come talk to me after I pack up my stuff. Thank you.


So going back to play Cyberpunk, I tried to use some of the amazing glitches I covered once on my channel which makes the quality of life in Night City so much easier. But actually, not to my surprise, as it's been months, most of the famous glitches for this game don't work anymore. I went back to older videos where I have covered these glitches and they are utterly filled with people asking about them to see if they still work. Today I bring you five past glitches which were incredible but don't work anymore. This is being tested after the latest 1.3 patch and I hope this video helps a lot of people out because I mean some of these glitches revolved around you spending points or spending money to get to certain places to activate these glitches so yes, hopefully it helps someone out. How's it going guys, my name's DPjenn, if you enjoyed the video leaving a like really helps out and if you like what you see and want to see more, be sure to subscribe. Okay so today guys I bring you five previous glitches that no longer work. So have you seen some older videos from myself or from some of the many many other content creators who have covered these glitches? There's a good chance now that they may have been fixed or removed. So let's check out five famous glitches which no longer work. Okay so the first one we have is the infinite money via that painting glitch or exploits. Yeah guys that famous painting which made you millions in minutes this no longer works. This glitch which I originally uploaded many many months back revolved around a mission called space odyssey which rewarded you a painting. This painting although I don't believe was bogged in a weird way, what was strange about it was when you went to any drop point on the map to sell this thing you could sell it for four thousand euro dollars but the best part was you could buy the painting back for only 10 euro dollars. This meant you could literally stand here at this machine and sell this thing over and over making you millions. Well, nothing anymore because now this painting doesn't cost 10 euro dollars to buy back. It now costs over 9 thousand which unfortunately makes this exploit no longer a viable option to earn quick cash.  You just can't buy them back. So for the people who prepared for this day you can still make that money if you stack these up. Okay so on to the next glitch which was one that helped this painting glitch and that is the duplication exploit. So this glitch consisted of you finding any drop points within 9th city and basically exploiting a game which would kind of make their games menu freeze and once you did this you could literally duplicate items. This meant if you needed certain items for crafting and you was low on them you could duplicate that item numerous times. Even a painting you could duplicate numerous times allowing you to sell it much much quicker. The glitch was done by you standing in front of a drop point machine and pressing the button to enter the machine along with the home button at the same time. It was easy to do but I can confirm now this one hundred percent does not work. Trying it for about 10 minutes straight the drop point menu just doesn't freeze at all so yes no more duping within cyberpunk at the moment guys. Okay so next dot people don't limit it. Quick hacking skill xp exploits. So this glitch saw you having to purchase the ping mod and having it equipped within your cyberware operating system. Once you were done with this the glitch was simple. Now there were numerous spots where the map way this would work but my favourite spot you can see right here. Here you could scan and ping this camera earn a ton of quick hacking xp, drive out of the render zone, drive back and repeat. This would level up that quick hacking skill so fast it was crazy. Now it doesn't do anything beyond giving you 130 xp which means this would take you hours to level this up which makes it no use at all. So next up guys you have an exploit which saw you earning all kinds of xp including street cred and your characters overall level xp and it consisted of you killing a group of enemies at a distance running back slightly then going back to that same spot and taking them out again. Now this worked because the enemies would render out and then render back in but now it seems that they don't respawn and this is to me for the reason that the distance now it takes for enemies to render in back out and back in has been greatly increased. I mean you can still get them to render out and back in but you have to run much much further which in my opinion takes away the efficiency of this exploit. So any order glitch or exploit out there which revolved around enemies rendering in out and back in again may not work also. Okay so last up guys we have the unlimited athletics xp exploit which allowed you to basically max it out in minutes. The glitch itself is probably the easiest one featured today and it consisted of you earning one thing and that was the berserk operating system and while once you had this equipped and activating that berserk then running all you had to do was slide mid-slide going to your inventory. Here the game bugs out and thinks you are constantly sliding and because you have unlimited stamina where all berserk is activated and while you slide you get a slight boost if you pause mid-slide the game thinks you're just continuously sliding and because you're in the menu the berserk doesn't run out. So if you're setting your menu for a couple of minutes you'd literally max out the athletic skill. Well guys attempting this now pulse 1.3 it seems as though it doesn't work at all literally nothing happens with this one guys so yes this has been fixed and removed out of the game and there we have it guys five famous glitches which no longer work within cyberpunk it just means you're gonna have to play the game properly now I mean who wants to do that but yes guys if you enjoyed the video leaving a like really helps out if you're new around here want to see more be sure to subscribe and if you never want to miss a video upload you can turn notifications on by hitting that bell button but guys thanks as always for stopping by and hopefully I will see you on that next one


Hello, everyone. I'm Shaina Dhameja from Arijit K.D. Group, Isar Mohali, India. I'll be talking about real-time tracking of coherent vibrational motion in ground and excited electronic state and its implications in biology. So the motivation behind doing this work is excited state charge transfer, fluorescent proteins, which are indispensable bio-marking tools nowadays. So first fluorescent protein was obtained from jellyfish aquaria Victoria. And then several mutants were engineered. It consists of a chromophoric unit, which resides inside the beta barrel, as shown here. And the chromophoric unit is formed by an autocatalytic reaction between three amino acids. So it fluoresces basically via excited state proton transfer, as shown here, from the chromophoric unit shown in blue to an accepter amino acid via the hydrogen bonding network. And once it undergoes excited state proton transfer, it forms the deprotonated form, which fluoresces. So this energy level diagram here shows the photo cycle in such proteins, which have excited state proton transfer process, followed by fluorescence, and then a ground state proton transfer back to the ground state. Upon photo excitation to a higher line electronic state, it can also undergo photoconversion. While it can be easily studied about the photo cycle and photo conversion time scales, using techniques like fluorescence lifetime and pump-rope spectroscopy, it is quite important to pinpoint how vibrations control such charge transfer processes. On the other hand, there are many small molecule systems where electron transfer processes happen. And while such electron transfer is happening, the molecule undergoes structural changes, like twisting or isomerization. So it is important to pinpoint specific vibrations, which lead to such a charge transfer and what causes a particular deactivation channel. So first of all, I'll be talking about the photophysics of fluorescent proteins, which exist predominantly in the anionic form. The first protein, which I'll be talking about, is a yellow fluorescent protein called venous, where we found that there is a dual emission kind of behavior in this protein, showing emission from both LE state and the relaxed state. While in case of wild type GFP, such an emission from LE state is quite low. It is feeble, which could be because of the unique nature of potential energy surface in this protein, which we started. And another thing which we started is a photo conversion in an enhanced GFP, where we saw that upon illumination with UV radiation, it shows a new fluorescence lifetime component, which keeps on the amplitude for which keeps on increasing upon UV illumination, while the amplitude for the already existing fluorescence lifetime keeps on decreasing. And then upon analyzing the absorption and fluorescence kinetics and fitting it with analytic models, we could find out the time scales for photo conversion. Then upon doing global fluorescence lifetime analysis, we could see that the photo converted EGFP form kept on increasing, while the amplitude for the EGFP, which was the originally existing form, kept on decreasing. We also found out that these two forms were spectrally inseparable, and the fluorescence spectrum was overlapping in the two forms. So we could distinguish them based upon their fluorescence lifetimes. While we could study the photophysics of such proteins, it is also important to ask certain questions. Those are the structural changes and the intermediates which are involved in such charge transfer processes and what is the effect of environment. And also, what specific vibrational modes lead to a particular deactivation channel. So there have been studies on a few of such proteins. And one of those is a photoactive yellow protein, which has been studied by a Tahit-Aharaz group. And they have employed a technique called time-resolved impulsive-stimulated Raman scattering. And this plot here shows the vibrations in the excited state. And these are changing as the system evolves on the excited state, while it undergoes conformational changes from trans to the cis form. So first of all, I would like to discuss how to track the origin of vibrations, meaning whether these are arising from the ground state or these are arising from the excited state. In order to understand this, first of all, we need to understand the photon picture of electric field of light matter interaction, where basically one photon is absorbed and another photon is emitted. In case of Raleigh scattering, these two are same. While in case of Raman scattering, which could be either stoke shifted or anti-stoke shifted, this could emerge stoke shifted as compared to the incoming radiation or anti-stoke shifted. While in case of fluorescence, it is a stoke shift, but the energy level is an electronic level and not a virtual level as there in case of Raman scattering. So while this photon picture is familiar to all of us, it does not give us any information about how the macroscopic polarization was created and what is the order of the process that we are looking at. And that is why it is quite important to understand the electric field picture. So these are the electric field pictures for all these processes which I have shown here, where Raleigh scattering has one electric field interaction followed by the emission of the signal. While in case of Raman scattering, which is stokes here, there are two electric field interactions creating the vibrational wave packet in the ground state followed by a third electric field interaction, which basically interrogates it and then the signal is emitted. It can also be anti-stoke shifted as shown here. In case of fluorescence, two electric field interactions create a population in the excited state and then fluorescence is there. While this is the energy level picture, this can also be understood using double-sided Feynman diagrams where there could be an interaction from the brow or the catch side of the density matrix and showing the same processes here. So after having understood about this, all the schematics which I showed you involved three electric field interactions. So it is a third order non-linear spectroscopy. So suppose you have an experimental setup of this kind where all the interactions are coming from three different pulses. So the signal will be emitted in the fourth corner and hence it is called a box-cast geometry and the signal is emitted in minus k1 plus k2 plus k3 direction. So in cases where the first two interactions come from the same pump, the signal will be emitted in the direction of the probe which is basically called a pump probe geometry. It is a two beam geometry. So all the things that I showed you here were about Raman scattering but now I will tell you what is the difference between a spontaneous and stimulated Raman scattering. In case of spontaneous Raman scattering, the second electric field interaction comes from the vacuum field. While in case of stimulated Raman scattering, this second electric field interaction comes from the external field. So in case of SRS, which was developed by Botfeld and Geller, the two pulses are temporarily overlapped in time. While the Raman pump is a picosecond pump and it is stretched in time domain, it interacts twice with the system. So the interaction E1 and E3 come from the Raman pump and the second interaction comes from the white light probe and then the signal is emitted. While there is another technique called impulsive stimulated Raman scattering, where the first two interactions come from the Raman pump creating the vibrational coherence in the ground state and then the probe interrogates it. So the necessary condition here is that the temporal duration of the Raman pump should be much shorter as compared to the oscillations we want to look at. So there is a spectrally dispersed version of this technique which is ISRS. It is called SDISRS, which I'll be showing in the next slides and it has several advantages over these techniques. So as I told you, the SRS technique has contributions from any unwanted signals because the pulses are overlapping in time, but the signal is there over the entire spectrum. In case of ISRS, the signal is only there at the spectral wings because there is huge rally scattering while there is no background fluorescence and all the range of vibrations from zero to 4,000 wave number can be covered if a very short pulse is used less than seven femtoseconds. And in case of spectrally dispersed ISRS, it has all the advantages of these techniques. So this is the data for a solvent, which I'm showing here. It is for chloroform and after data analysis, we could get three chloroform modes which are shown here. These are Raman active vibrations of chloroform. Then while doing such an experiment, using a solute and a solvent, we could get many, many signals and there can be many, many pathways which will contribute, which I'm summarizing here. So the first two correspond to the non-resonant contribution of the solvent and the outgoing signal can emerge either red shifted or blue shifted as compared to the probe wavelength. While there can be many resonant contributions as well as shown in the blue box. So the coherence can be created either in the ground state as shown here or it can be created in the excited state. So, and we can also observe population dynamics and on top of that population dynamics, we will see coherent oscillations which we want to get. So in this case, a ground-shaped least stimulated emission and ESA and on top of that coherent vibrations will be there. So if we observe oscillations in the SE band or the ESA band, then these can be assigned to the excited state vibrations for that particular molecule. If we get it in the GSB band, these can be assigned to the ground state for that molecule which is under study. So the data which I'm showing here is for a simple molecule which is a diatomic molecule iodine dissolved in carbon tetrachloride and these are the time domain oscillations which we observed. And after Fourier transform, we got five Raman active modes out of which the first two correspond to iodine and the last three correspond to the solvent. So the first one is the excited state mode for iodine and the second one is the ground state mode for iodine and the rest three are solvent modes. We could also see that there is a node in this particular vibrational mode which is for iodine and there is a phase flip around this wavelength which is the absorption maxima for this particular molecule. So that is why we can easily assign it to the ground state mode and this one can be assigned to the excited state vibrations. We also observed that there was a recurrence feature for this data set which we didn't know whether we should assign to the vibrational wave package revival for iodine or but then we figured out that it can be assigned to the isotopal logs of the solvent that we were using which is a CCL4 and there are many isotopal logs and then basically they beat against each other giving rise to such a recurrence feature and upon summing up across the regions which are marked in these boxes we got an ISRS spectrum. As you can see here these two modes which are shown these are quite close in wave number so it is very difficult to distinguish these two modes if the probe is not spectrally dispersed which is an advantage of using this technique as you can see here these appear at very very different detection wavelength of the probe. As you can see here that there is a split line shape here and the difference is three wave numbers. So three wave numbers basically corresponds to 10 picoseconds in time domain and that is why we observed a recurrence feature which I showed you in the earlier slide. So I told you that in case of 30 generate kind of ISRS experiments there is a huge rally starting which is shown here and then I told you that there is an advantage of using a white light probe but using a chirped white light probe has an additional advantage which I will tell here. So these two schematics basically show a degenerate kind of ISRS experiment and the signal can emerge either red shifted or blue shifted and these two pathways contribute equally while in case of a white light probe which has a flat spectral profile so the red part of the probe and the blue part of the probe contribute red part and blue part of the probe they contribute equally giving rise to a signal which is emitted at same detection wavelength as you can see here but if the probe is not chirped then this blue part and red part these will arrive at the same time then these two pathways will destructively interfere and we won't observe anything so it is necessary to have an optimal chirping of the probe to get some vibrations or to enhance some specific vibrations so then we extended this work to polyatomic molecules where we could capture some of the vibrations this is a data for Nile Blue and Methanol where we could capture the ring breathing mode and compare it with DFT calculations as well so the same technique can be extended in the excited state so whatever process I described can be done in the excited state also there will be an additional actinic pump followed by Raman pump and white light probe in order to study the structural dynamics in the excited state and right now we have been doing this technique and we have been implementing it on these molecules so the first one is a push pull steel beam where there is an electron transfer from one end to the other end while such electron transfer is happening there is isomerization or twisting so we want to know which vibrations lead to isomerization or twisting in this molecule and then we will be extending it to photo switchable fluorescent proteins which photo switch upon irradiation with a light of particular wavelength and the chromophore also changes its conformation and we want to track the structural dynamics so I would like to thank my lab members Aizel Mohali and the organizers for giving me this opportunity to deliver this talk. Thank you. Thank you, Sharina, for this very dense talk with a lot of techniques, maybe a lot of work. The paper presentation is now open for questions from the audience if any. As usual you can use the chat or you can just switch on your microphone and ask. So I can break the ice again. When you go from iodine to nile blue or more complex structures is there a problem with having too many modes or so too dense spectra or is it rather easy for you to deal with three n minus six vibrational modes? Yeah, as we go on from diatomic to polyatomic molecules it is like difficult since there'll be many, many vibrational modes and then those have to be assigned. So we have to simultaneously do theoretical calculations and then assign which particular modes correspond to which vibration and then it becomes more complicated as the system undergoes some kind of structural changes as well. So yeah, it is complicated. Thanks. I see a question from Giovanni Bressana. Giovanni, can you switch on your microphone and ask the question or should I read it? Okay. So I will read it. Could you please expand on the white light cheer factor? Kukura shows how cheer-fed white light washes out of the coherent sun pretty good. Have you got the question? So apparently the white light cheer washes out of the coherent sun pretty good. Okay, okay. So yeah, it has been shown but also Sandy Ruhman's group and Shol Mukhamil's group also have shown that it can also help in enhancing some specific vibrational modes which cannot be otherwise detected at all. So there has been a lot of theory. So Sandy Ruhman's group has shown how only in the presence of chirp, we can observe it as I'm showing here that if this blue and the red part of the white light appear at the same time. So there is no chirp in the white light probe. In that case, we won't detect these vibrations. So for some particular vibration mode, it is quite necessary to have optimal chirping of the probe. So it has been shown. Okay. I think thank you, Shalina and I think it is time to go to the next speaker. Who is Uriel Murzan, sorry. We talk about X-ray absorption signature of short hydrogen bonds. Please Uriel, you have seen your screen and everything is fine, go. Thank you very much. Let me move this, it's blocking my screen. Well, anyway. So I'm very happy to be here. Thank you very much to the organizers for the invitation. I mean, it's a contributed talk, but yeah, I mean, for the accepting my presentation. So today I will talk about the topic that I'm very, very interested in, which is the ultrafast dynamics of electrons and ions around conical intersections. And in particular, I will talk about the role of the strong hydrogen bonds in determining these dynamics. So, okay. So conical intersections are extremely important for photochemistry and photo physics. They are very, very fundamental to determine what happens in photochemistry and photo physics. So basically these are just points in the energy landscape in which we have a degeneracy between two or more electronic levels. So in these points, we can have a non-radiative decay, non-radiative relaxation from an excited state to a lower lying excited state, or to the ground state, okay? So of course, the presence of these conical intersections in the energy landscape, determine a lot of what's going on, what will happen in the photochemical process. So one of the things I am very, very fascinated about is with the possibility of controlling the shape and the position of conical intersection, and hence controlling photochemistry somehow. So today I will talk about one specific way of doing that of approaching this idea, which is by adding strong hydrogen bonds. So I will show how the presence of strong hydrogen bonds can modify the shape of a conical intersection and the position of a conical intersection. And then I will show some optical properties that are derived from this phenomenon, okay? But first, okay, this is more or less an overview of the talk, okay? So first let's discuss what is a strong hydrogen bond. So normally we think about hydrogen bonds like electrostatic interactions, intermolecular interactions. So for example, in the example in the screen, we have some donor that is attached to an hydrogen and this hydrogen has some electrostatic interaction with certain acceptor, okay? And the potential energy surface projected in the hydrogen bond coordinate looks more or less like this. We have a deep well and another well that is not so deep, okay? But in nature, we can find hydrogen bonds with a wide range of strengths and in particular the strongest hydrogen bonds, they look much more like a three-center covalent bond than an intermolecular interaction. So they look more like just one single molecule than the interaction between two molecules, okay? So at the end, we have a broadened single well potential. Like in practice, this is more like a broadened single well potential, okay? So very recently, in the group of Gabriel Kaminsky-Schriele, they observed that in some protein aggregates that were also discussed in the talk of Chakramu, these protein aggregates, which have no aromatic residues or external groups, they show certain fluorescence, some fluorescence. And this is somehow surprising because we normally expect that in biological matter, the fluorescence arises either from these molecules called aromatic amino acids or from some external group turned here and compound is still fluorescent. So this was kind of surprising. And together with Ali Hassanali, they studied the molecular properties of these compounds and they observed that in their particular case, these compound contain a very strong hydrogen bond network, okay? These strong hydrogen bonds that I showed you before, well, they are very abundant in this combo, okay? So in order to see if there is a connection between the non-aromatic fluorescence and the presence of strong hydrogen bonds, the group at Cambridge synthesize a crystal of elglutamine. Elglutamine is just a non-aromatic amino acid, a simple amino acid. And this crystal contains an hydrogen bond network, a network of hydrogen bonds, which are of standard strength, okay? But upon heating, they convert the elglutamine system into something that we call elpyroglutamine ammonium. And this elpyroglutamine ammonium contains a very strong hydrogen bond net, okay? So both of the systems are non-aromatic. The main difference is that in the case of elglutamine, we have a normal hydrogen bond network. In the case of elpyroglutamine ammonium, we have a strong hydrogen bond net. As a consequence, and at variance to what happens in the case of elglutamine, in the case of elpyroglutamine ammonium, the system is fluorescent in the visible range, okay? So in principle, this tells us that there should be a connection between the non-aromatic fluorescence and the presence of strong hydrogen bonds, but which is this connection? So together with Gonzalo Diaz-Miron, who is a PhD student in Argentina, so we did some ab initio non-aromatic molecular dynamic simulations in which we computed the non-radiative decay probability as a function of time evolution in the first excited state. And we did it for the fluorescent system, but tuning the hydrogen bond strength to different strengths. Basically, for example, in the blue curve that you see in the screen, we have a very weak hydrogen bond, and you see that the non-radiative decay probability increases very fast during the first femtoseconds of the simulation, okay? But when we gradually increase the hydrogen bond strength, the non-radiative decay probability decreases, and when we reach the level of a strong hydrogen bond, the non-radiative decay probability is very low, and hence the lifetime in the excited state is higher, and hence the probability of fluorescence is high. So this shows the link between non-aromatic fluorescence and the presence of strong hydrogen bonds. So I will connect this with a spectroscopy that I'm extremely fascinated about. So in the first talk of the day, Professor Julia Weinstein, she mentioned that ultra-fast X-ray spectroscopy is marking the down of a new era for photophysics, and I really agree with that. So I think that there's many, many opportunities, new opportunities. If we apply X-ray absorption spectroscopy, which is really, I mean, it's really a challenge, but there's many, many physical insight that can be gained from this spectroscopy that cannot be done with classical techniques. So we recently developed a very, very simple approach to simulate this kind of spectrum, okay? And we are also currently, we are speaking with different groups that work in free electron lasers to be able to perform the experiments associated with the simulations that I will show you in a couple of slides. But basically, these simulations are basically some sort of a motivation for the things that could be able to, that we could be able to observe with an experimental spectrum like this. So basically, this is a pump pro-technic of two poses where we have at first UV poles that excites the system to one of the excited states, and then we probe the system with X-ray, okay? The main advantage, I mean, at least what I think is the main advantage is that the high energy of the X-ray absorption spectroscopy allows us to have a very, very high time resolution and allows us to probe really ultrafast processes. So we can probe not only the ion dynamics, the nuclear dynamics, but also at the same time we can probe the electron dynamics. So what we want to do with that is to probe the wave packet dynamics of the system when it is crossing a conical intersection, okay? Basically, the simulations I will show you are, you will see X-rays in the K-edge region, which is basically all of the transitions that come from the 1S core orbital and go to the balance orbit, okay? So basically the idea would be to probe the system while it is decaying through a conical intersection, okay? Well, I'm going the other way. Yeah, so this is an example of an ultrafast X-ray absorption spectroscopy spectrum, okay? This is for the case of L-bluetamine. This is the system that is non-phorescent, the system that decays to the ground state. So let's try to understand what we see in this spectrum. So first we have two bands, two big bands, okay? One is associated to the excited state. So this is the UV excited state, okay? And this is, so this is the X-ray response of the UV excited state. And this is the X-ray response of the ground state, okay? So we see that at the beginning, we excite the system to the first excited state. So all of the population is in the first excited state. And as time goes by, the system decays to the ground state. And the reason is that, once we excite the system to the first excited state, the system moves forward to a very close by conical intersection that allows the system to relax to the ground state, okay? So in this first region, in this first region, we see the crossing between the two bands, okay? And we see the decay of the excited state into the ground state, okay? And what happens in the case of the L-bluetamine ammonium, the system that contains a strong hydrogen bond? So as I told you at the beginning, because the ground state energy is broken, okay? In the case of the strong hydrogen bond, the conical intersection lies further away and higher up in energy. So it's more difficult for the system to reach this point, okay? And hence the lifetime of the system in the first excited state is much higher. So at least in this simulation time, we don't see a decay of the bond to the ground state. And maybe I skip the part of describing the spectrum. So this line, the horizontal axis is time and the vertical axis is energy, okay? So with this technique, we can differentiate the presence of a strong hydrogen bond with respect to a standard hydrogen bond, okay? So I think I don't have enough time to describe this part in detail, but I just wanted to mention that we developed a very simple and supervised machine learning approach in order to study both the electron and the nuclear dynamics along the conical intersection. So what is the system doing in order to transfer to pass the conical intersection, okay? So from a nuclear point of view, we observe that most of the motion is located around the hydrogen bond, okay? Again, this is the glutamine, the system that contains the standard hydrogen bond. And the main motion that the system does when it crosses the conical intersection can be separated in three parts. So one part is an intermolecular separation between the two hydrogen bond molecules. Then there is a reduction of the strength of the hydrogen bond coupled to a CO stretching in the acceptor part, okay? And finally, there is a planarization of the amide carbon, okay? That is in the acceptor part. So all of these motions need to happen in order for the system to decay to the ground state. So if we hinder this motion, we would basically re-retard or delay the decay, okay? So the most important part of this motion is the motion of the hydrogen bond between the hydrogen bond molecules. And this is what I'm showing you here. So basically in the graph of your left, you see three histograms. So these are the histograms showing you the hydrogen bond strength for the ground state in black the excited state in orange and all of the points that are close to the conical intersection in blue. So there's something very interesting here. So when the system goes from the excited state to the ground state, the hydrogen bond strength decreases. So the hydrogen bond distance increases, but first the hydrogen bond strength, before it goes to the ground state, it first increases. In the conical intersection, the hydrogen bond strength is the highest and it is entering the region of the strong hydrogen bond. So here in pink, we see the region of strong hydrogen bonds. So we see that in the conical intersection, the system transiently behaves like a strong hydrogen bonding system, okay? And in the graph of your right, you see the same histogram, but evolving time. So you see how the system smoothly first go to the strong hydrogen bond region and then it goes to the ground state hydrogen bond, okay? So this is very interesting because this shows that in the spectrum, we can not only capture the presence of stable hydrogen bonds in the ground state, we can also capture the presence of transient hydrogen bonds that basically occur in the crossing region, okay? So when we see this crossing region, we are seeing the presence of transient strong hydrogen bonds, okay? So I think I don't have enough time to talk about this in detail, this is basically the electron dynamics that also is observed in the spectrum, but I think I will skip this part and I will go to a conclusion. So strong hydrogen bonds can delay the passage through conical intersections between the ground and the first excited state and this retardation increases the lifetime, of course, in the first excited state and this increments the probability of fluorescence. And also the PAMPRO UVX ray spectroscopy reveals the electronic and nuclear, well, I didn't talk about the electronic part, but just believe me, it does. The electronic and nuclear ultrafast dynamics along conical intersection showing a unique signature of the presence of strong hydrogen bonds, both stable and transient. So these are the people that participate in this work, mainly I wanted to thank Gonzalo who did most of the calculations and Ali and this all was done with the LIO code. LIO is a code that we develop in the University of Buenos Aires, it's a DFT code and it's free and open source and if you want to download it, this is the webpage. So thank you. Thank you for this very interesting and fascinating presentation, which is now open for questions. Again, you can write in the chat or simply switch on your microphone. I have a question for Kurian. I have a curiosity or possibly a nasty question again. You convinced me that when you go from a conventional to a strong hydrogen bond, you increase the lifetime of the excited state and this is good because they suggest that maybe the state can fluoresce. But now the question is the state that you calculate, the fluorescent state in which spectral region will fluoresce because for me the most strange part of this result on anomalous fluorescence of this system is that again you observe fluorescence in the visible region and not in the far ultraviolet. So can you clarify this point? No, I mean it's just so the fact is that in the experiments we see that this fluorescence is visible. I mean it shouldn't necessarily be the case but in principle this is what they observe. This is not, so we didn't focus on this part on the part of where the fluorescence comes but what I can tell you is that this, so the part of the spectrum where the fluorescence the fluorescence arise is very consistent with also with the calculation. So it's something that we are capturing in the calculation. So the explanation why it goes, why it falls in this part of the spectrum and not in another is something that I could not answer and I think it's a very interesting thing to try to disentangle to understand. But you say that you calculate not a less in the proper spectral window. Yeah. This is already very interesting. Yeah. Do you see any more questions? Any more please and it seems not. So if there are no more questions we can thank Uriel and all the speaker of this last session.


Hey everybody, it's Brett with Summit Auto and today I got a nice treat for you I'm about to do six videos on some of the hottest wranglers that we have on our lot right now We just got all these in we just got them all through our shop and just all were pictured yesterday And now I'm gonna do videos full walk-arounds on each and every one of them I want you to let me know in the comments below which wrangler you want to see the most and Let me know what you want to see on those videos. Anyways, let's get started I'll show you before we get to it. This is a 2024 Rubicon 4 by e in bikini blue or green However, you want to look at it really sharp color can't wait to do the video on that one love the 4 by e package I like the bikini blue as well right here. I've got a Rubicon X in the Earl color kind of a seafoam green Gray color on there that looks really good. And now one has the worn winch on the front I have another Rubicon X in black and that is a very nice wrangler nicely optioned out Can't wait to show you the interior on that one right here. I've got a 392 in anvil Probably the hottest wrangler on our lot. Let me know what you think of that one And like I said in the comments below, let me know which one you want to see the most This is a Rubicon. No, this is not a Rubicon X But it is a Rubicon with the 35 inch tire and wheel group So it looks almost identical to that one except you'll notice what this one doesn't have the color match vendors or top And then we have a 2024 Sarge green Sahara It's got the three six v six in it and it is a sky one touch top So I probably have about two hours worth of work here Maybe a little bit more but I'm gonna get right at it because I know everybody on this channel loves Watching the wrangler videos and seeing the colors the options and the different trim levels So we have a bunch of Rubicon's here Sahara and a 4 by E and a 392 for you Let me know in the comments which one do you want to see most what you like about the videos What you don't like about the videos and I'll keep doing them and I better get to work Thanks for watching


At Audiology Associates of Prestonsburg, you can live your life the way you want and find the freedom of better hearing. You'll experience patient care that is specific to you with exceptional follow-up care that ensures your hearing and balance needs are being met. Audiology Associates at 1428 Northlake Drive in Prestonsburg. The Mountain Home Place Farm has opened its fifth annual pumpkin patch featuring pumpkin painting, train rides, hay rides, movies and more, all included in the price of admission. The pumpkin patch will be open select days until the end of October and tickets are $5. The pumpkin patch is open to everyone. We have already almost a thousand school children that are going to come and visit the farm. So, church groups, civic organizations, families, individuals, it's open to anybody.  Also, our historic buildings are open during the pumpkin patch so you can walk through and take a tour of those and just see what all the Mountain Home Place has to offer. The Mountain Home Place Farm also has a large variety of pumpkins and mums available for purchase as well as concessions. The Mountain Home Place pumpkin patch is also part of the pumpkin patch Palooza this year. In Johnson County, we have three pumpkin patches. The Mountain Home Place, the Griffith Family Farms and Pick and Play pumpkin patch out at Stambo. So we are all promoting each other and we want people to come and make Paintsville Johnson County their destination this year. The pumpkin patch will be open September 24th and 25th and October 14th, 15th, 28th and 29th. For more details and for our full schedule, go to Paintsville Tourism on Facebook. For Mountain Top News, I'm Brianna Robinson.


Russians capture 4.5 square kilometers around Avdiivka. The Russian forces have captured 4.52 square kilometers of territory on different axes around the city of Avdiivka during the last three days. The Russians are 3.32 kilometers away from the road that is the Ukrainian ground line of communication. Institute for the study of war ISW reported this. According to ISW estimates, as of the 12th of October, the Russian forces have not made a major breakthrough near Avdiivka and are unlikely to cut off the Ukrainian forces in the settlement right away. Geolocation data shows that Russian forces have likely lost, or at least, a battalion tactical group's worth of armoured vehicles in offensive operations around Avdiivka. A reliable ex-user observed on the 12th of October that since the 10th of October, Ukrainian forces had destroyed 33 armoured vehicles and 15 tanks belonging to the Russians near Avdiivka. A Ukrainian reserve officer stated that according to conservative estimates, at least 36 Russian armoured vehicles had been destroyed by the Ukrainian forces, including tanks, armoured personnel carriers, and other vehicles. A military blogger also claimed that both forces were suffering significant losses in the operations around Avdiivka. The defending Ukrainian forces are inflicting fairly significant losses on the Russians and disrupting their logistics near Avdiivka, which is likely to be slowing the pace of the Russian advance. A Russian military blogger maintained that the pace of the Russian advance had slowed and that Russian forces were now concentrating on quality attacks after suffering heavy losses in equipment. Vitaly Barabash, head of Avdiivka's city military administration, said that the situation in the city of Avdiivka in Donetsk, Oblast, has been very tough. Russian forces have increased their attacks and are trying to advance using armoured combat vehicles, but Ukrainian soldiers are holding their positions.


on the whole numbers. Now my format appears in a number generation because when I generate these it puts it back into the general. So I kind of, so well let's keep it like that. We'll keep it like that. I'm just going to double click it down and boom, brings it on down. So what happened to this one? Oh it's a negative interesting because it was a bell curve so we had a negative number. Okay so there we have it. Now if I convert to feet let's convert it to feet and we're gonna say okay font group black white center so feet would be inches divided by 12. That's how we do things over here in America we use this weird you divide it by 12 like 12 that's so sloppy like why don't you use a unit of measure based on 10 you know that would make sense whatever whatever this is how we do things home tab number group tell me don't tell me get the king of England over here trying to tell me that I have to or we measure actually we got our measurements from the king of the king of England's foot I think is how we anyways whatever that's how it is so I'm gonna close this up and then we're gonna say all right then all right let's make a skinny G skinny G skinny skinny G and then we're gonna say inches let's say I'm gonna say this is gonna be equal the inches again rounded and then the feet and I'll just copy the format painter this time home tab clipboard format painter boom alright let's make it let's make the mean mean it's gonna be equal to we'll say average tab going on over to the inches and control shift down taking the average of it we can add some decimals decimalizing it home tab number group decimalize and then we're gonna say this is the feet equals average decimalize isn't a word by the way but I'm making it into a word control shift down I think it will be a word once I have shown its utility in practice decimalize alright then we're gonna say this is gonna be standard deviation equals the standard deviation we're look we're moving to the sample this time so s not the population standard deviation of the sample tab I'm gonna say control shift down picking that up boom decimalize and that one home tab number decimalize so we could really recognize you can't recognize how they really are unless you can see the decimals you need to see the decimals you need to get under the hood before you know who they really are home tab number group decimalize okay so so so now when I compare these two obviously I can look at the difference now the difference and I could say alright well what if I was to like look at these two this way I could look at the difference in the mean and the difference in the standard deviation but that doesn't tell me too much right because home tab number group because they're in different units so doesn't that doesn't really help me but I could compare like there's z scores so that's one thing I can do I can compare and that's how our correlation will basically work before we do that however let's first let's first imagine that we're gonna say hey that this set of data looks like it might look like a bell curve like if I select this data I'm gonna go hmm is there a relationship with this data if I select all this data control backspace and then go insert and make a histogram from it here's my histogram based on inches so this is the inches histogram and why is it not when I type you do something that's how computers work computer don't you start protesting on me you know I was typing something so and if I do the same thing for the feet control shift down backspace control backspace and insert and then boom and then this is gonna be feet okay so I can see there's kind of a relationship right I can say those look kind of similar but I can't really compare that center point of course because they're in different units but it's like okay well they both look similar they both look like they conform possibly to a bell curve relationship so maybe I would maybe I'd compare the bell curve just to play with the bell curve before we get into the correlation here and then so I'll do that because that'll be fun muy divertido muy divertido okay so this is gonna be then let's say we'll take this standard deviation let's take four standard deviation so if I'm gonna do this bell curve thing what I want to do is plot out the bell curve X for inches and then P of X and then we'll do the Z as well and then we'll do the same thing for X for feet and then P of X and then we'll do the Z for feet this will be the Z for inches all right but I need to know how far I need to go where do I need to start at with my X's so I can say we'll do the four standard deviations as we saw in a prior unit because that'll encompass the vast vast majority of the data so I'm gonna say four standard deviations and let's say that we go upper X and lower X so I'm gonna put them I'll keep the same headers here inches and feet this time so the upper X is gonna be equal to the mean plus the standard deviation times four that's as high as we that's how far up we're gonna go and the lower I wait I usually do the lower first don't I let's do the lower lower X and then the upper X so let's be consistent if you would otherwise you confuse people times this no it's minus minus this times four okay so that makes sense so we're taking the 16.29 times four standard deviations minus the center point the mean alright so negative 30 and then this one is going to be equal to the upper which is going to be the center point of the mean plus the standard


what is going on guys welcome back to bitcoin daily for another video today we are answering a question that we get all the time the question is how much money should i invest in crypto we are answering that question for you guys today we're going over all aspects of it everything you need to take into consideration everything that you should be asking yourself before making your first investment so hope you guys enjoy this make sure to subscribe hit that notification bell make sure to hit that like and make sure to drop a comment so the question is how much should i invest in bitcoin if you have a pile of cash which you want to invest into the financial markets how much should you invest should you diversify into other cryptocurrencies as well are the opportunities in the cryptocurrency market so juicy that you should just go all in or maybe just a humble one percent or perhaps somewhere in between those two extremes without a doubt cryptocurrency investment is extremely high risk even if you put your money into bitcoin the most reputable cryptocurrency around you're still investing in experimental technology sure you're probably wondering how about icos and all these new projects well in the increasingly hyper competitive crypto space expecting that nine and ten projects will fail is probably on the low end sure that single project that does explode in value couldn't make up for the other nine failures however this assumes that you'd have enough time and luck to find that needle in a haystack for most people including me that's a completely unrealistic assumption so what's the perfect amount to invest in bitcoin or other cryptocurrencies well let me just cut to the chase there is no one answer to this question which will be appropriate for everyone the recommended number by many financial experts who are in the bitcoin space recommend between 1 to 2 percent of your total investment portfolio in crypto however the younger you are the higher the risk you can take some millennials have over 10 percent of their portfolio invested in crypto i myself average between 25 to 50 percent of my investment portfolio in crypto but it is an amount that i am willing to lose which are mostly profits and not out of pocket money so what should i do well unfortunately i can't make that decision for you especially since i'm not a financial advisor but from the research that i've done there is a strong argument for some exposure in the cryptocurrency market but going all in that seems quite extreme the only caveat to that might be if your total investment capital is low for example under $2,500 and you're young like a millennial or a generation z and that's only because in the grand scheme of your lifetime earning potential losing that much wouldn't hurt you too much in the long run if you lost it all so questions to ask yourself when you're trying to figure out how much money you want to invest in crypto the first thing is do you have a lot of debt because if you have a lot of debt then you probably want to take care of that first before you go on investing money the second question you should be asking yourself is do you have an emergency fund of at least three to six months emergencies can happen at any time you always want to have an emergency fund for that can cover your expenses for at least three to six months so if you don't have that emergency fund set up yet that can cover your expenses for at least three to six months i don't recommend investing into crypto yet you need to get your affairs in order before you start risking money especially in something that's so high risk and volatile the next question you should ask yourself is will you need this money for anything at all in the next 12 months if you need this money for tuition or bills cell phone credit card vacation whatever it is then you should probably not invest this into crypto statistics show that 99 percent of crypto investors are profitable over the long run so that's why you need to prepare to have your funds in the market for at least 12 months the next question to ask yourself is will you be okay if you lost your total investment i know scary right but that's definitely something that we have to ask ourselves before making an investment you have to think about this because it is a real possibility to lose your investment and you have to be okay with it so the amount that you're investing has to be an amount that if you lost it all it would not in any way shape or form affect your daily life and your day to day life the next question you should ask yourself is will you lose sleep over the ups and down of this volatile market we have to face it this market jumps up and down very quickly and the proof is in the history if you look back to 2017 when bitcoin hit 20 thousand dollars which is the all-time high and then you look back a year after in 2018 where bitcoin dropped all the way to three thousand dollars you have to ask yourself would you have been able to hold on throughout that whole period would you have been able to know when to get out these are questions that you need to ask yourself and you need to answer if you will lose sleep over a 20 drop of your portfolio's value of your investment's value then you should probably consider investing in something a little bit safer maybe in the stock market or some bonds or something else because bitcoin definitely jumps up at the same way it could jump up 20 percent in a day it could also drop 20 percent in that same day so are you mentally prepared for this ride if your answer to any of these questions is even a maybe then you should reconsider before investing into the cryptocurrency market so the next thing that we should talk about is how to finally buy that first crypto right so what i always suggest anyone that asked me for my opinion on how to do it is dollar cost averaging so the way that you should divide your investment budget is into weekly or monthly purchases this is going to average out your entry price giving you the best entry possible because we don't know at the end of the day we don't know what the big what bitcoin's price is going to do whether it's going to rise or drop we don't know so the best way to get the best entry possible is to dollar cost average your entry so for example if you buy at ten thousand dollars and it drops to five thousand dollars and then it goes back up to seventy five hundred dollars then you're down twenty five hundred dollars right but if you buy at ten thousand dollars and it drops to five thousand dollars and you buy again the same amount and then it goes back up to seventy five hundred dollars now you're no longer down twenty five hundred dollars now you're down now you're i'm sorry Now you're break even because you bought a Bitcoin at 10,000 you bought a Bitcoin at 5,000 So your average entry is 7,500 so once it gets back up to 7,500 now You're break even and once it gets back to 10,000 now you're up 2,500 Does that make sense? Next we need to speak on diversification So it's a technique used to reduce the importance of luck It means that you will not only invest in Bitcoin, but also allocate your capital to different investments For me personally, I keep around 30% to 50% in Bitcoin and Ethereum Bitcoin being my biggest holding Then I spread a small slice approximately around 20% across the other cryptocurrency projects that I'm interested in mostly in top 10 cryptos I don't I One one, I don't really go out into new projects much because I trade based on technical analysis and When there's a new coin or new project unless I really really believe in it it has to go through a discovery period where it where it discovers what its true price is so I don't want to be in Invested in it while it's trying to discover what its actual value is. That's why I don't invest in new projects Okay, now Other than that, right I do put I do allocate around 1% to 5% on what I call lottery tickets, which is you know um Dart throws or home runs or you know something like that where I just I might really believe in in this one project and You know, I'll put one. I'll risk 1 to 5% of my total crypto portfolio on that After that I use about 20 to 25% of My crypto portfolio to day trade Okay, I do day trade I do scalp So I use about 20 to 25% of my portfolio to turn Basically get Bitcoin and turn it into more Bitcoin right and Then Finally I keep around 10% of My portfolio in cash So that I'm always ready to buy the dips Um So that's how I break down my portfolio You know, you have to figure out how to break down your own portfolio all in all don't put all your eggs into one basket It would be like playing Russian roulette you'll win and win and win But when you lose you lose everything So the bottom line It's important to understand how Bitcoin works before investing any money Bitcoin is still new and it can take months to understand the true impact Bitcoin can have on the world Take some time to understand Bitcoin how it works and how to secure more and about how Bitcoin differs from fiat This information should not be taken as investment advice It is for general knowledge purposes only you should do your own research before buying Bitcoin What's up, welcome back guys. I hope you enjoyed the video Let's do the question of the day real quick. So the question of the day is Let me think oh, yeah, I got it What is the recommended way of buying Bitcoin so that you have the best entry? That is a question of the day guys and make sure to drop it in the comments Make sure to hit that like make sure to subscribe to the channel and share it with your friends and family Guys, I hope you enjoyed this video peace and love


Hey, this is Matt with surfstationstore.com and today we're reviewing the Channel Islands Rook 15 So everybody remembers the rookie which is the standard shortboard from a handful of years ago developed with Almeric and Jordy Smith and in 2015 they revisited the model and modernized it so Rook 15 is very similar in that it has a single concave throughout the board So it's definitely going to work in better waves not necessarily bigger waves but definitely in some ways with power I would say waist higher bigger with some push and This is generally written as a tri-fin So take your standard shortboard from a handful of years ago and modernize it a little bit shorter wider in the middle a Little bit more volume through the nose and tail, but not as much as the Fred Rubble It has quite a bit of rocker a single concave and definitely a straight outline With a relatively pulled tail block So this board is definitely meant for some decent waves living here in Florida You're most likely not going to get a tremendous amount of use out of it unless you're on a trip hurricane swell good northeaster It's meant for Probably two-foot or bigger nice and punchy. It's a very easy to ride board if it's in the right conditions these boards parallel with say a Taco grinder as your step up your Rook 15 as your everyday board and then maybe a high five Something along that lines as your groveller. So it fits right in the middle of the three board quiver Thanks for checking out our surfboard reviews. Please check out our full inventory at surf stations store.com


We had a big day today, rain delays, pushed everything back, a lot of five setters as well, which made things interesting. Novak Djokovic winning in four, but let's go through the results of the day because we did have some upsets. Here's the daily wrap. We've got Novak Djokovic, he won in four sets against Kwan. It was a very interesting matchup. That one, Rodokhanu won in straight sets, and Murray won against Duckworth in four. Anstjabor, one of the favourites to win the women's. She won straight sets. Elkres won in five. He was in big danger. He won in five with Kerber winning in straight sets as well, and a couple of matches still underway. Nori, he got the wins in straight sets. Conservate her first match for a while. She won in straight sets. Sina beat Vavrenka in one of the big matches of the day, but unfortunately it didn't turn out to be as the five set epic we expected, but still pretty competitive. Her catch, biggest upset of the day for the men by far, losing to Fakina in five sets, should have won that match. Saved match points to get to back to the fifth, but should have got the job done. And Daniel Collins, massive upset on the women's. Seven seed, both for the men and the women, both are gone from the tournament. Kaspar Brud, number three seed. He got through in straight sets and Hadid Maya. Massive upset there with her going out in three sets to Yvonne. Very big upset there. Hadid Maya, one of the favourites. One of the dark horses we all expected to do well. We got Tommy Paul, beat Vadasko, three sets. Few matches still going on because of the delays. Umbair, he won in five as well. So there's another epic match that happened today. But yeah, a lot of tennis being happened today. A lot of matches, a lot of results still haven't been able to be played because of the the rain delays and the light being bad and they pushed everything back. So there is the daily recap on day one of Wimbledon. Let me know down in the comments below or in the chat. What do you reckon about day one? Were you nervous about Noli? He didn't look, I mean, he didn't really get out a second gear, but let me know. What did you, what was your biggest shock of the day and maybe your biggest surprise of the day, either win or loss on this first day of Wimbledon?


In this study, we found that prolonged cold exposure can reduce the incidence of medial arterial calcification, MAC, through the activation of AMP-activated protein kinase, AMPK, MTOR autophagy pathway. We also discovered that MIR-320a3P from cold-exposed mouse plasma-derived exosomes, CTXO, plays a key role in this process. Further experiments revealed that MIR-320a3P targets programmed cell death 4, PDCD4, and promotes autophagy in vitro and in vivo. Finally, we found that the anti-arterial calcification protective effects of CTXO are largely abolished when PDCD4 is knocked down. Taken together, our findings suggest that prolonged cold exposure may be a good way to reduce the incidence of MAC. This article was authored by Fuxing Zili, GenGLU, Fengshu, and others.