things so far you know people have spoken about you know CSS content management learning this like so much good stuff going on. I've been attending MetaRef for the last couple of years and you know every year like good folks good talented folks you know have conversations with so it's an honor to be here. Today you know I I'm gonna talk about a couple things that I've learned over the years around you know getting products and features out into the market right and one of the things you know is just for context I've worked mostly in the product space these are some of the places I've worked in currently I'm at for those of you who don't know it's a video enterprise video company we help some of these companies you know the video conferencing and I'm today I'm gonna talk about from the product perspective from shipping this kind of a product three you know particular thing that you know I found useful and maybe some of these could be applicable to you as well so first thing is you know process right there's all kinds of different processes some companies do a lot of you know mostly everybody is doing agile but there's there's also another one I heard recently of water crumb fall and like people who are not able to move from one to the other and all kinds of things right but every company every team every product every feature every market situation needs some of the other small tweaks to make here and there to you know make ship their product properly right think you know in the morning we heard about gojek and what kind of processes they follow and such right like so similar to that every company needs to tweak it a little bit but one thing to that I've seen over and over is that a lot of compromises are made right at some point so you know I think like again like I said earlier you know judgment calls right there's something like that right so I'll talk from that perspective on you know related to agile how to not let those compromises you know have a negative impact on your you know product on your design and mostly on the design right so the the whole overall thing is that you know with the agile you have like a huge set of things you want to do you pick a couple of them you make a sprint out of it in a couple of weeks you you know you create something you ship it and hopefully at the end you have something that you can put out there in the market right but you know along the way designers right specifically the process of design you know again like like Nupur also said takes a certain amount of time and you want to give it a certain amount of time and you want it to be holistic but there is you know not as much time right this is what every designer would want that give me time up front to do a holistic you know long design process big upfront design and then I will give you then you can do your sprint and you know you can implement that right but the reality is that you don't have that kind of time it's not there right so what do you do right what do you do you know sit in the corner and sulk do you ask for more time do you ask for more budget do you ask you know what what is really what to happen at that point of time when you want to do design holistically and you know that your product is going to suffer if you don't what what should be done right so the thing is that it we expect to ask for more time and then we make the product better the thing the reality it works the other way around you make something better and that gives you the right to ask for more time to ask for more budget to ask for more right so I want to start with requirements right are typically short story of you know one of my one of my past projects in a different company I was sitting you know there was a team of business analysts and product managers who were working on a project they did not have a designer so their classic style was that they sat around a table they discussed the requirements they discussed what they wanted to build and they you know they would typically one or two people in the team thought a little bit more visually and said you know what it should be you know done in this right so let's take an example they would write requirements which said we need a pop-up to let the user select their location from a drop-down right this is not a requirement this is a spec this is a UI spec and I don't know you know has anyone seen anything like this has anyone seen requirements like this your fans yeah right couple you have right so that's the thing right so you when you have a situation like this what do you what do you do right so when the product grew and they started targeting more markets they said okay we need a designer on the team so you know I joined that team and I start getting your message this okay so what do you want to do with this drop down and you know that's it is that what you want me to do so this kind of thing this kind of requirement narrows your thinking right it really you know closes you from thinking more broadly and you you know when you are told that okay this this is all you have to do it should not take long how long does it take to you know get this out there right so you might come up and you know imagine I'm sure when I describe that you imagine something like this and maybe this is a little more glorified oh you know what let's put a combo box because you can type in it let's you know you know let's put our big geographies right up front so people can select it quickly but this is still very narrow right this is not this is not brought thinking do you you never got the you know when you got a requirement like this you know you've got to get rid of you know everything that is a UI spec right so I'm going to cancel out a couple of these things right so what are you left with you need the user's location right this is what you this is what you wanted over there but why if you got the spec saying a drop down you never got the chance to ask why so if you broaden the thing you get a chance to ask why so as them I said oh you we need to calculate taxes like why right so because you want to show the final price including taxes before payment okay okay now I know what you want right now we're talking and now this lets me think more broadly right do we maybe we have the location already maybe there is a different way to get the location maybe you know we can detect the location like there may be a so many different ways that we can do it maybe we don't need it I don't know it but until I'm not given the chance to figure it out I can't right that's the whole point right so that's the first thing is broader thinking what I did at that particular company in that particular context was that I you know worked with them to slowly and gradually change the way they wrote requirements so that they wrote more about user's goals than you know describing the UI elements right not by saying them hey that's not what you're supposed to do but working with them collaborating with them and really you know changing the culture slowly project by project and with people right so that's the first one the next thing is research and in this case I'm talking about user research that you know it's always beneficial we all know it and we need to do it right but your sprints go like this right when when are you doing research right when you say somehow you're able to bargain for some time and you're going to pull out three days if you have three days like don't do research don't just don't do it because you're not going to be thorough I think a lot of people have said that you know what any research is better than no research but yeah you might do something but you can actually do better right so what my suggestion is that you know do research always this is something that you know I do and my team does at the moment right so while your sprints are going on your research is always going on so kind of the way we the way we do this right is there are a couple of different things that are going on but you know I'll talk about some of them so the first one is something we call coffee talks right which is we have we have we have we constantly have sessions lined up with our users and this of course works in a certain context when you have a product and a long-term you know plan around it where you know the users are the same the context is the same it goes on right essentially we always have users lined up it doesn't matter what project is going on and there are always different projects going on different you know features that are being worked on but anytime you want feedback every week there are a few people ready for you to talk to and you can ask them there is no context around it right so the typical discussion has two parts the first part is a little bit around demographics and usage we ask them how you know about them tells about their company their work style how they use our product and stuff like that and how their company's culture is around it the other one is design feedback so whatever is going on that at that point of time we show it to them we get feedback from them right so this gives us a good you know sense and there's always data of course we hear of many other things also right so the other advantage of this is that they're not only giving us feedback about that particular thing but there are a lot of other things that get uncovered right in that conversation and we may not have the bandwidth to solve that at that point of time right but when we do you will already have all this input to begin right so we won't have to you know buy time and ask for time and ask for more budget or whatever it is right the second thing is data roundups so essentially you know what we do is every week the design team gets together the design leads get together different product teams get together and there's a lot of data that we gather from various sources about usage about the market about our users and all of that and the idea is to bring up different things and share with each other right so like I said one of it is users data we're always looking at and tracking every time there's a new feature the requirement also you know and this is again something that's not hundred percent there but I'm trying to get that get that to happen which is every requirement you also write down what you're going to measure how you're going to measure it and then you keep tracking it as you know as you go right the other is direct feedback so we use something called and sure a lot of companies use this a net promoter score that's not the score it's not our sample image but net promoter score which is a survey that goes out to users and you know they they rate your company and they give you direct feedback right so we're always getting that looking at that a lot of people have access to it internally and we're always you know pulling out certain feedback about certain topics and and and you know collating that so this is all the comment analysis doing you know making affinity diagram saying that okay all the feedback that we got about this particular feature is all here right and different features are there you may not be fixing all of them right now but when you want to fix them like I said earlier you it's ready you can look at this and and and you know get your analysis right this is one that I use personally and I think this is for capturing internal ideas right what happens is that so we internally we use slack a lot every product has and I'm sure a lot of you use it the same way or any equivalent but every product has a room and people are discussing ideas they're giving feedback and things like that and when you get it you're like wow that's amazing you know that that that that makes sense but sooner later that thing gets lost something else bigger comes up and it's gone that that feedback is somewhere in the chat and and it goes away right so just a small you know productivity tip that I have here is to you know use you know I use that your you know make I star messages in slack and they end up in a spreadsheet that it is very short and simple and then what I get to do is that I look at look at that spreadsheet and figure out what to do for each line of feedback there are something which are we already addressing there are others which we you know which I which I just need to see the trend how often it happens I can go go back and see the data so against each of them I can start sticking off that okay I've done this or I need to do something about it right so these are just like you know just just some of the things in there right so like I said earlier sites if you if you do these kind of things if you do ongoing your insights always ready they're waiting to be applied right the so that that's what it is do do ongoing research right the third thing and last thing I want to talk about is around minimum viable features of the commenter I'm sure you've all heard it MVP MVF MVP is more you know for for when you have a new product and for feature it's it's more about you know you have a product it's all working now you're adding more features to it right and there's always shortage of time all that stuff right so how do you how do you still and and you know the product your product team always you know wants the bare minimum let's do in the first version let's do the bare minimum and get it out there right and then we'll get feedback and that's great right so how do you how does how does a designer still like think holistically at you know in in that environment right so let me give you a there's a small feature that we have in one of our products it's called questions and questions and answers and essentially it's like something like like our format here right I'm a presenter and your attendees you will ask me questions I will answer them but this is done virtually over you know online on the internet right so it's at the very bare minimum to you need you need a couple of things right and I'll walk through some screenshots of showing that right so the first thing is is you need to give the attendee of a small form to answer a question to ask a question right a composer question and and send it right and at the bottom you see the for the presenter to receive that question right and then to post you know compose an answer post the answer and the answer goes back to the attendee that's really you know if you say a question answer that's all you need right bare minimum now when you think about this there are there are there are a couple of different perspectives right so you you will you will definitely have a situation where you will need to have more features in initial discussions a lot of people will throw a lot of ideas and some everyone will feel that different features are important right so the the ideas at a very high level still take the time to explore it a little bit more right and I'll tell you what I'm talking about here so this is our basic form right question and cancel button and a post you know button right now some you know one of the things that we don't want people to write like we want them to be articulate and write like a small concise question so we need a character count and a limit over there right what if you know the question is a little controversial and someone doesn't want to reveal their identity they want to be anonymous so we need that what if you know other people have the same question so you know we need a word button so that that question bubbles up to the top right so these are some of the features that you can you can do right and then once they get an answer this was one that we observed internally as well which was once they get an answer someone might have a reply to give right where they may have a follow-up question or they may just want to say thank you or something like that right and so then you want to give them another space to write that reply and and send that reply as well right and you know the last one here is that to mark that question as answer so it's closed it's out of the presenter's view they don't need to bother about it anymore so I can go on and on with this there is moderation around it there are so many things the thing is you know at a very high level you still want to explore all of these things and have a very high level design around them right when you say minimum viable just don't do just the minimum feature explore some of the other ones but don't go like too deep into them right just you know the your actual final design will just have the that bare minimum feature but it's still worthwhile to spend the time to explore the others so that then you can start observing how people are using that and then that way you can prioritize which ones of these to put out there first right otherwise it's just opinion right everyone feels that different things are important right so just you know in summary you know design two versions your full feature should be low fidelity and your minimum version could be it should be the high fidelity and then that's how you quickly put it out there but without missing all the ideas that come forth and then keep watching which ones you know based on based on the usage right so that's you know my third point which is do a holistic minimum viable feature not you know just just the minimum so that's pretty much it I think I went to have good time now broader thinking by you know opening up your research to be written in a very you know broad and non-specification kind of way the the next thing is ongoing research do it all the time because you will otherwise there's no other way to find time to do it and the last thing is to do a holistic minimum viable feature and of course these are things that have worked for me you know there are obviously different and better and other ways of doing this so it's a good dialogue I'd like to learn from you guys also and yeah that's pretty much it you can find me on Twitter Thank you. Any questions? Yeah hi great talk. Thanks. So my question is basically around so you have a standard way of doing things right and maybe you've worked on multiple products and you might have realized that they might have a very similar way of also looking at to a large extent right so how do you ensure that you step out of that zone and are able to work on something which is completely different from what you've made up to now like the products that you've worked on it's completely different maybe the design language is completely different the style is completely different how do you ensure that your team is able to do all of those things also So if I understand your question correctly what you're saying is that if there is a brand new product or a brand new feature to do then how do you step out of the process? Yes how do you ensure that you don't carry forward the same design language from a different product but you give it a proper like you were saying right broader thinking you give it a proper thought over there and it's a different style language and everything. So I mean essentially how you would one of the ways that you know to do it is to you know again once you start with your research right you will always get some of the other different insights which will drive you know that kind of thinking and you have to go deep into that if you have a new product definitely you have to go deeper into the research related to that product and that product and that market and that kind of user right this context that I have been talking about right now is going with one set of products and adding features to it and you know building upon that right when you have a new one of course you will start from scratch and do it. There is definitely some you know I get what you're saying right which is that it's challenging to switch out from something and you know that context switching for that to happen is something very specific. I think one of the things is definitely you know being on the field you know going out and immersing yourself in the in the user's context right that is the best way to you know kind of have you know get their context and then. So I really like the part where you say research is continuous right because it's not related to projects it's more about your users as a whole right or something that I've experienced is and it might be different for different products but. Is that how do you really find insight like how what is the right way to poke your users so that they give newer and newer insights because after after sometime it seems to get redundant right like all your users kind of are saying the same thing and you're not learning anything. So yeah I mean once all your users are saying the same thing then you've established a pattern and you know what you need to do about that right. One of the things that I've tried in the past is you know making two or three different designs which are which are fairly different right from each other not just small variation. And you throw it out there even if it's intern stakeholder feedback sometimes you don't even have enough clarity you make something and throw it out there and it's OK if they tell you it's wrong because then you can ask them tell me what's wrong right tell me what what else should be there right and sometimes knowing you don't have to be 100% sure that this is the right way to do it even if it's wrong it's wrong you put it out there and that's how you get feedback so that could be one way where you know you think of a radically different approach. And you know it's not practical you know for a fact you know a lot of people internally will tell you why you're showing this to users what if they expect this and all that and you have to discuss that and you know get buy in and then put it out there and see what happens right sometimes you might get something interesting all of that. So the first part of your question was that how do you get buying for the time right required to do research. I think I touched upon a little bit when I started which is that you have to do some of it on your own time show the value and that's how you get buying you can't go and ask that hey I want to do this and I need time and money for it. And yeah there are places where it does happen but more often than not it's very hard it's a much more challenging thing to do. You if you are passionate enough you will find the time you will find a way to get it done and maybe you want you can do it in every project but there has to be some project where you can squeeze up some time to do it and show the value and then you know you can once people see value and you communicate the results you can communicate your process you show that it was effective you can get a buying right and make it part of your overall process. I think the second part of your question if you could repeat that sorry. The second part was more around when you go about ideating or thinking about you know what how is it that whatever you're creating is going to shape up the features and everything so how do you go about like involving your team with that. Right right right so yeah in terms of involving the team I think it's it's absolutely important that you are collaborating with you know everyone. All the time now you have to of course take some expectations and rules right so I think what you're alluding to is kind of you know collaborative you know a group design that everybody is giving design inputs and you know the designers lost as you know what am I doing here. Right that that is that is a risk but that depends on what kind of relationship you form with the team right there are you know sometimes you also might you know end up giving them some ideas sometimes you might get something really good out of it but it's a lot about. Setting that expectation and it won't work the same way in every project it will work with some people some people it won't. The only thing that will happen is that if everybody has given you a certain kind of feedback then you have to see that you know there is value in that right there is a reason why three more people are telling you something. And if you are trying to do the opposite of that if you think the opposite of that or a different thing makes sense then you need more rational you need more data you need more. You know evidence to say that okay you know this is I like your suggestion and here's another way let's test this let's try it out right. So you know one small thing that we use sometimes and usually the other outside feedback that you get if it's around very specific things around you know design around you know layout or whatever. There's one tool that we try called usability hub you can post versions of designs online and get feedback from you know 20 30 people it's a simple click test that takes them five seconds to do it's not very expensive.   Thank you. Thank you Samir. Thanks.


