the test work. Thank you very much. Obviously always a challenge to talk after Tom, who eloquently draws a line from more than 70 years ago. I think it was 45 when say the paper from von Neumann was published till say 10 years in the future. This talk is really completely down to the earth, much more boring. So I think the best thing to do right now is just to admit it's from the very beginning. So it's talking about say an ambition with a project which say a number of supercomputing centers are now say preparing and I hope that we can say also formally start off say very soon. And it's about something which we call Phoenix which is about say trying to basically aggregate say infrastructures and to augment infrastructures which are partially already in place at the involved supercomputing centers. And it's about to say establish HPC and data infrastructure services for multiple research community. So it's really and that's something which I want to explain to you and I think it's also an invitation then also to this specific community which is say at this conference to engage with us is to say work with us also in building up this infrastructure because it's meant to actually support communities and we want to do it in a way that we actually say facilitate federation of the infrastructure at different locations here around around Europe. Now as I said I mean it's really meant to be a science community different approach and actually and that's why I put the logo here it's the human brain project which is for say one important reason say going to be the main driver it just for the simple reason is that it's we expect to get the money for getting going from actually exactly this project so that's why this project is in the primary seat but it's also say about trying to involve other communities so in order to realize this infrastructure and to first enhance this infrastructure really in a co-design approach so to try to understand what are the needs of the different communities it is about trying also to establish a new kind of model where say science communities can buy into an infrastructure such that we as phoenix resource providers say act them as say service providers who provide IT infrastructures to science communities but that of course also means that the communities have to get control on the way of how these resources are actually provisioned then to the community so the resource allocation is actually managed by the communities and that is something which we also try to establish within this this project now just also I will explain it a bit more detail later I mean just to already highlight at the very beginning say there's some things which we try to do different than what you can as today expect from a supercomputing infrastructure is that we want to add say more interactivity we want also to add say the ability I mean to do a more elastic provisioning of scalable computing resources and then the third point is say the federation of the data infrastructure now I put here a disclaimer I mean we are still say very much at the beginning so a lot of it is actually still open to say final architectural decisions but this is on purpose because as already stressed we really want to do it say with the right science communities we don't want to just put something in place and then hope for everybody to become happy now who are the players which are involved in there it are say five supercomputing centers it's in Barcelona BSC in Francia then here in Italy in Bologna Cinecar CSCS in Switzerland and then in Germany it's the newly supercomputing center so it's all sites which are say provisioning tier zero resources within praise I think also what all these sites have in common that they are quite strongly linked then to different science communities so really something which I at least personally also believe to be extremely important now this is not meant to be a closed shop so I mean we actually also envisage that in future this consortium might actually expand now what are the kind of research communities which we are talking about well first of all just also form that's where we get our money from it's the brain research or the more specifically human brain project which comes with its needs for being able as already mentioned also by Tom I mean the scalable simulations of brain models but actually at the same time and that shows also the diversity in this research community it comes with quite some challenging data analytics requirements when it's about analyzing for instance brain images in order to reconstruct them high resolution three-dimensional atlases of the brain I think also one interesting aspect and that's also where you see that the community is trying to say have really collaborative approach is to build up a knowledge base as part what they call then the informatics platform now there are some other say communities which I we believe that are say prime candidate of also being say say good users of this infrastructure that is material science also there on behalf say large data sets which are coming from simulations but also from say experiments and I think obviously there is a European community which is already engaged towards enabling data sharing within for instance the different centers of excellence there then the area of genomics and also the area of physical science experiments where we have say some experiments which do have for instance also the need of bringing not only say a lot of data and being able to process it but also to combine it with say HPC simulations so it's really about say communities which have in common that they at least most of them have the challenge that they produce data from quite different types of sources it could be an HPC system itself it could be also say different experiments like say high performance scanners of images so you have distributed data sources and you have also say in a certain level of heterogeneity and you have the need of having a close connection to HPC systems where the HPC systems act as a source or a sync of the data so from this we would conclude that there is a need for an infrastructure to facilitate data sharing and to connect it to a high performance data processing capabilities and that is something which typically most of the infrastructures which we have at least in place in Europe don't provide so I mean many of the supercomputing centers are for instance involved say in any kind of computing but if you look closer in the center and Julie is not an exception I mean it's basically just one server where you can copy data by hand from one world into the other so there is not really a tight integration of the federate data infrastructure and the HPC now how do we want to address it also say from a more architectural or conceptual perspective and I think there's also say an important change in the way of how we want to set up things in say really provisioning of resources in a service-oriented manner so to really say also separate say concerns and to and our role as Phoenix resource providers is to really focus on infrastructure services which are suitable for different science communities so we cannot afford it to just do it for one single science community and that's why we also position this project even so initially the main money comes from one specific community in a way that we can expand it also to other communities and then we expect then these communities on top of these infrastructure services to come up with their own community specific platforms and they're talking here to Francis um a material science community for instance something like a there is a good example for having say a platform which is community specific which can run on top of such kind of infrastructure and services then we want to federate these these infrastructures um for different reasons I mean it helps to enhance availability of the infrastructure service it also rather say the the kind of services which RSA available because we don't expect that each side the same kind of computers to be available but it also allows for instance to optimize for data locality so I mean for some of the data sources I was mentioning for instance what we in Ulig are doing in the context of say creating of brain atlases we also talking here about petabytes of data and so you don't want to move this kind of this amount of data all over Europe but ideally you keep this data locally and then you allow others to actually use local services in order to access the data now a lot of this aspect of course is strongly inspired which is in the in the cloud but I think it's also important to realize that there are some things where it's still say different from the cloud so it's not us turning into say um say cloud providers like like Amazon um I mean we are aiming for say a very limited level of virtualization so that you can really get the resources which we should need and it's also I think largely about the different types of business model in terms of that we will charge for provisioning of capabilities of IT infrastructure not so much in terms of the actual consumption of these resources right so there's a big difference in there because if you would say basically charge according to say consumption then we would have to charge as much higher rate but we just say okay we provision a certain capability to you and up to them to community to actually use that um sake of time let me just um immediately jump into the kind of services which we plan to provision in in this context it starts we say computing services where as already mentioned we will add interactive computing services um then of course there is also scalable computing services but if you think about in for instance say solutions like either where you have an idea demon you need somewhere uh say uh opportunity also to have a service which is continuously running so you need uh say the m services stands for say virtual machine services then there is different kind of data services and of course you have to embed it into an authentication and authorization services you have to manage users etc so let me go in for some of these services a little bit more more detail for say the interactivity um and that's something where we have seen say the the brain community driving it a bit not necessarily it to the extent we initially expected it um but um they are still say pursuing it and we see it also emerging in in other areas and that is the need for being able to actually couple to scalable simulations in an interactive way and in a way that you say monitor the progress of the simulations but also in the way that you interact with the simulations um and that could just mean of being able to interrupt a simulation on the fly when you just notice okay the simulation is moving in the wrong direction it is not exhibiting the kind of properties which you would expect but also we see here say the stronger need for being able to interact with the process the data so to have basically the ability to log into the system and to have access to to all the data and to have then also the ability to use interactive frameworks like Jupiter networks are or maybe also matter of octave now a second type of services is say the scalable computing services um and one thing where we really want to say expand as there as we see some use cases in the context of the the brain research but that's where we actually still more in the searching part um and that's about say elastic a scalable computing services and there are different options of how to actually implement it I mean you could think about having a kind of a checkpoint resume mechanisms where you say okay there's some long running simulations we don't care about say so much on when they finish so you checkpoint it in order to free up resources and then allow for an interactive um job to quickly scale out for um say a larger job the other alternative is also to say reserve essentially a set of nodes for these kind of um calculations so what we see for instance in the in the brain is is in the brain is that people are interested in our coupling simulations with uh neuro robotics experiments so when you start to have some real-time requirements and you don't want to submit a job to the bachelor's system and the bachelor's system it is wisdom I mean schedules then uh the simulation at uh 2 a.m. in the night um when you're not ready to do your robotics experiment now this is say one example and that's the reason why I explain it here where we really say open also for say co-design in order to understand what are say the needs uh so what is basically the upper limit for acceptable response times are you willing I mean to only wait for minutes or are you say willing I mean to wait for half an hour or an hour until the resources are made available and in what range should we be able to scale um now also there is in the area of the way of how we want to provision uh say data resources where we want to do some of the things uh differently and I will explain the reasons why we planted this infrastructure to actually differentiate between different types of storage and um the terminology which we are currently using is um that we distinguish between so-called archival data repositories and active data repositories and possibly upload buffers but let's focus on the first two archive data repositories are meant to store data for a long time they are optimized for being extremely reliable they are optimized for capacity because that's where I say the primary data products are say accumulated but they may not necessarily be particularly good in terms of um the performance at which you can access them uh in particular if we talk about say highly scalable from highly scalable compute systems on the other hand um we want to have say active data repositories which I say data repositories we actually put in the vicinity of computational but also visualization resources because for visualization you need to have short access latencies for when you access the data and these repositories we say foresee being used for storing temporary slave replica of large data objects now the reason for that is actually if you look at the kind of say storage technologies um there's basically uh you could see say two areas and on the one hand you have the say the technologies uh to which we are used to in the context of HPC uh so that are highly scalable parallel file systems uh which have proven to be able to to cope uh with say 10 thousands or even hundreds thousands of of clients um and they all say have a common that they are basically focused on having a POSIX or almost POSIX compliant interface on the other hand if you look more say in federated architectures like say cloud architectures um there are different kinds of solutions which are being used um and they are say much more flexible um they also um make it much more easier I mean to federate them as they for instance support federated identities um but they are not suitable for say accessing them from a very highly scalable system and in order to basically take the best features from both of the worlds I mean the kind of architecture which we are implementing is that say on the one hand we have um archival data repositories which are based on these kind of cloud technologies so which are then going to be federated uh so that's why they are based on technologies which are suitable for a federation uh but on the other hand we have active data repositories which are continue to be based also not excluded but also on these parallel file systems and through which you then can access them the data uh with say scalable compute services and of course you need then to put services in place we call them data movers which allow them to move data back and forth from these slower uh but federated data stores into say the active data stores um all of them of course needs to be integrated into one AI infrastructure and that's something which is also say not not trivial but it's it's necessary so that you have your same ID which you can use um to access resources either at DSC in Barcelona or at Ulich in Germany um and so there's quite a lot of technicalities around that I mean to make sure that you have on the one hand say you enable the community to actually obtain these kind of IDs but on the other hand also say security requirements are taken to account now let me at the end um take you through also one of the aspects which are highlighted at the very beginning and that is the way of how we envisage the resource allocation now what we have here is basically we're talking about three different um actors so on the one hand we have those which are currently say part of the Finnish consortium that are say the resource providers so those who provision uh compute resources storage resources and then we have Finnish communities so that are science communities which say have a buy-in into this infrastructure so they are eligible to say consume resources there and members of these communities we call them the phoenix users now the roles then is is that the the resource providers obviously they provide the resources for a given period of time to the phoenix communities based on say the agreements which are in place and they also define the rules according to which the resource is allocated but they don't do the allocation itself because at the end it's the communities which say provision the resources for realizing the infrastructure and so it's up to the communities to actually do the decision on how the resources are distributed and the way of how we foresee this being done is that the phoenix user they submit to their community a proposal for resources and then the community which then reviews the proposal and then awards available resources to the phoenix users so it's the resource provider which only defines rules and that is say one of the rules that there is a kind of a peer review process in place to make sure that say resource are distributed according to scientific excellence but at the end it's the community which makes a decision and for this we also say um and I only want to briefly mention it we have say defined the concept we call it say phoenix credits that's a way of how we express the resources which are available in this infrastructure and which we then can provision then to a science community or phoenix community and then the phoenix community can distribute then these credits according to the rules which have been defined beforehand so um to briefly summarize um what we really would like to have is uh to have say strong science drivers towards the data-oriented federated HPC infrastructures um there's quite a lot of opportunities but also say quite some challenges which we have to to solve in this context like putting an AI in in place to also bridge between process and cloud storage technologies the integration of interactive computing services and also to establish really a new model for allocating HPC and data resources to research communities and we try to do that in in phoenix where phoenix is a group of super computing centers and they are currently now engaging in a very first project it has a bit of a clumsy name HPPSGA so it's a special research grant under the framework partnership agreement of the human brain project um and it's called in IC which stands for interactive computing e-infrastructure um and but it's not only say for the brain research community it's also for a wider community so part of the resource of actually provisioned be provisioned through praise and that's where we have some say open as then also ready now to invite other communities to engage in this and I just would finally like to give credits to now a growing number of colleagues at the different sites which are involved to that thank you very much