You high-five the guy next to you and he's sick now you are to visit a doctor from your phone Just download our app and see a doctor in 10 minutes and get a prescription sent directly to your pharmacy convenientcarenow.com


Hello, everyone. I'm between V1. This is a prerecorded video for just 2020. This work entitled the defeating state-of-the-art white box contenders with advanced gray box attacks is a collaboration works with Louis Coupern and Mathieu Hiffen. This work was done when I was a PhD student at the University of Luxembourg and the University of Paris 8. We consider two parties to communicate over an insecure channel with the pre-shared secret K. The classical group analysis is done in a black box model in the sense that the adversary only has access to the encryption-decorruption algorithm as a black box. That is, the adversary can only learn the input and output behavior of the cipher. The cipher has to be implemented in the software or hardware to be useful. When the cipher is implemented in hardware, then the adversary is further able to access to the physical information of the execution of cipher, such as the power consumption. This secure model is called a gray box model. In an extreme case, the adversary can fully control an implementation of some cipher and its execution environment. In this model, the capability of the adversary are greatly enhanced. We call this secure model a white box model. In the white box model, the adversary tries to extract the underlying secret K from a software implementation of some cipher. The adversary could represent malware, malicious applications in the same host, and even the application users themselves. The adversary could try all possible means, for instance, she could perform static or dynamic analysis of the code. She could spy on the memory while executing the code. She can even modify the code, inject thoughts, and employ the error nurse execution. She can easily reset the act on a randomness. Traditionally, secure hardware is used to protect the secret case in cipher. However, such a hardware is not always available. Besides, it is costly to maintain the long life cycle for secure hardware. Most importantly, it is not easy to mitigate the security breach of a hardware. In many real-world applications, cryptographic algorithm has to be deployed in pure software. Such application including digital content distribution, mobile payments, digital contract signing, and blockchain technologies. As illustrated by Shamir and a one-sum ring, if the key is not corrected, it is trivial for the adversary to extract key from the memory since the key looks random. Hence, in these applications, web box crypto is an essential component to protect the security of the system. Unfortunately, all existing public web box designs in the literature are broken by structural analysis and we don't have any probably secure web box for any standard cipher. However, the demand of the web box crypto from the industry keep growing and there is a huge application potential for web box crypto. This forces industry to achieve security through obscurity. Namely, they use homemade web box design, then they put a layer for obfuscation to protect their homemade design. The industry hopes this would discourage the tiger by time consuming reverse engineering and new structural analysis. In 2016, both ATOS suggested to apply differential power analysis techniques to break web box implementations. Classical DPA in group box model works with noisy side tunnel leakage such as power consumption, electromagnetic radiation, and execution time. In web box model, the attack is called a differential computation analysis. Since the attack works with the noisy free computational leakage, which could be any collected running information such as values in the register and the memory. DCA is a generic attack because it doesn't need to know any implementation detail. Surprisingly, DCA orders have shown that it is able to break any public available wide box implementation. DCA has become a main threat of the security paradigm since then. In this context, two editions of web box competition are organized as just CTF events. As quoted from web box 2017, the competition gives an opportunity for researchers and practitioners to confront their secretly designed web box implementations to the state of the art attack. The competition invites designers to submit a C-source code of AES 128 with a secretly chosen key and invited attackers to reveal the hidden case in this implementation. The participants doesn't have to disclose their identity or designing or attacking techniques. Since the competition took place in 2017, it attracted 94 submissions which were all broken with nearly 900 individual breaks. Most of them were broken one day and it is reported that most of them became broken simply by DCA attacks. A new edition took place in 2019. New rules are introduced to encourage designers to submit a smaller and faster implementation. Finally, 27 implementations were submitted and only three of them stayed alive until the last minute of the competition. They were broken soon after the competition with the techniques present in this talk. Since DCA is a DPA techniques used in web box contest, it is nature to adopt the DPA countermeasures to protect web box implementations. In this presentation, I will first talk about advanced group box countermeasures that are used in practical web box implementations as well as the three-linear implementation of web box 2019. At the same time, I will present different attacking paths against these countermeasures and analyze the performance in terms of the competition complexity. Then I will introduce a new data dependency based attack that substantially improved the attacking complexity. Finally, I will conclude the talk. So we start with the linear masking countermeasure and the two attacks against it. Then we talk about algebraic security and the nonlinear masking countermeasures. Finally, we talk about the rule of shuffling countermeasure played in the web box implementation. The linear masking is a widely deployed group box countermeasure. The idea is to split any key dependent sense to intermediate variable in the implementation into n shares. The n shares are manipulated in a way such that any n minus 1 shares is independent of x. Apparently, linear masking of n shares is able to resist against the n minus 1 order DC attacks. The DC attack first pre-processed the competition traces and obtain high order degree traces, then apply standard DC on the high order traces. A high order trace contains symbols combining any n-toppers in the original trace. Hence, it has t chosen n points where t is the original trace size and n is the attacking order. The natural combination function to attack linear masking is X or some, since it simply revealed the sensitive variables. In obscure web box implementation, we don't know where the n shares are. Hence, the attacking trace window size t could be very large, which makes the high order DC be impractical. For example, if the linear masking order n equals to 5 and the attacking window size is 1000, then there would be 1000 chosen 5 shares in the high order traces, which is about 2243. So here we present a linear decoding analysis whose complexity is independent with the linear masking order. The attack assume that there exists a linear decoding function that could reveal the key-dependent sensitive variable. The LDA attack first collects many competition traces and make predictions to the attack to the variable according to the key gases and trying to solve this linear system. Apparently, this system is solvable for the correct key gases, but for the incorrect key gases, as long as the number of traces n is slightly larger than the window size t. Hence, the trace complexity of LDA is t plus big O of 1 and the competition complexity is the complexity to solve a linear system times the size of the key-searching space. For example, when the attacking window size t equals to 1000, the complexity to solve one linear system needs 228 operations, which is independent with the linear masking order and which is faster than high order DC with the same parameter. Next, we talk about algebraic security and nonlinear masking on the mirror. Algebraic security is proposed by Bukov and Yudwenko at Asia Crypt 2018. A deep-grade algebraically secure nonlinear masking ensures that any function of up to deep-grade to the intermediate variables should not compute a predictable value. The authors also designed a first-degree secure nonlinear masking scheme, which resists against the LDA attack. In their scheme, each sense to variable is included by three variables, A, B, C, and with the quadratic coding function, A times B plus C. They designed a secure garbage of a bit operations and approved their compatibility. Notice this game itself is vulnerable to DC attack since the correlations go between the sense to variable and the C is one over two. As the authors suggest using a combination of linear masking and nonlinear masking to draw both DCA and LDA attacks at the same time. However, the authors didn't show how to do that. In this presentation, we suggest the three possible natural combinations. The first combination consists in applying linear masking on top of nonlinear masking. That is the sensitive variable first nonlinearly shared than each nonlinear share is further linearly shared. The second combination consists in applying nonlinear masking on top of linear masking. That is the sensitive variable first linearly shared. non-linearly shared. The third combination merge the best of the two masking and they get a new encoding. You have two possible interpretation for this new encoding. The first interpretation you can think of the system variable is first non-linear shared, then the linear share, then the linear C in the non-linear share is further linearly shared. Or you can interpret the system variable first linearly shared, but the first linear share is non-linearly shared. For the first two combinations, the combined masking gadgets can be simply derived from the original gadgets of both scheme. For the third combination, new gadgets need to be developed. However, this is not the scope of this presentation. When they present a high degree of decoding analysis, which could break a combination of linear masking and non-linear masking? We first assume that the decoding function, so we first assume that there exists this degree of decoding function that reveals the system variable. Similar to the high order DCA, high degree decoding analysis also first pre-process is the original computation traces, then applies a LDA analysis. A deep degree trace contains all monomials of degree not greater than D, hence it contains T2D symbols. The complexity of high degree decoding analysis, hence, is to solve a linear system with the T2D variables times the size of the key space. Note that this complexity can only be practical when both the attacking window T and the decoding function degree D are small. For instance, if we want to bound the T2, 2.0 times D, less than 250, then if D equals 2, it means T less than 487. If the decoding degree D is equal to 3, this says that we can only attack a window with only less than 62 variables. Next, we talk about the shuffling counter mirror. Shuffling is another commonly used gearbox counter mirror. The idea is to randomly choose the execution order in each run of the implementation. Thus, the noisy in the adversary's observation will be increased. It has been shown that only shuffling operation order is insufficient in the wetbox model, since the adversary could realign the three symbols according to their memory addresses. Hence, we have to shuffle the usage of memory as well. If shuffling is applied together with the mass mirror, there won't be any fixed location for all shares in competition trees. If the shuffling degree is lambda, which means the operation is suffered in lambda slots, the higher order degree correlation score will be decreed by effect of lambda, hence the attack will be slowed down by lambda square. If the adversary is lucky, he is able to integrate values in all of the lambda slots, then the correlation score is only decreed by effect of square of roots, hence the attacking slow down is lambda. When masking and shuffling both apply, if the attacking window and the linear masking order is big, the higher order DC attack would be impractical. Next part, we will try to improve DC attack by exploding data dependency of the implementation. A wetbox adversary can also observe any internal states of a wetbox implementation. He can also observe the data flow of the implementation. From the data flow, the adversary could easily build a data dependency graph of implementation. While breaking the linear implementation of Webbox 2017, we gradually revealed the structure for AES first round by uploading data dependency graph and managed to locate the first round S-Box output included in a small window of about only 15 variables. However, the data dependency graph doesn't always virally disclose implementation detail. Nevertheless, to attack a obscure wetbox implementation, it can still minimize attack interest window by exploding the data dependency in an automatic way. Hereafter, we showed that how data dependency analysis can be used to break linear masking and non-linear masking combination. Our analysis is inspired by observation in linear masking gadget for an operation. A secure linear masking gadget takes the linear shares of two variable and updating the linear shares of their products. The linear share of gadgets can be interpreted as a sum of three matrices and then sum the values in the same row. If you look at the share of x, the first share x1, it multiplies with all shares of y, y1, y2, y3. This is also true for the second share of x. It multiplies with all the shares of y. This is also true for all the other shares of x. Each share of xxi is multiplied with all shares of y and each share of yi is multiplied with all shares of x. This is true for any linear masking order. Now, consider a circuit based wetbox implementation. For each gate, we compute its co-operator for and operation. For instance, if we look at the gate say, it multiplies with b, d, e3 gates. We consider b, d, e is the co-operator for gate say for and operation. As we have shown before, if c tends to be a share of some variable, b, d, e could be a linear share of some sensory intermediate variable. Hence, our data dependency analysis then collects data dependency traces, which contains the sum of the co-operates of each gate for and operation. Then we perform standard DCE on the data dependency traces. The attack would succeed if some b is the variable recovered in the data dependency traces. Note that if there are some noise in the set of co-operant for and operation, we could simply emulate the sum of all subsets of the co-operant set. This attack would substantially improve the competition complexity by avoiding obtaining high order traces, which is exponential complexity in terms of linear masking order. We use this data dependency attacks to break all three linear implementations from Webox 2019. Now, we have revisited all advanced Webox countermeasures and attacks. Let's give a comparison of different attacks against the different countermeasure combinations. We first consider when shuffling is absent. Then LDA against the linear masking requires t-traces, and each competition complexity is big O of t2, 2.8 times the quiescent space. The high-degree degree analysis against the linear masking and nonlinear masking combination requires big O of t-square traces, and the competition complexity is big O of t2, 5.6 times the quiescent space. Ohio order DCA, since the application of nonlinear masking only decrees the correlation score, hence the complexity before and after nonlinear masking is asymptotically same. So when shuffling is applied, algebraic attack doesn't work anymore. If the shuffling degree is lambda, the high order DCA requires lambda square more traces, and also need lambda square more competition power. This is true both for nonlinear masking exist and not exist, and the integrated high order DCA only have a lambda solution. So now let's put our data dependency analysis in the comparison under the assumption that there exists a gate whose co-operant are exactly the share of some k-dependent variable. You can see that its complexity has no exponential part, since it doesn't need to get the high order combination of four attacking trees. This is true when shuffling is involved as well. Finally the conclusion, so in this article we revisited all the status of the art, consumers employ the particular wet box implementation. We also quantified the different group box attacking practices and compare and have a performance comparison against the different consumers. Finally we will propose new attacks based on data dependency analysis, which substantially improve the competition complexity of the existing advanced attacks. And we use this attack to break through new wet box implementation from wet box 2019. Finally the paper and the tag are both online. Thank you.


I begin this entry with newfound life. It's felt like centuries since I've taken a breath with my own lungs. For the past 20 odd years, if you can really call it that, I've been nothing more than a number, a blot of ink, a mechanism used by the foundation like so many before. 92, 61, 41. That was my official name. You'll never find a scrap of paper with anything more than that provided the foundation did their job, and they always do their job. There were 10 of us when we started. Rachel, Israel, Gene, Ralph, Brendan, Yusef, Michael, Tay, Stephen, and Sophie. It's funny. Even after we've come this far, those words hardly carry any thoughts with them. Our names, our past lives, they were all taken from us. Now, you know what? Taken is the wrong word. At the time we were willing, we were naive. We sold our identities for trite sentiments, pride, glory, comfort, respect. I think we valued that sort of thing. Nothing could amount to what we lost as we shuffled those failures and paradoxes into depths of oblivion, but I'm getting ahead of myself. Operation Undertaker. That was our first and only assignment, and I doubt a single one of us could really even begin to understand the extent of what we were getting ourselves into, but how could we? We were drunk with the ambition of youth, stumbling into the shadows of theory, hired by the foundation to assess and correct temporal anomalies, whether they were the product of failed experimentation or dangerous SCPs, but this was no great honor achieved from years of dedication or any tribulation to capital defiance. We weren't courageous heroes. We weren't groundbreaking theorists. We were utterly averaged despite our educations. And I guess that's why the foundation chose us. You see, we weren't zealous enough to exploit our findings, nor were we as defiant as the class D personnel. We were just honest workers. Nothing more than that, so they thought. And we accepted our task with grace. Our families were treated with the strongest amnestics at the foundation's disposal. Our birth records, transcripts, everything was expunged. Not that there was much to us anyway, but it was as if we'd never cried out to this world, drenched in blood, scared out of our minds, screaming with life. And from that moment on, we were just units of vague maths waiting for the day that they'd be computed. And then deleted. Some of us didn't even make it that far. The few 05s that knew about us did a damn good job at blotting out the miscalculations. Israel took the best subway ride of his life. Rachel decided that she never wanted to be back again. And Jean, Ralph, Brendan, and Yusef, well, they all took a long walk on a historic pier. We all made use of our time, I guess. But that's for the rest of us. We just carried on. We grabbed shovels and continued to pile up travesties. Until one day, the handles snapped and we were no longer capable of digging. And it was the day we found it. That everything changed, though. I can hardly remember which day that was. We were passing by a small town on route to another research target when Stephen saw it.  Nothing special. But that's what caught our eyes. After all, narcissists had a captivating gaze and I think we found a reflection of ourselves in it. We notified our superior responsible for keeping track of us, told him that we'd come upon the temporal abscess a little unexpectedly and that we'd relay information accordingly. That was Tay's idea. We were all enthralled with this factory because something was just off about the entire place. At the time, we couldn't quite explain it, but there was something alluring about the whole thing, like coming home after years away. Sophie was the first to find it, the huge generator below the observation room, in mint condition, letting off this faint glow. And naturally we grabbed the necessary equipment and scanned the object. The foundation had taught us a lot along the years, including how to operate their nifty gadgets. Maybe that's where they went wrong. They trusted us and they trusted our inclination to be average. Never thought we'd create anything for ourselves. Hell, we were created for just the opposite reasons. Our equipment found a questionable amount of radiation emitting from the generator, though any amount of radiation. In this particular instance was questionable. Michael, our barely engineer, began investigating the hardware of the generator. And this was R, maybe anyone's first encounter with this particular SCP, the one that would go unreported, unnoticed, along with us. Further inspection concluded that the generator was physically incapable of creating radiation, so something was definitely wrong. Stephen confirmed our suspicions. We'd been in the factory for at least four hours, yet our watches indicated that only 12 seconds had passed. No matter where and what we checked, our conclusions were the same. Time wasn't working properly. Not that I think it ever had. Because we were used to that, crazy enough though it sounds. This enigma was different. It was beautiful. And it was foreign to our eyes. And even to the foundations. But it was ours. We decided not to leave the factory. Instead, we invested our time into the generator. Now it might have had a mimetic effect on us at first, but I like to think at some point it became a willing participant. There were many things in the factory that emitted similar radiation, and they seemed to alter the core SCP to contribute to its functioning. It was as if we were just meant to be here, to finish this machine. Michael and Tay did just that, though none of us could really conceive of what we fell upon. Sophie and Steven noticed the other capabilities of the generator. It didn't just alter the relation of time around it, it altered the property of time itself. Ford, backwards, sideways, anything we could imagine. It was pure control. It was the collection of strings that bound us to the puppeteer's hold. And our experiments, our obsession with this device, it nurtured our nostalgia. It was me who was first to propose that, you know what, we're tired of all the shoveling. We could feel it in our bones, in our hearts. We'd missed our pasts. We missed our parents. We missed our family, and however mundane they were, they were ours. And that's all that really mattered. And now, now we had found something to let us climb out of the pit the Foundation had thrown us into. We hypothesized that if we got the calibrations just right, we could go back to that day where we'd hoard ourselves out of the Foundation. We'd have a chance to win back our lives. We'd be given amnestics, of course, to redact their visit, and then we'd have our world again. Our efforts have paid off. Five burning souls. That's all it took to destruct time to correct our mistakes, and to completely rework everything. Michael's calling now, and I suppose I should probably wrap this up and let Sobie have her turn. We'll keep these logs as a sort of security in case anything bad happens. Soon we will begin our trip. And finally breathe again. Michael primes the machine. Tay checks the math. Sofie finishes her final log on the computer. Stephen stands in the corner of the room praying. Sofie turns calling out my name. We are prepared to shed our numbers to become flesh once more. Right as four men rush in. I'm shot in the back of the head for the 176,680,132nd time. Again, Stephen is shot as he prays. Again, Sofie cries as she dives underneath the desk. Again, Tay and Michael plummet to the ground filled with metal. All of this I witness. Once more his blood pours from the back of my head. A stray bullet damages the equipment. The task force begins to fret, but there's no saving it now. They found us. I suppose it was only a matter of time. They thought they could stop it. How wrong they are. Now we're trapped together. Thank you very much for listening. I'm kind of sick right now. I don't know if it's not it's not it's not the Rona. Don't worry about that. But I'm just not feeling very well and I didn't feel like being on camera for today. I'll be back on Thursday. I thought maybe I could start doing readings like this to give myself a little bit of a break every once in a while. If you like the video, scroll down and hit the subscribe button and then hit the notification bell next to that so you're notified when I upload new videos. And then if you really want to help support the channel, head on over to patreon.com forward slash decimarian like everybody here on the screen already has. Including Manuel Noltorp, probably a wizard and definitely not a scientist, and Lawful Evil. Lawful Evil is a new $40 backer. All three of these guys have pledged $40 just to get their names read out on the on the video. Thank you very much. It's nice to know that I'm not alone out here. I'll see you all again on Thursday.