Hey everyone, welcome back to my channel, Drew here from Lone Fox. Today's video is a little different. I feel like I open up everyone in my video saying today's video was a little different, but I have been like dabbling into a couple different styles of videos for myself, and this video is more honed in on a direct item that we are styling, and that's going to be a dining table. Actually, I asked you guys over on Instagram, which if you are not already following, make sure to do so. I'll put it on the screen right here for you. It is just Lone Fox Home, same with my TikTok account. I asked you guys if you wanted to see a table setting video for the holidays, and it had 16,000 people saying that they did, so I was like, okay, we are gonna be making this video, and I have to figure out how I'm gonna be doing it, because I have never in my life done a table setting. I've mentioned on my channel that I'm actually hosting Thanksgiving this year at my apartment. My family is coming here, which I'm so excited about. It sounds so much fun, so I figured why not go ahead and practice my table setting skills while also filming it for you guys to give you a little bit of inspiration for the holiday table setting season. So I actually have three different Thanksgiving tables for you guys, and then one Christmas-y holiday-thing table. So we have four total inspo tables in today's video, which I'm so excited about. I'm walking you guys through the process of how I constructed each table from start to finish, all the elements that I use, and absolutely everything that I used in each table will be linked in the description box below. I really try to utilize extremely inexpensive materials and items, because honestly, table settings aren't super DIY-able. You really don't see people DIYing their plates and their flatware and their glassware, so a lot of the stuff you do actually have to go out and purchase, of course, so I wanted to keep it extremely inexpensive. Everything is linked below for you guys. These are all my table settings, and I hope that you guys enjoy them, so let's go ahead and dive on in. For our first table setting, this is our Blooming Autumn table setting. We're using fresh florals in this one, so I'm starting off with a really beautiful tablecloth. I love the slight texture to this one and how it has the slightest bit of a mauve tone kind of ties back to my rug in my dining room area. Now for our centerpiece, I'm gonna use a large wooden bowl. I got this at Target a while back. I've had this for probably around a year, and then I'm gonna pop in three smaller vases, to create what looks like a larger centerpiece. So we're gonna fill that up with some fresh florals here, just some falfing florals. You can totally opt for whatever colors you would like. And then as far as the table settings, I'm starting off with a very simple white dinner plate to start, and then on top of that, we're adding a smaller plate here. Both of these plates are actually from Amazon, and I love the second one. It has a slight creamy kind of linen texture to it, and then as far as our napkin goes, I wanted to add a really nice pop of warmth, a little bit of that fall rustic touch, so I went in with these rusty orange napkins, and I love how it has a striped detail around the edge that's also mimicked in the tablecloth as well. So it kinda looks a bit cohesive, and I simply wrapped some jute around that, made sure my jute was extra long so I could tie a large bow, and placed a little pumpkin on top of that, just to finish off that dinnerware area. And then we're gonna add our flatware. This is a simple gold flatware. It is the one I've had for years. I love it so much. It doesn't tarnish or anything. It's just an incredible set of flatware. I'll link it for you guys. And then a couple of wine glasses. These ones are ribbed or I guess fluted. I like them because they kind of reflect the light in different ways, and I love the look of that. And then I finished off the table with a bit of serveware, and I added a couple of beeswax taper candles and just some random vintage taper holders that I've had sitting around my home, and added a decorative bowl at the end of the table for like a salad or something, and that's how I finished off this simple table setting. This next table setting here I absolutely adore because it uses a non-traditional color palette, which I love doing when it comes to holidays and kind of experimenting with different colors. So I started off with a table runner here, and then I'm laying down a couple of chargers. I probably would never gravitate towards, but I picked up this pack of blue plates for this particular table setting, and I love the contrast between the copper edging and then also that blue ceramic plate on top. I thought that was just such a beautiful pairing. And then as far as the napkin goes, I loved this kind of chunky, just very organic natural napkin. I used this in a bunch of the table settings in today's video, so I folded on a diagonal, and then I rolled it up into this kind of like log, and then I'm going to go ahead and just tie it in a simple knot. This is a great way to just make your napkin look like it has a little bit more interest without having to try too hard.  I loved these eucalyptus' and like this rusty orange color, so I snipped off a piece of that and slid it into the napkin. It's just a great way to enhance your plate. And I normally opt for a natural piece of actual eucalyptus, something like real of course, but this rusty orange color was just too good. It just made the plate look perfect. Now I'm adding a set of hand-blown glassware. These are from my website and online shop. I love these glasses. They come in short and tall. And as far as the flatware goes, I'm using this gunmetal flatware and I'm doing two forks on the left side and then a knife and spoon on the right side there. And I just love the contrast and almost like industrial element that this flatware adds. And here's where a non-traditional color palette really kind of comes into play. And you can really start to tell that we're adding that. With the green pumpkin there, I love the way that looks with the smaller yellow pumpkin. Then I mixed in a couple of other small pumpkins, even a DIY one that I created on my channel, a couple of pillar candles and a cutting board just to add a bit more warmth to the table there. Now in the center, I popped in this really great little faux plant from Target and then my little stems from CV2, which I love over on the left side, just to kind of add some height to the table. And I wanted to add some name tags to each of our little place settings. So I brought out some Raffia cloth, which I love because it has this kind of fabric-y retan feel to it, but you're still able to write on it and it's really easy to cut out. So I just wrote on top of it the names of each of the person at the table setting. And then I just kind of frayed up the edges to kind of give it that harvest-y feel. And then added a few more taper candles to the center of our tablescape just to add a little bit of height without obstructing your view of the person across from you. And that set the tone for our eclectic harvest table setting. Our next table setting, this is probably my favorite Thanksgiving one. Don't worry guys, we have a Christmas one coming up next. I first started off with this really beautiful table runner that just has a natural element to it. Then I added a couple of placemats. These are cotton, chindi style placemats, which I love because I like how they have such a beautiful texture. Now as far as the dinner plate goes, this is actually a plastic plate from Target, believe it or not, that I stacked with a wooden teak plate. And then on top of that, just a small decorative plate that kind of has these little fall elements embossed into it. And then for our napkins, I'm using those same natural napkins I used in the last one, but I'm just folding them into a simple rectangle and adding our flatware right on top of our napkin. This is just another alternate way to go ahead and mix up the way that you kind of lay your flatware and you do your place settings. Now in the center there, I added the vintage spittoon which everyone always talks about on the channel. I love it though, it's such a beautiful piece and I like the antique brass look of it. So I added that with my little maple stems inside of there, a pumpkin, a little floral element, a spiced cider candle from Anthropology that I just got the other day that I am obsessed with and then a few little mango taper holders at the end there. Now on top of each of the little place settings, I actually added these little clusters of berries that I thought were cute and pulled in a bit more of that orange element and just added an organic touch to the table. I also scattered a few natural dried leaves around the table as well just to bring in that color palette a little bit more and finish off this table setting with a couple of red wine glasses because it just seemed fitting. I also had to share a Christmasy holiday table scape. So this one I started off with a really no-brainer centerpiece which was two cedar garlands which I'm gonna be adding on the left and right side of this candle labra I found at Target. This is from the hearth and hand line but I love how it's really long. It holds 12 taper candles and it creates an instant centerpiece which is very, very easy and it was only 30 bucks so I think it's a pretty decent deal. And so I added those to the center of my table then I popped in 12 of the ivory taper candles but you can totally go in and use some twisted candles. You can maybe even use some burgundy ones if you wanted to add some color. So just keep that in mind. You can alter these to your personal taste. For the place settings on this table I used these larger imperfectly kind of round plates that I also got at Target from hearth and hand. I love these not sponsored by Target by the way I just love Target. And then what I ended up doing was adding a folded napkin right on top of that large plate. Same napkin I used in the last two settings and then I added a smaller plate on top. That's just an alternate way to do your napkin as well. I love the way that this looks. And then I wanted to bring in a little bit of just shimmer to this table so I added gold flatware just to kind of add a bit of shine. We have a lot of black and white going on here so I like how the gold kind of paired and just enhanced that Christmas mood. Now something I did differently for this place setting was I actually picked up these little miniature wreath ornaments from Target in the dollar section. You get three for a buck and then I popped these little candles. I also got at the Target dollar section which are so cute. I added them to the center of each so your guests can just go ahead and take it home with them when they leave. And it's just a little remembrance of your guys' holiday dinner, which I love. And I lit all of those candles just to kind of see the warm glow that it gave off and that is how I completed my Christmasy holiday table setting. I just love kind of the simplicity of this one and the natural elements. It just seems very earthy and overall I'm just obsessed. And you guys, that finishes off today's video. I hope that you enjoyed this one and it gave you a little bit of an inspo for Thanksgiving. I would love to know if you guys have ever done tablescapes before, if you like doing them, if you don't like them, what's your favorite style of them or even what your favorite tablescape in today's video was. Leave a comment in the comment section below. And of course, if you guys would like to pick up absolutely anything featured in today's video, you can do so in the description box below. I actually linked everything by table so if you liked a specific table, everything that I utilized on that table will be linked in that section. And one last thing before heading out, you guys, I would love to see if you would be interested in more videos like this where I kind of style a specific item multiple different ways. So whether it be a dining table, it can even be a bookcase, a sofa, how to do beds multiple different ways because beds are always a challenge. So I'd love to know if that's something of interest to you guys. Leave a comment below and even give me a couple of ideas. If you'd like to see a very specific item styled in multiple different ways, just let me know in the comments and I will make sure to do that for you guys. But have an amazing rest of your day. I'm so excited for the holiday season that's approaching us and I will catch you guys in the next one. Bye everybody.