Hello people of the internet, my name is Johnny and welcome back to some more LEGO FNAF. I have high hopes for this video. We're going into night six. Hopefully we can beat it and I'd also like to try and beat night seven in this video. I think we've got a good strat down. I've learned some of the mechanics of some of the characters, Freddy, Foxy mainly. So night six, I'll talk a bit about the strategy but first let me let me get a feel for the game. A little bit since I hopped into it but basically the strategy is once Freddy's in the hallway, his immediate next stage of attack is in your office and killing you. So once he gets to that hallway, you basically just want to seal off this door for the rest of the night completely and only focus on Bonnie and also Foxy. Foxy specifically because you need to look at his camera specifically. If you have one to keep Foxy from progressing, all you need to do is look at the cameras. That has changed in this game. You have to look at Foxy. I don't know if looking at Freddy still slows him down. Okay. That was close, hey Bonnie. So yeah, I'm going to look at Freddy, I'm going to look at Foxy a lot as well. There might not be a whole lot of commentary in this video. There might be a lot of jump cuts just because I really got to concentrate. I got to focus up and there he goes. He's on the move. Keep looking at these two. Hello. Awesome. Something I don't like is, well, for one, when there's no sound effect for you and two, okay, so Freddy is moving a hell of a lot, Bonnie, I would really love you. I want you to move, man. You got to get out of here. So Freddy's in the kitchen right now. His next step will be in the hallway. Something I was going to say is the lights work just a tiny bit different than they do in FNAF 1, where if you have one light on, usually in FNAF 1, like right there, it would just turn on the light I just pressed, but you got to turn them off in this game, which I'm not really a fan of, but it's kind of like, you know, whatever. Got to deal with it. Foxy also works a bit different. Instead of draining 5% progressively every time he hits the door, he takes 10 all the time. So Freddy is in the hallway. His next step will be in my office. So now we keep that shut. I don't know. I don't know how long we need to have it shut. Luckily though, when Foxy leaves, this plushie is going to jump up and down, and after the sixth jump, Foxy gets into the office. Okay, awesome. Thank you, Bonnie. Going away super quick. We're doing good on power, doing good with Foxy. It doesn't matter about Chica. Like I said, Chica, Freddy, we don't even think about them. And apparently, while we're just kind of chilling out watching Bonnie and Foxy, there is a Candy the Cat easter egg I've been told where a figure appears on the desk of Candy. And maybe I need to switch up the strat to look for Bonnie on the camera, but really, as long as I'm checking it every now and then, I don't think it matters a whole lot. Though since we're in Endgame, and Foxy's only one phase away from leaving, and we have such low power, you really don't want him to escape. Because if he bangs on my door right now, I instantly go down to like 3%. We might run out of power, but I think we should be able to live in the Endgame. Now, I think I'm fine to just chill here, because Foxy's not going to have time. Okay, so hopefully now should be good. I don't know how long Freddy's music box goes. I'm hoping we're good. I think we- YES! Yes! Okay! That's good! First attempt! Night 6! Oh! That's awesome! That's awesome! Ah! There's my overtime paycheck, 120, 50 cents! First attempt too! That's awesome! Hey, that gives us more time for 420 mode. Oh, I'm not looking forward to that! Let's have a look at Custom Night. Oh, goodie.  Challenges as well? I think I'm just going to save those challenges if you guys want a fourth video on this game. Hit the like button. If we get enough, I'll do all these challenges in a separate video. But for now, I'm just going to do the 420, 20, 20, 20, 20 mode, and we'll see how we do. I hope we can beat it in this video. But I might need to concentrate a whole lot, so we'll see how things go. Attempt 1 right here. Leave in the comments down below your theories. How many attempts will it take? So I was trying to count Foxy's thing, and I got it. So it's five jumps, where you don't need to check on him. Keeping Trucker Freddy means nothing. He just goes so goddamn quick.  Just flip, light, check, light, check Foxy, light, Foxy, light, Foxy, light, oh boy. It's a good strat. Very tedious. This is a similar strat to classic FNAF ones, 20, 20, 20, didn't mean to do that. This one is just slightly different, since it kind of uses how wanted strat. Fortnite 5, which again, was very repetitive. That is the case for most FNAF games, especially the all max modes.  It's not good. Power wise and also Foxy wise, you know. I gotta really keep an eye on him. Hey, Chucky. It still made me jump a bit. I don't know if you guys saw that on cam. It did make me jump again. Frickin' Charles, always popping in, scaring the hell out of me for no reason. Thank you, Chucky. Appreciate that, brother. Not even 5 a.m. Oh, there we go. Is he out? No. Oh, he is.  Two, three, four.  Freddy, be slow for me, buddy. Yeah, we can sing together all night long or not. That's fine too. Please, for the fans, one time for the one time. Okay, thank you, Freddy. Yeah, that's the run under. Yeah, you just can't let him knock on the door. Oh, I bet it was seconds. So each night is seven minutes on the dot. I'm timing it right now on my phone.  Each hour is exactly one minute, 10 seconds. So if I can just optimize my strat to take that into account, should be good. There's no shot. I need another 40 seconds, 13. I'm just going to do some simple commentary over the footage of my winning run. This is a pretty self-explanatory strategy for 4.20. Right now, at the very beginning of the night, I quickly switch between Foxy's Cam and Freddy on stage to stall them in place for a bit, especially Freddy at the beginning of the night. And I'm also quickly checking our Bonnie and Chica around my office. If they are, I stop that strategy immediately. But once Chica or Bonnie gets to the office, you stop that strategy of stalling Freddy and Foxy. You let Freddy do his pathing. Eventually, he'll get to the hallway and then you close the door. And then you move on to literally the entire strategy for the rest of the entire night. Flipping the camera up and down every now and then to check on Foxy. Usually, I like to have him in either his first stage, where he's not peeking out at all, or the second one where he's peeking out of Pirate's Cove just a little bit. It's not the end of the world if he's at his final stage before he rushes down the hallway. I just like to have a little bit of leeway, you know, a little bit of breathing room before he does rush down towards the end of the night. And that's basically the strategy. You've already taken care of Freddy and Chica with the closed door on the right. And just check the light every now and then to see if Bonnie's shown up. If he's there, close the door. Usually after one, two flips of the camera, he'll be gone. It's a very simple strategy. It's pretty easy once you get the hang of it. And then towards the end of the night, just to give myself a little bit more breathing room before I completely lose power. I just stopped checking the camera on Foxy. I stopped flashing the light for Bonnie. I let Foxy run. Hopefully he doesn't get to my office before I lose power. But if he does get there and bangs on the door, I don't lose a whole lot of time since I'm about to lose power anyway. And that's basically the entire strategy. It's mostly get lucky with Foxy's progression and also hopefully Bonnie doesn't show up too, too often.  So that's it. That's my strategy that I used for 420 mode on LEGO FNAF. And now let's see me celebrate beating this just hilarious game. 20 seconds. I did it. Yes. Yes. Oh, thank Christ. I am not not doing that 19 more times.  I'm just kidding. I really like this game. But oh my God, to be fair that I'm looking at my recording that only took an hour in total of recording. So that includes night six. So definitely not too, too bad. It does get repetitive, which is why I'm so thankful. It's over. So yep, I think that's going to do it for LEGO FNAF for now. Feels good to beat. I'll say that feels really good knowing that I've fully beaten the game. Of course, besides the ultimate custom night challenge, or not ultimate custom night, just regular custom night challenges, which I don't know if you get anything for beating them if you do. And if you guys want to see another video on this game, let me know. I'll come back. I'll do all of them. They don't seem that bad, actually. Like, I mean, Chica's on 20. Chica's fine. It's really just Freddy and Foxy that I had a pretty tough time dealing with. But that's LEGO FNAF. Thank you so much for watching this video. Again, if you want to see me do another video coming back doing those challenges, let me know. But for now, that's going to do it for this episode of LEGO FNAF. And I'll see you all on the flip side. Goodbye.


They're never meant to hurt me So I shouldn't feel so upset. Have you ever said that to someone or had that said to you? Let me say this to you about that Intention doesn't cancel impact I May not have intended to hit you with my car, but that doesn't unbreak your leg. I Didn't mean it is Relevant to people who are suffering the impact of what we say we didn't mean the world is full, isn't it of Communities entire nations of people who are suffering massive impact For whom I didn't mean it means nothing So let's stop having impact-excusing conversations and focus more on our Intentions all that helps you guys. Cheers


Hello and welcome to a tutorial from filmsbychris.com. I'm Chris, Chris with the K. Today we're going to be looking at pulling down web information from websites, scraping web pages from the shell using curl or WGet on both static and dynamic pages. So what does that mean? So when you go to a web page, things load and it could just be plain HTML, which is great. It could just say curl or WGet this URL, it gives you all the text, and then you can cut through it. But most of the time these days you have JavaScript in action on pages, which may seem a little tricky in some cases for scraping. But really, this is actually better in many ways. First of all, here's my website. Now my website's actually set up that if you use curl or WGet to grab it, it actually leads you to a text space script where you can search through stuff and it gives you directions and stuff like that. But most pages aren't going to be that nice to you. But having a dynamic page with JavaScript allows you to do stuff like this. I can type in Linux and it will filter all my videos that say Linux or Bash or Doom. And if we didn't have JavaScript and we just did dynamic pages, you would have to reload that entire page every time and it wouldn't show up as you're typing. You'd have to type and hit enter, wait for the page to reload. So having these dynamic pages, although a lot of people would argue with you, it's a great thing. It allows you to do so much more. And really when it comes to web scraping, it makes things easier if the page is designed properly and in most cases it will. Today I'm going to show you examples that I created which are very basic. But in the next video we're going to go to a real life scenario that a friend asked me about. So if you go to filmsbychrist.com forward slash scripts forward slash 2020 forward slash scraping, I'll try to remember to put a link in the description of this video. You'll see three files. Now pretend you don't see this names file because in a real website you wouldn't see that because you wouldn't have an index like this in most cases. But I have 01 dynamic and 01 static. Let's start with the static page. So we do that and again this is a very, very basic example which makes it very simple for scraping. But scraping can get complex. But here it is. It just shows a list of names. Look at the HTML. As you can see HTML loads and then we have div tags and here's a list of the names and they all have a class name. This is going to be very, very easy to scrape. So what I'm going to do is I'm going to grab the URL for this. I'm going to copy it. I'm going to go to my shell and I'm going to type in I'll use curl but you can use wget as well. Wget by default saves it to a file so you have to do dash capital O dash for standard output where curl does standard output by default. They just do things in different ways. But I do that and I get this and then again this is I can use then type that into grep and grep for name and then I can say cut dash D for delimiter. I can say this delimiter of the greater than symbol field two and then I can type it into cut again. And again there's lots of different ways you can do this and there's probably cleaner ways with like sed or oc but I'm just piping it through that. And there I got my list of name and that's my command. So that was a static page. Very easy to pull but then you have to cut through all this. And if they change the design or look of their web page it could throw your script out of whack because things may be in different places or label differently. Plus this was very easy to grep for name where in a lot of cases you might have objects on the page, elements on the page that have names then you'd have to figure out and then lots of times you'll have the div tags and the stuff will be in between so instead of just cutting I'd have to find that, find the line after then tail out that bottom line. It can get very sloppy. Let's look at a dynamic page. So I'm going to clear this out and I'm going to go back to my web browser and go back here and now I'm going to go to the dynamic page. Looks the same, right? Let's look at the code of the page. Ah see there's just a few lines of JavaScript that requests a file and then it's what's an undoing a very basic text file here. Most cases you're going to get JSON output which is great as well especially if you're looking for something more than just a basic name. Again we'll look at that more in a realistic scenario in the next video. But you can see the list of names isn't here because this is what the HTML looks like. It's got to run and curl and WGet are not going to run that JavaScript for you. There are tools out there. I like using phantom.js but there's other ones for Python that will actually render it in a browser for you or an invisible browser sometimes and give you the rendered output which is useful sometimes. But in most cases it's not needed and it's a lot simpler. So let's look at this.  Again doesn't have the list of names. Now I can look at the code here and right away see what's going on. But on a real page you might have a whole lot of JavaScript and it's hard to go through. You don't have to go through all that. What I'm going to do is I'm going to open up in my browser. I'm using Brave which is like a Chrome based browser or a Chromium based browser but Firefox almost all web browsers nowadays have a developers tab or console. F12 is common to open that. If you don't have an F12 key like on my Chromebook, Control Shift I will open that up. It might be different in other browsers but you should be able to get a developers tab, go to your menu and say developers console or whatever. And then down here we're going to choose network and I'm going to leave this to all at first here and what I'm going to do is I'm just going to refresh the page. And you can see some things loading here. And in certain cases I'll show you a minute, actually let's just go back to filmsbychrist.com. I'm going to do the same thing. I'm going to open this up and notice nothing's loaded because you have to have this open when it's loading, when stuff's loading for it to show up. But if I come in here and I wipe this out and I type in bash, you can see that it's doing requests and I can click on one of these and see the output of that here. That's the preview, there's the actual output. Let's go back to our basic example here and again I'm just passing it plain text and splitting it based on lines while essentially you'll get JavaScript. Now again you'll get lots of stuff loading here, especially if you're typing, you might be loading multiple stuff. One way to narrow this down, most of the time your data that you're looking for is going to be, unless you're looking for images or something else like this, you're going to want the XHR. You click that and look it narrows it down and I can click on this and click preview or response and see, is that the information I'm looking for? Yes, it's the list of names. So all I have to do is click here and say copy address link and now I can curl that information and I have the list of names. I didn't need to pipe it into grep or cut or anything like that. I got the list of names and that's what I wanted and a lot of times you'll get JavaScript in which case you can, or sorry, JSON in which case you can use JQ which I've talked about in the past and we'll look at in the next video. But that's it. So we have two scenarios. We have this which is curl, the URL, grep-ing, cutting, cutting, and again that's a very basic example and if the web page changes it might break it. Obviously if they change the backend things can break too but lots of times if they just change the look of the page they're going to leave their backend scripts the same and so it's still be easy to grab that information the other way. So I can have this long command which really isn't that long but could be a lot longer or I can just have this and get the list of names I want. So instead of scraping just requesting the information from the website is a lot cleaner and easier and not that hard to find. So again if you go to a page and the information loads when the page loads make sure you have this open and then click refresh but in this case what we can do again is I can clear this out and start typing so I can type in that and you can see that it gave me one return on that but right away I know this is what I'm looking for there's the information I'm looking for and again if I click XHR that would narrow it down so if I say all and I refresh this page you can see lots of stuff's loading and now I can type in bash and again I'm there's a few things loading here obviously it's these ones here but on some pages maybe a little harder XHR and I can click on this and look at the preview or the response is that the information I'm looking for right click it and say copying or if I just need at the one time I can just say copy as all as a copy all as but copy as h a r is there one that's just copy there's copy all I guess that would copy everything in that list I thought there was one that just copy the one that's highlighted but one more thing to look at here so I can copy this URL and get it but sometimes it's passing post variables or there's session information and either case if you're trying to scrape a page that requires a login or some sort of session ID or however you're doing it you're going to want that information well if you come in here on any of these pages you say copy as curl I can paste that in here it's gonna be longer than need be there's information in this case it's not needed but it will paste in your cookies your session ID information all that in here and you will get the information that you're looking for and again that is great if you have that X information but lots of times just right clicking this and saying copy well not lots of times lots of times that copy as curls very useful with the cookies and the session keys and whatnot just remember session keys and stuff expire so you use that in a code that code may not work an hour or a day from now but if you just trying to pull stuff down quickly that has a quick and easy way to do it what else I want to mention here so yeah so scraping the page can be sloppy we're just requesting the information and there are pages that make this hard it's rare but like for example like there's Google pages like if you try to pull that information from Google there they try to hide it and it's just in my opinion horrible programming because you're working harder at trying to hide stuff and now you're adding all this extra code that you don't need but in most websites coming here grabbing the information you need is super simple and I have seen and I have done back in the day something that's very very poor and ugly is most time when you're requesting information through JavaScript like this you're gonna get properly formatted information either plain text like this most time JSON maybe some XML but occasionally you get a programmer who on the server side generates the HTML and spits that back out to your web browser oh horrible I used to do that it's rare you see that occasionally because then now you're pulling information and you still have to scrape it and it's just sloppy we're just requesting that information and as a programmer that's that's not good if you're the programmer doing that because you do that on that side then if you want to make a change to the information you got to change it like you want to change the look of the page you got changed on the server side we're having this constant information for example going back to my website films like chris.com if I wanted to change the look at this page let me see let me go back here five that's still around no six is that still around okay so here's my old web page see I changed the look of it but it's still using if I type in bash the same look at me walking across I forgot about that you can see that I'm still searching through and getting the information here actually it looks like on this page I did exactly what I was talking about I outputted the HTML instead of plain text up but if I create a new version of my page I'm going to not change that back end I'm going to still be requesting let's see now I'm getting intrigued by my my old coding I can still use this link to request that information for my new site so I can change the way my page looks but still use this back end and pull the information I want where if I was outputting HTML I'd have to change both my front end and back end anyway that's just a little bit of information if you're designing something I would advise against generating HTML on the server side although there are people out there who are going to argue oh you should do everything on the server side and output static information and that may makes it backwards compatible with computers and operating since I shouldn't say computers because newer computer computers from 20 years ago can get new software on it if you're using Windows 95 or Windows 98 you know they're not going to be recognizing the JavaScript so you're not going to be backwards compatible with them okay in that case make your page completely static I see more of a concern of being forward compatibility so I'm doing now is still compatible in the future you can't always be backwards compatible should be a goal but it's not always a possibility because you're trying to add new features that didn't exist back then anyway I do thank you for watching again filmsbychrist.com that's Chris the K that should be linked in the description for go to software and click here on scripts and then click 2020 scraping and you'll see the code from today and again you can see right here the names file but in most cases you're not going to have an index like this thanks for watching please visit filmsbychrist.com link in description my patreon link in description and I hope that you have a great day