They hand it off inside, and this is Mackintosh spinning. Milton comes back in now, then it throws, completes it to Fitzpatrick. Perfect throw with Fitzpatrick. Nope, straight up the middle. First downs in the airway. Ball effectively because they kept mixing it up like that. And it's the other tie in Fitzpatrick. She's going to Fitzpatrick. Play action, a good one. And back. They faked it to him. They fire it down the middle end. That's a catch by the tight end. Fitzpatrick gets down.


good morning everyone Thank you for turning up for the session like How are you doing? How is the Vienna con going on? Great, okay We're gonna talk about prophesies your PHP unit test Yeah, before we starting I would like to know how many of you guys are working with the PHP unit test Oh Great, I think you guys have a good experience. So it's very we can find out the session very easily Not gonna talk about This is great or that is bad. I mean about the you know, what is PHP? prophesies any idea What is prophecy call? Yeah, we'll talk about that before that My name is Rakesh James. I work for a small company in India. Yeah, I've been Introduced the prophecy by one of my mentor hits his right there who has in green glass in the head His name is Phenafroxma. He is Official migration maintainer as well as I have a couple of migration maintenance friends also here and While I'm working with the migration issue queues in the Baltimore He has actually introduced me about writing a test about in triple issue queue for Lock process plug-in in migration lock process plug-in how to I got a very difficult time to because it's When I'm looking at the other Classes like writing a test against the classes. There will be a chance of a lot of dependency injections and Lot of services will be included So we need to have a take care of that first then only you can write a test about the particular class. Correct Am I right or wrong? So when you're writing a test against a class Yeah so That's what I want to talk about It's a very basic session how we can do a prophecy Mocking framework with the your class So these are the things we're gonna talk about in terms of prophecy We gonna find out what is a prophecy and what is dumbest in terms of prophecy it stirs more spice and promises and predictions Any doubt start raise your hands or just ask the questions Yeah, we can move forward. It's very simple straightforward We are not taking very advanced level. It's because of it's easy once you start using it's you don't need to Be worried or so one or more do it you get to start using it So what is prophecy prophecy is very straightforward PHP mocking framework and it's actually Developed and created by our side like it's for a PHP spec and He lives in London. Yeah, then he He modified for can be used with the PHP unit I Don't know whether it's ever said is here or not never met him to anyway huge thanks to him but Want to say a prophecy is very simple you can you don't need to worry about the future behavior of the object So it's easy to you use it in your PHP unit test and it's describe your future of the objects object behavior So since this is a example are you able to read it? from the screen, okay we we're gonna write the test against a class called user rating calculator and In that class we are actually calling the method increase user a rating in that we are calling the interface user interface and In that user interface there is a tool methods are defined one is get rating Another one is set rating so in that Set rating you Having a parameter also arguments Yeah this is Below is below block. It's in the blue color. It's a prophecy testing for how you can prophesies the above classes and interface The first line of the blue line user profit profit is create create prophecies for you then You can say you are directly calling that dummy to the method and say you can return back this particular value then Next one is you predicting it Even it's this argument is past this has to be get called So when you're writing a test the third block it says if you put it in your test class you're gonna Create the new object of the class then You're gonna directly calling that method and say reveal the dummy Then that's why it's a test work So gonna check out what is dummy what is done in detail That's one before that. We need to find out how to install this one. You need a more than 5.3 PHP installed I think hope all of you guys how using PHP start using PHP 7 now How many of you start PHP 7 now? Yes, pretty good now and Composer Anyone anyone doesn't have any awareness about come closer. What is it? Everybody knows come closer. What it is Okay Compose you okay Composer is you Composer help is to add you the dependency injections I mean not dependency injection dependent is from the outside of the world like where it is present somewhere else in the package managers so I Will tell you in one example Interpolate you use address module in triple seven right address module address module so we have address module in triple eight, but Commerce guys actually create the address modules the triple eight one using the outside address libraries, so any part of the Part of the side world you can get the package manager It's not from only from the triple so you can add the packages libraries from outside of triple So other PHP it's there is a concept called moving away from the island So we are trying to talk each other with the other PHP communities So combustor is one one of the best way of we can achieve that To our Drupal So Composer is more than you can need to understand it's more over like you can add dependencies so you are the compressor.json file for your module and you write a Composer installed it's Installing all the other modules whatever you need it Anybody understand what is vendor directory in Drupal 8? vendor directory So you it's a vendor directory comes from the symphony components place in the other place. It's not from the Drupal It's from symphony, right? So all of the libraries we getting from symphony It's using Composer actually. Composer update. Yesterday Dries was talking about the auto-option in the future It's mostly gonna work with the Composer Okay, no problem. You have a Composer.json file you need to get Composer installed. Add the few lines required now and PHP probably see what is a version you need to the Composer.json file Then you can run this command Composer installed prefer Distribution so it will automatically get installed only one requirement more than 5.3 PHP has to be 5.3 more than So how to use it So first we need to create a profit for it Once you create profit you can create a profit you can prophecy from do that with that profit Then we you can say which class you need to be extended or which interface you need to be marked or extended from that in that prophecy But in Drupal is already included. So you don't need to check anything. You can directly Say that extra dollar secured this prophecy has to be get revealed So I'll explain this what is revealed and what they would Okay, first thing is what is dumb is The the variable you're getting it. It's actually prophesies from the user interface This is our code So this is the user. This is called dummy Actually, it's profit and prophesying this interfacing So in In dummies, you don't need to worry about it's always return nulls You don't need to worry about it's like what it does or is it throw an exception? It won't go into throw an exception and it doesn't have any logic at all.  It's user doesn't know what it interface does or anything Create an object of the user interface Yeah, then stops Stubs is object double All of you I think he knows what is doubles in PHP unit It's it's it's a it's a dummy object. Actually, it's reflects like the original class You guys mocking the object, right? So that's you created double of that one You're getting original image like the same object class that is called doubles But stops is we're different from mocks because some of the time you when you having the mocking object You need to really care about what all the Things included in that class what all the dependency injection is happened in that that class and what all the interface You are using in that class and what all the services you are using in that class So if you go into the user entity, you can see that if you want to do it There is a lot of interfaces that you're calling and you're a lot of services You are calling into that particular class and if you're writing about Test against that particular user class you need to worry about all this But in prophecy gives an option to just stop you stubs and You only create a dummy object and think about only this Method has to be called on this class. So that is what dummy does dummies that does this Creating an object of user interface user User object and getting it will return to so you say You have a great great great rating method Man, it always return to value 2 That's what it's called stuffs Anyone have any questions till now dummies and stuffs? Okay so That is stuffs and it won't it won't check about the exception behavior of your object It it it won't check about what how the object has to be real object is behaving it it is not caring about it so you can see You can see the you created the prophecy dummy called user and prophet prophesies the user interface Then you are saying user you calling this method sorry this method and Saying that it always return to So it's it doesn't care about what is that functionality does or that method is when it's Defining it's What it does, but it always does you are saying I have a dummy I have I mock this object and I am using that directly using this method and when you using a method Method you will always return. It's always written to The value will be written to That is what is called stuffs stuffs actually promise Promise promise means you can see the will return We call will return to that means you promise that when you calling this get rating method Or when you calling this particular method you promise that this will return only the particular Particular value in simple ways like So when you call this particular Method you say this has to be returned this particular and say we promise it this will return only this to value called to that is called promise promise or It's a logical blocks And there is a lot of different types of promises that exist One is called return promises then return argument promises and throwing promises and callback promises What is first one is return promises? So this will use this this is how you need to use you need to use will return one so you say when you calling this particular method this will return only one and There is there is you can return a particular argument and you can this will return arguments and Which is the mother for the which method you need to argument you need to return and Throw promise it will help you to throw it when you call that particular method It will help you to throw the exception so if if I return he If I return a throw exception here The Venice user get rating is called it will run exception That is called That is called throw exceptions same way callback promises So if you want to have a when the particular method is called calling you need to write your own logic for that particular like For that method you can you can use will callback promise and Callback promise in that you need to give you the function function name as an argument So it will get that method will be getting called So prophecy help you to Overwrite the methods if in the interface and use your own logic for that your own test so When you having a writing a test for a such a big classes you You will be get mad about like about the what all the interface what all the? What you call what what all the servicing dependency injection services are using for that But because which is not relevant to you for your test actually you know this has to become and this class has to be behave like this for that behavior only you're writing the test so Professor will allow us to promise In that particular method what all the things you need to be returned So this is called different types of promises. It will there is a four types of one is Return promises and one is written argument promises Then we moving forward to mocks All of you will have a mock mocking object rate in the PHP unit it is it's very close to the steps but it's it's always care about your Behavior of your actual method functionality actual method behavior. So Here we using the promise Set rating is for should be called so Actually, how this test will work in this you actually Creating a prophet and when the prophet will allow you to prophesize the user interface Then you are saying that when you calling the method get rating it has to return to and you are telling that is a promise you did then Then you say telling that when this Set rating is for Then it will be get called And when you come here you can see that you Mocking that you you creating an object from that and you calling this functionality then you say user reveal user reveal means that is called this prophecy and When it's called it is happening here actually your user reveal you you call this prophecy The prophecy come here, then you're going to user settings then Here you're gonna call the user get ratings that means you're gonna call this one here so here you will get it to and you're passing to from here and This entire user settings ratings Functionality actually gets for if it's this get for then you'll be called this functionality So that's how it's work That's our test works when you're doing the test So this is called predictions You say it's a settings are For then it should be cold This is what called predictions in prophecy I'm talking about all the prophecy times. What are the things how we doing it? So this means in this set ratings you'll get an argument called for Then only it should be called So you talking about the behavior of particular method and you're concerned about that and telling that it has to be get called If if there is a five comes it won't get called Instead of four So that means you are taking care of the you're gonna throw the exception you're gonna taking care of the How we should the method behave that is called predictions Yeah, and when the be when you talking about the behavior, it's called mocking the object So if the if the prediction is failed It's throws an exception We have a couple of different types of prediction you can use You can use should be called prediction When this is happening we can we can write set ratings for then should be called and if Should not be called this functionality and you can say should be called some times when it has to be called and You can say call back predictions also. I think everybody silent. I don't know whether you guys are understanding But I'm sure that's when after this you're going to start calling it. It will definitely help you So there are four types of Predictions are there can be should be called should not be called Should be called times when it has to be called as then Should return a call back. So you can say if it is coming for You can put a should call back one separate functionality Then you can actually overwrite that particular method or functionality So it's help you lot of leverage and a lot of freedom to write your own test according to the requirement so When actual where it help us When you have a lot of dependency and interface has to be mocked in a particular class There is a lot of things you need to take care of before When you while you're writing the particular test for that particular PHP class so Prophecy will allow you to easily do that overcome that Very simple way Then it spies so before Before going to that I will explain once again this code, please so while you mocking in the PHP unit, I mean, it's it's fine for me It's I'm not it's almost saying whether you which or you want to use it you can use it But what I'm telling when I try to use it But I found a lot of things I need to take care of while you mocking the class real class No, no, no, it's not like that You can you can use I just return the same way you need to understand so so what I'm telling You can use prophecy or you can use mock but prophecy gives you more leverage to overwrite The certain functionality you don't need to you don't want it in your test actually so you need to take while you're mocking a class have a Five interface is already using five services using five dependency injections. Maybe yeah So those time you need to really take care of it all those first Then you need to those interface you what all the things you need to be okay, but here what you did Just say the interface is there revealed it and you say this has to be written So it's clearly written here. You're you're very easy to do this one No, it's it's always care about the mocks. It always care of the exceptions and behaviors of the object So while we having dummies dummies really don't care about so this is a Class so we gonna We gonna do one second. So here you're calling the Predictions and here is the promises. Have you able to understand this code? Any questions of what this code so once again I explain you we have a interface We have a user interface and We are having two mothers in that That interface is called in other class Inside the method of other class So I we gonna write the test for the user rating class your user rating calculator class so We gonna while we're doing this before that we know that there is interface is called so we gonna create a prophecy for that because While you're writing test You need to know what all the things happen this when the user interface user called So we gonna prophesize that so when this is called This has to be happen like this So we say that we prophesize the user interface and say that if there is a method in this method calls will return this first get rating will return to and If it is the second set rating method getting F argument for then only it will get called so While you're writing the test for Cal I mean a new user rating calculator class You go you create an object and then you call the mothered Inside the class that accept the user interface as a pair of arguments with the one separate argument so in that user interface we already mocked before I mean like prophesized before as three lines in the top You getting it all this prophecy as a user reveal you just revealing it there and say you getting everything there and This will go here then you say gate rating then gate rating always return to and Once you return to it's a two plus two is four if it is for this Set rating will be called. I mean set rating will be set So this is a straightforward example for this and one last thing I want to say it's a prophecy can spy Spy What prophecy help us to do when you creating a dummy it will create it will log all the records what you're doing with your dummy So whenever you want to use this dummy you can use it So you can check whether it is called or not You The particular function is called or not Yes, it's okay. Just keep it like that while you start writing it. I'm sure that's very easy to understand So you you need to know some of the areas whether this particular functionality is called or not So you trying to mock the object or you're trying to create a unit test and you say whether it is called before You're writing thousand and hundreds of lines Then then you need to find out whether it's called before this functionality called or not So it's easy to check should have been called Or not So then you can write from there. So you easy to spy it out It's it is also there in PHP other mockery also So this is an example any questions now Yeah, so why you you don't need to do it right you just you calling it in a same line everything So you have a instead there is another method also is in interface two methods are there in interface So you're revealing and their interface there So you took you took him out this one instead of reveal You want to use get rating? It won't work. So you need to you need to reveal the entire interface. You are dummy then only it will work Yeah, no, you need to You need to reveal it first then use you get the Mockery you are dummy with the the certain functionality. What are the things you return prophecy or prediction in that? You prophesied your prophecy. You have to be revealed first. Then only they are able to use it Yeah, okay any other questions This all about the predictions and prophecy I think it's you can start using it here is the github. Yeah Yeah, please So it's up to your choice right like so it's a what is your requirement? How you want to test it? It's you can call whenever you want it. I think yes Adam we can call another callback and in that callback function. We can use the other yeah But you cannot explicitly call that function in the class, but you can you will be getting the Other dummies if you're using say different dummies you can use it Because dummies always get full in their lifetime dummies has a full record So you you're telling me you created dummy called user and you you get another dummy called user one Yes. Yeah, you put another call back there.  That's fine. You can work. Yeah, you can you can use it. It will work. Yeah Any other questions? Okay. Thank you. That's it. I Want I want to do special thanks to my mentor. He introduced me one triple called Baltimore then I also have colleague also Help me to understand prophecy Thank you, it's easy to use You can use it for your PHP unit test. Thank you