Hey there, it's Sandy. The second half of this video is going to be coloring a scene with dyes. The first half is full of glitter because I was inspired by this release from Ellen Hudson that came out today to use too much glitter and you're going to see way too much. And I know it'll freak people out who know me. So there you go. Halloween magic does not have glitter on it. This one I filmed and put over on Ellen Hudson's channel showing how to use this owl and make this tree both on black and white cardstock. Halloween magic also has an eyeball and spiders and things and I made some airbrush cards with that. The next couple of items I have not used yet because they're too many things. Nice of you as a stamp set I'm going to be using a lot though because it's all about thanking people. Very, very great stamp set and I sent a lot of thank you cards so that's going to be great. 12 days of Christmas you can make ornaments that celebrate the whole 12 days of Christmas. You can make all different kinds of wonderful projects with that. I have not had a chance to yet. And the kit, there's a whole kit that has felt involved and the stamp set that is making its return appearance. And I decided to stamp them all into one big tree. Put them in order and color it up. It's a huge card to try to fit all of them. So yeah, I'll be mailing that one in a box with a gift I think instead of trying to figure out how to find an envelope for it. There's plushies, a ginger boy and ginger girl and you can use the skeleton stuff that I showed just a few minutes ago with ginger boy and ginger girl to make skeleton plushies. But I made her a dress. I did that by cutting her out of both the brown and the red.  And then I cut her out of her toes at least out of black so I could give her boots. Tag trio dies. I paired with warm wishes. There's three tags. And I love these stamps in this one. The sentiments are beautiful. And that background is made out of those three strips of stamps. And then I stamped the package, put glossy accents and glitter on it. And this one I just colored a Copic background, added a bunch of glossy accents and all the glitter. The bottom strip was done with a piece of double stick tape, put glitter on top of that. All of these, by the way, are going to have a description over on the blog with individual pictures and how I did them because I know this is flying by fast. Knockout Forest is a little group of trees. I knocked them out, popped up the panel and then all the pieces that came out of it, I glued back in and added glitter onto them. The sentiment I added glitter onto and these are for people who don't celebrate your holiday. If you want to send something to somebody that celebrates their holiday, I use glossy accents and glitter to make my own kind of embossing powder because I don't have any. So I only have one pot of glitter. Merry little Christmas has cabin, little town scene, a little city scene. And of course comes with dies, but I made a couple cards using my backgrounds from my new classes that show you how to make night skies and added a little bit of glitter onto them so I could kind of feature whatever element of the scene that I wanted to with the glitter. My whole studio is going to need complete vacuuming out when this is all finished because glitter is all over. The Shaker Globe, I didn't actually make shakers out of them. So I just made little tags out of them because I thought it was going to be kind of fun to do that. And you'll see some of the pieces that some of these are made from later in this video. This one was from the Merry Little Christmas set. There's a little snowman in it and I just put him in there and colored it, didn't do anything else to it other than add glitter. Piece and Love is a cute little one that comes in the Made For You stamp set. So this one has more graphical images, if that's your thing. The tree and the snowflake are the ones that I used in the previous little snow globe. Now this one is for the all-inside bear, who I love. And now he's got more little stuff to go with him for fall and winter.  The sleigh looks like a sleigh, the packages look like packages. And I could just color them in, which was kind of fun. I also use the stamps to put the bear in the sleigh and give him some snow with glossy accents and glitter in the background, of course, and use one of my new class backgrounds on that one as well as this one. And this guy has the little Santa beard. I drew my own Santa outfit, so you'll have to do your own as well. If you want to put the suit on. Then we have deer antlers. And this one was the one that started me on the glitter, actually. There's a stamp set called Sparkly Christmas. And I started using sparkle. And then I thought, what would happen if I tried to put glitter on everything? So this one I thought would be cute on a gift of giving somebody a little pot of glitter. Just put that up on top. Twirling flurries. This one's a cover plate with little swirling snowflakes coming down. And I've used a deer that's coming up. You'll see that in a minute with, of course, too much glitter. No, this is probably hurting your head. All this glitter. Use a little snow globe on that one as well with the background. Now onto the deer. This was one of my very favorites in the release. The little deer because I could color them. And I'm going to show you how to do that. This one has the entire herd of deer on it. And then the birch tree cover plate has, you know, the leaves you can make scenes with it with leaves in the top, but I'm going to use them very plainly. And I've, of course, added glitter onto it. A tone on tone look for both of these with just little glitter accents. One has the sleigh in it. One has the deer in it. But this is the card that we're going to make today. And the way that I did this was to make this cover plate background into something a little bit more like a regular scene instead of having a frame around it. Because I wasn't going to use it for a shaker or anything. And this way I could color the pieces and not have to draw the trees. So if you don't like to draw trees or you don't know how to draw trees, this is a really great way to do that. So I'm just going to snip all these pieces off so that the branches continue and go straight out to the edge. And you could do this with a lot of different cover plates that you may own. This same technique could work with those as well. And I've grabbed a couple of markers and this picture will be over on the blog. If you need to know what they are, I'm not going to put them on the screen because this video took me forever to do anyway. So I'll let you determine those. But for the trees, very simple to do, I'm just going to do some scribbling with a medium brown. And I've just picked left side. So I have some lighting coming from the right side sort of ish. And I'm just kind of randomly scribbling little horizontal lines here and there, little broken lines. It's not supposed to look like it's outlined. It's supposed to look like bark to make them look like birch trees. And then I added in a little bit of a warm gray color and leaving lots of white coming in as well. Don't make it just solid all the way down. Again, just scribbling. But this time more with a side of the marker so I get a thicker line instead of just the tip of it like I did with the brown. And then after that, you can go in with another color to accent it and to give it a little bit more detail, I chose to do that with a darker gray. And I'm just making thinner lines on top of all this and making them more scribbly on top. And if you go to the blog and you see the card, you can look at it closer and see what those scribbles really look like.  But the rest of it just let it be loose and scribbly. And I promise you, it'll look really great on your card once you get it done. But it's super easy to do. Now, I was going to color the deer and I went to look up White Tailed Deer. And I found this on the web. It was so much fun. I sat here and played with it forever. There's going to be a link to it on the blog if you want to go play with it yourself. But you can look at where the whites are on a deer. Isn't that cool? So you can see that where the white starts on his belly and if you're looking at him from a particular angle, do you want the legs to be white? Or is that leg going to look like it's brown? And yeah, I probably made this little guy dizzy. That was probably not nice of me. But it was too much fun. So what I've done is die cut them, but I've left the dies in the background of the paper so that they'd hold still. And I'm going to put down the base color of the brown that I'm choosing to use. And if you want to make your deer purple deer and do all kinds of crazy things with them, you can use the same techniques. Just use the other colors that you want to use. So here I'm going to make the front legs have the dark color on them, or the medium color, shall I say. And the back leg will be white because that's what I saw when I spun the little deer around. It was really helpful to be able to look at them from that angle and see, okay, when their ears are facing me, what color is the inside of their ears and what does it look like when you look at the ear on the other side. So I hope there are more of those little animated gifts. I would really like to be able to look at them when I color animals because that would be super helpful. So I'm going to put a little bit of dark color on the tops of each of the animals and I know it's counterintuitive because we normally think shadows are on the bottom, but this is the actual color of the fur as opposed to the shadows. And then I'll do some blending of the colors in between so I get a mid tone in there. I guess I started with a mid tone so maybe this is a mid to dark tone and then going back in with my lighter color. And I made these in darker colors than I might otherwise because it's a night scene and I wanted them to feel fairly dark on the finished card. What I did at the end, I was using this light brown for the antlers and I decided to knock back the white on all of this. Instead of having all of that be white, it would just be this really light brown which worked super well because it gave me contrast to the snow and it gave me contrast for the little white spots on the female deer. So that was kind of a surprise that I pulled on myself and it actually worked because then I could go back in where there is really white on his belly and on his chin and that sort of thing and I could add in extra white details because I had added that tan color first so the white really stands out as much more white and then when you see them on the snow it's going to make a big difference because you're going to have some color in those legs. So that was how I colored all the deer on all of my cards. I kind of got a little obsessed and went a little crazy on them but aren't they cute? They are so adorable. Alright, now the background I'm going to do in Copic Marker but here you could do anything you want. You could use a piece of patterned paper. You could do some distressing stuff. You can watercolor something, whatever you want to do to create your own night sky for a card like this because you're just going to glue these other pieces on. This can be a sky of any kind that you want to use at all and I'm going to use blue and I'm going to mix it with a blue green. Now my marker is drying out here a little so I was struggling but I tried to at least break up the edge of where the blue meets the blue green and then I went back in with a marker that was much juicier and went over all of it and so fortunately I was able to salvage this piece of paper. So what I do find is when you try to do a flood of color you are going to get some sort of a mess. It's just the way it is with Copic Marker, especially if your markers aren't juicy but if you keep working on it you can usually eventually get it to blend. If you're really desperate then you might even try taking like once you once you get it about close, spritz it with some uh in a mini-mister put a little bit of colorless blender in there and sometimes that'll add a nice texture to it but you see how many times I went over this back and forth and it almost looks like there's a forest in the background that area where they didn't blend so I'm also going to add snow and decided I wasn't going to worry about whether or not it was perfect blending because no one's going to care. No one's going to see that except you and me. You know how trashy my background looked and yeah we can fix that.  I glued down two of them you can see how I intertwined them with the trees themselves they're standing in the trees added a bunch of snow in here making some snowflakes bigger and some snowflakes smaller just kind of alternating that as I was going around the card and then I could just start adding on more of my deer and you could probably do the snow after you finish adding in all the deer but for me I found it really easy to use my glossy accents to add my deer in there. You can use other glues but my glues are all gummed up. I apparently can't seem to keep a glue bottle working but I can seem to get my glossy accents to not clog up so that's what I use. So I've got two of the male deer and a bunch of the females for my scene just gluing them down carefully if you end up getting any glossy accents on your paper just wipe that off with a baby wipe real quickly while it's wet or scrape it off very gently with I sometimes will use a knife to sort of lift that up so I don't end up getting the shiny on there but you could also do what I did and add some glitter to it. So I've added glitter along the line where the deer are standing along the hillside and then along some of the trees so I have some sparkle on here as well. So that is my card for you today. You can see all of them individually with more text explanations of how I did them because I know this flew by fast. I don't like to take up much of your time so you can go over to my blog check that out see what everybody else is making with the new release and there's one stamp set I have not gotten yet so stay tuned that's going to be another video at some point in the near future I hope to have that on the blog at least a card made with it before you get there so we'll see how that goes we'll see how my plan goes to get that done all righty I will see you guys later take care bye bye