Neurodegenerative disorders, such as Alzheimer's disease, are a global public health burden with poorly understood etiology. Neuroinflammation and oxidative stress, OS, are hallmarks of neurodegeneration contributing to disease progression. Protein aggregation and neuronal damage result in the activation of disease-associated microglia, DAM, by a damage-associated molecular patterns, DAMS. DAM facilitate persistent inflammation and reactive oxygen species, ROS, generation. However, the molecular mechanisms linking DAM activation and OS have not been well-defined, thus targeting these cells for clinical benefit has not been possible. In microglia, ROS are generated primarily by NADPH oxidase 2, NOx2, and activation of NOx2 in DAM is associated with DAM signaling, inflammation, and amyloid plaque deposition, especially in the cerebrovascular. Additionally, ROS originating from both NOx and the mitochondria may act as second messengers to propagate immune activation, thus intracellular ROS signaling may underlie excessive inflammation and OS. Targeting key kinases in the inflammatory response could seize inflammation and promote tissue repair. Expression of antioxidant proteins in microglia, such as NADPH dehydrogenase 1 and Q01, is promoted by transcription factor in RF2, which functions to control inflammation and limit OS. Lipid droplet accumulating microglia, LDAM, may also represent a double-edged sword in neurodegenerative disease by sequestering peroxide-ized lipids in nonpathological aging but becoming dysregulated and pro-inflammatory in disease. Future studies should focus on targeted manipulation of NOx in the microglia to understand the molecular mechanisms driving inflammatory-related NOx activation. Finally, recent evidence suggests that therapeutic target identification should be unbiased and founded on relevant pathophysiological assays to facilitate the discovery of translatable antioxidant and anti-inflammatory therapeutics. This article was authored by Dominic S. A. Simpson and Peter L. Oliver. We are article.tv. Links in the description below.