Hi, wrth gwrs. My name is Teria, and I work for Swan ELT. I'd like to start by thanking Peter for introducing me to ELT Ireland. He's a good friend and colleague, so thank you. So today I'd like to talk about informal assessment because it's the subject of particular interest to me. So, when I started teaching about nine years ago, I found that informal assessment was something that occurred naturally, and it was something that kept coming up in every lesson, every day. My understanding of it at the time was quite hazy because I didn't know how to integrate it into the teaching and learning process. And I found myself assessing students when I didn't know I was doing it. And I also found myself, and I'm sure a lot of you would agree, that I was doing it even when I wasn't teaching. So I would go home and think, why is my husband using or my boyfriend using a different register today? Or why did he put a determiner in that place and not at the end of the sentence or in the middle, which is a bit sad, but it just means you have a love for language in general. So what is informal assessment? It can be formative in a sense that it allows us to check students' progress.  But what you ultimately want to achieve is your learning aims for that day. And if you follow a weekly topic, our topic at a school, for example, sorry, our syllabus is topic-based. So whether it's topic-based or grammar-based or function-based, you have your immediate aims and you have your weekly targets by Friday what you want your students to achieve. And sometimes work sheets and classroom tasks do not give us the full picture. And also it determines how far students have progressed in terms of language acquisitions. So there is a focus on not so much on language accuracy, but linguistic competence as well. And I think a lot of that comes through when we look at informal assessment from a different angle. And also, as I said before, you can measure the progress you are making and students are making in line with the syllabus or the curriculum you're following. And most importantly, sometimes you find out what students have at their disposal. If they did a placement test, you might find out that their writing is very good, but they need help with grammar. But there are surprises that come up and sometimes you didn't know about them. And it helps you know your students better. But what did they already know that we didn't pick up at the beginning? So I'm no expert on how to informally assess students in every possible way. But these are ways I have used in my classroom. So I teach first certificate students and A2 learners in my morning class, although that class is now mixed levels. So that's a whole new adventure I'm looking forward to. In terms of speaking and listening, you often assess students while they're speaking. And you start to notice errors. You start to notice that they're using different register or they're struggling with sentence structure, for example. With first certificate students, they work in towards an examination. And they have their targets. So there is a heavy focus on accuracy. But I think informal assessment lifts that burden of having to stick to deadlines. And we need to learn the structure for writing an essay or presenting an argument. When I used to conduct speaking activities, it used to be a matter of getting the task done and getting through the language point of that day. But I recently found out that if I let students speak freely and discuss a debate, or for instance, role play and interview, or simply questions and answers and just take a backseat and observe, they didn't feel under pressure to perform in a particular way. They didn't feel that they had to use the past perfect or reported speech that day because we were teaching it for the purpose of the exam. Which brings me to my next point. Yes, you can assess the speaking and listening skills. You can assess how far they have come in terms of retention of vocabulary and form. But writing is equally as important. Written work and feedback doesn't have to be formalised. It can be your students writing about something they feel passionate about. And feedback is really crucial because when somebody writes something, they want you to acknowledge it and they want you to take the time and discuss it with them. It's at that particular time when you find out what you didn't know about the learner. Acting as an observer, sometimes you have to look at the students as an outsider. For instance, if they're doing group work or pair work, what I try to do is just let them be and observe how they work in a group, how they prefer to learn. Are they leaders or do they like to facilitate? Do they like to organise tasks? Do they prefer to write or do they just want to speak? The problem I found with being the observer of this process was that there was too much going on and I couldn't observe every single student or every single group. So what I decided to do is keep a mini journal for myself. I used that as a tool for follow-up action points. For example, tutorials, individual learning plans, classroom learning plans in a whole class tutorial led by the teacher, whereby students are also able to participate. I found that by using the journal it made it a lot easier for me to follow what was going on in my students' minds. The other thing I learned recently was that I had an A2 student who seemed to struggle with speaking and seemed to struggle with reading long texts. By looking at his initial assessment or placement test, I couldn't find anything to work from because it was a bit restricted. It had a set format and it was computerised. I didn't think that perhaps the student in question was under pressure to perform this test in order to be placed in the right level. A student never spoke a word during class, so when he was prompted he would smile and say, could you come back to me later? I'm not ready. Or he would simply say, I don't want to speak. I decided not to put pressure on this particular student. This went on for three months, closer to three months. I would sit with him and work with him during group activities because I didn't want him to feel that he was less able than the rest of the class. When I stopped interfering in his learning process and when I observed him in one of the activities, he was doing most of the talking. He'd never spoken more than one sentence in the past. That's when I decided to have a tutorial and find out why he didn't want to speak. Perhaps there was a serious issue and I could address it. A student just said, I just don't like speaking when I'm prompted. He didn't say when I'm prompted, he was A2. But when the teacher wants me to speak, he liked, and I found out later on, he liked to assimilate and take it all in for weeks on end or perhaps months on end. This language just emerges and it's beautiful and it makes sense. There's form, meets, fluency, and it was beautifully combined. His ideas were so organised. He was talking to me with confidence. It took a tiny observation and a tutorial to find this out. I wouldn't have found out otherwise. I thought that was a learning curve for me. I'm still trying to find out more about informal assessment. Some of the observations were that students were following the informal assessment, whether it was speaking in written form, group work, or keeping journals. Students were able to reflect on their own progress. They would come up to you at the end of the session or on tutorial day and say, I think I'm making progress because I can use this now. There was a sense of collaboration and teamwork between student and teacher, which was quite a nice thing to see. There were surprises. There were things that would crop up. I didn't know, for instance, that one of my students liked to read and write poems because I hadn't used poems with them before, but when I took the time to listen to them in conversation, I found that out because I didn't put any pressure on them to complete this task by this time within 10 minutes because the coursebook said so. It does break the backwash effect for classes such as the first certificate class. If you want to read more about the backwash effect whereby teacher and students are bound by exam class deadlines and structures, it's in Jeremy Harmer's... I think... Does anyone know the name for the Harmer's book? 2010. Thank you. The Practice of English Language Teaching. There's a whole chapter on it. These are some of the statements students came up with. I know the answer. I just don't know how to put sentences together. We may assume that that particular student just can't speak and you don't put pressure on them. Teacher, please correct my mistakes when I speak. Sometimes you don't want to correct a student at every single second whenever they make a mistake, but some students actually prefer that and you don't find this out unless you take the time to assess them while they're speaking with no pressure whatsoever. I feel more relaxed when I communicate naturally and listen to others. This was a first certificate student. She said this after we had done exam practice, exam speaking practice, and then we did an informal conversation whereby they could talk about a certain topic with no criteria as to you need to use this and this language point and this grammar structure or you need to include this vocabulary. Can we talk about my homework? This comes up all the time. It takes a while to get some students to do homework, but once they get into the habit, they will come up to you and say, can you give me more homework or can you check this or check that? I think informal assessment takes a more humanistic approach and it makes you assess the learner as a person and as an individual and it makes you look at learning preferences and see them in a different light. I found that their interest in language increased and what I mean by that is their curiosity and their willingness to go and find things out for themselves. It helped me set learning goals. It was a bit like a contract between student and teacher. We were working towards fluency or achieving this aspect or that aspect of your learning. Of course, students' autonomy increased because then they would know what to go and search for in order to improve their language skills. Speaking tasks and activities for instance became very meaningful so it wasn't about we're doing this for the exam or we're doing this because it was more about there's an ultimate purpose and that's to improve myself as a student. Finally, this brings in this idea for the student that my teacher evaluates my speaking skills. They need to know that you care about what they say and you are taking notes and you are evaluating it and giving them results and solutions. Therefore, I can make progress. Thank you very much.


Good evening look forward here, and I'm talking with Monacum. Hi, hey, and Monacum you grew up in Los Angeles you grew up as an Orthodox Jew in Los Angeles What what do you like what you dislike about growing up as an Orthodox Jew in Los Angeles? So Los Angeles is like the wild wild West a lot of people have came here to kind of do their own thing because the system in the Basically in the United States was imported into the United into Los Angeles Where certain things Los Angeles is behind in? Barak Hashem we brought high lifeline to Los Angeles We shouldn't have to go outside of Los Angeles to get certain Resources within the Jewish community that I felt were behind in the times Barak Hashem Los Angeles is up to date with resources and certain resources We're not there one thing. I love about Los Angeles is in Los Angeles as it is kind of like Hollywood style Did Jews bring out the best and we could we have an opportunity to do Kirish Hashem So there's many times where I go out with the group Achilles as I'm blind now so Achilles and I ran into Jennifer Garner and We have an opportunity to do a Kirish Hashem Just because we meet somebody who may meet a Jew for the first time a Torah observant We all practice our orthodoxy differently, and we have a great opportunity to show Non-Jews how we are or Lagoim a light on to others and to bring out the best and to capitalize on our Practice of Judaism. We should not judge. We should not Jews do not define Judaism Right. I think we have an opportunity to grow and We all have our choices that we can make And there's a pretty rich community. I mean there are mikvahs. There are kosher restaurants. There are Yeshivas there are a variety of orthodox rabbis. There are many different parts You can take an orthodox Judaism So I guess one of the good things about orthodox Judaism in Los Angeles is that there are a lot of choices That is correct So logistically We have the gamut. There's a rabbi who says that modern orthodoxy is pretty much centrist orthodoxy, so on Pico There's a synagogue To the eye in the middle. There's a das Torah into the right of it There's been a David Judea, which is a merger used to be a Movie theater. So in LA we make it into a positive and turn it into a shul Makum Torah and it's to the right of a das Torah and to the left We have Merca's hatora, which is the center of Torah and it's a beautiful place where lots of Torah learning goes on in a das Torah is the gathering Yeah, and a das Torah. Is that is it like the most right-wing synagogue in Los Angeles in Pico, Robinson? I would say definitely not Recently at a das Torah banquet There's certain members of the community who We were honoring and a das Torah is one of the unique Shoals it has OU We have so it's OU is basically orthodox union And it's busy. I'll call a das Torah the uniting because United orthodox Jewish congregation I think it's the founding organization of The predecessors to the orthodox units we have a good a robot aims. That's like more I would say more to the right Judaism, but we also have orthodox union. We have speakers from where I go to a das Torah. There are religious Zionists We have all Walks come in there. I mean, I'm a jeans in the t-shirt fellow and I would say it's a very eclectic crowd and That's why I love it a das Torah is a gathering of Torah and it's not like you take a dot a Das Torah like a letter mm-hmm a rabbi.  It's very warm and welcoming I would say recently a 32 April 2017 I lost my eyesight to a to a rare genetic condition called leverage hereditary optic neuropathy and Did you know this was coming or did it just happen to you unexpectedly? It happened unexpectedly As far as I know the only person in the county of Los Angeles who has it wow I have a rear mutation. It's a 3460 a long pant size and It's it's it's very unique It's rare it's hard to explain it's basically like a snowy TV set back in the day, but we have a Torah value set and Kind of like so it's it's like a TV set and we all have Torah values So basically I have more peripheral than central And it's very rare. So I would say it's Usually more peripheral than central so central to you is peripheral to others Right to keep dying the prize right now Did the how long did it take for this to happen like when did you first notice something was going wrong? I? would say around February by April and it would be silly I Did in a one sitting at the Lab, there's only about a few labs that test for this condition Got the results after Pesach. I was in the hospital right before Pesach We did on April 10th did the blood draw around April 3rd. I Got my results shortly after Pesach. It's basically five weeks. We all know the symptoms And how old were you at this time 32 and what were you doing for work? Prior to coming blind. I was working as an order manager at Western Kosher hmm, and I can't imagine you're able to continue and that line of work after becoming blind I would say that is correct. However, or the Jewish community Was Very assisting and in every way that they can I'm gonna say while I am blind It's very difficult for someone who is not blind to understand What it's like to be blind recently found out my blood type is be positive It's not just a blood type is I like to say and some people When they lose a family member they grieve and I was given advice by someone who I was connected to and Really is helpful to a lot of people And I would say it's a very great person and influential that what they did is they created a Quote book and I have a lot of inspirational quotes and Mine is be positive. It's not just a blood type. So kind of I don't go looking for problems So kind of think about it if if the goal is to cross the street I could use a cane and I could Put air pods in so I'm tuning out the sound I'm feeling the street and I can cross the street with air pods in and just feel the street or I could do some other things Like you know just if the bat the goal is to hit the baseball and the bat hits the baseball And I could hit a baseball and all I have to do is swing the bat so I can hit a baseball if so, it's just don't go looking for the problems and So are you independent? Are you living on your own? I am living alone Barak Hashem with the great assistance of this community. There's a lot of Kind of looking at like this blind people is very difficult for us to find work Most of us live under the poverty line about 90% of us worldwide 70 to 90% of in America Basically are unemployed or don't have enough work So most of us are on social security SSI some people who Barak Hashem had the opportunity because of the Jewish community or the To have it work for over 10 years receive SSDI like myself social security disability insurance and it's very rewarding when we keep our you know commitments to each other and Deliver so yes, it is independent as I can be accept when it requires I Said I do do stuff differently and I try and be as perspicacious As I can which is a unique perception of facts and details Now how did your life change after getting this diagnosis and after becoming blind? drastically in the word blindness the great rabbinic sage the charsodic brother of Moshe Feinstein to find it as Isolating in his response of is a guy dog allowed into show It's isolating so imagine only seeing black like darkness And also there's a there's a dog from Egypt. It's doesn't bark a man's best friend is a dog when the Jews left me trying Egypt The dogs in bark and this dog that is native of Egypt is find a pure breed of it. I don't remember the name doesn't bark So it is isolating and I think it's very important to have support How did your friends react to you go on did they did they Stay with you or were they scared by it or how did they react? I would say they They don't know what to do. However, there's all these different forms of support some people are Try and use their what they can't do will call it their means which is money Some people have different resources, so they may know somebody who knows somebody Who is blind? or Somebody who may know something about technology or we get you to a very good doctor But we should if we express concern about others They will express and we should try to not criticize condemn or critique or not judge somebody who is not in Each other's time, so I do try and do a lot of tour learning So sometimes if we have time we should use it for the right practices And in vaikra leviticus you'd test Pusk your dollar 1914 do not mislead somebody so sometimes stuff happens At different things and you can trace it back like what does it mean to you? So we got to do what's best for you and I think the community came together and raised some money for you I think about hundred thousand dollars. So did that help your life? It did it, you know sometimes Difficult to know what's going on in somebody's life, and we got to do what protect so Barak Hashem Thank God the community made it possible for me to have a roof over my head and We should have to be paired with the right people And I would say some people are the best, you know Like if you get a little scared to wear a mask like and be a little creepy like you know Jason but we should not protect each other and Sometimes you get a little influential and you say I need that And we don't could all be taken away in a heartbeat just like I lost my eyesight in about five weeks so like a lot can go missing and Did you get the money or the money that was raised for you? That's a difficult question to answer.  Oh, that's in the past. I'm like however If we have a problem and the problem was never addressed Just like we need help so If there's a problem in Minakham needs to see something sometimes we make it possible This is a community that we will make it possible from an often to see an actress From the Jennifer Jennifer Garner to Sarah Marie Hutchinson Or like there's legend of Right, right and did you receive at least half of the funds that were raised for you? No Did you receive 80% of the funds that were raised for you? I don't think so. I would say they were it was going to be administered by an accountant and or a lawyer or I don't know where the money went Definitely didn't go to me as it was supposed to benefit me directly and I did not receive Direct benefit.  Thank God with the great help of an influential members of our community and family of the Jews and I'm sure there's some other people I did all they could help we have all these different forms of support and Sometimes the more in Sanhedrin says to go down. We just be quiet But that doesn't make problems go away So I was trying to circle back to this that like if you how do you take corrective measures? By acknowledging drum bum said if we don't have a oh moment. Oh, I didn't realize I said that when I was really blind I got a lot of insensitive comments like these men are from Jewish And I'm like well you talk lost as I say to smoke. Yes, there are other she does opinions But that was your question someone was asked of Me in front of my parents and we're like well LH one so the best thing all questions are coming from a good place So we have to just answer your questions and no means no Hmm So I mean for most of us becoming blind is just an unfathomable or deal to go through What are the what are the greatest sources of joy in your life today because I know for many of us just Becoming blind. We just we can't imagine where you would find joy after that Spending time with friends is one Sometimes we just dial in like a pipe or what I'm going to be smote they'll a social beast If we listen and we'll learn what the issues are we can actually best address it So I like to learn my favorite app is or way to learn is on why you Torah? I like to go on long walks, which is like I recently did a lay half marathon Beginning at Dodger Stadium where Frank McCourt? We love the parking lot still will utilize those I did a half marathon long walks on the beach is a fun one I like to hit baseball sometimes, you know There's a little lime and go on a ride and we can do a bird and all confet the sharia or we can do all confet firehawks because the Kishah that sends chassad girls and boys and we go out and spend quality time so hitting baseballs doing a little driving Let them do the stabilization and also Barhashan. There's a high school called the sheavey University of Los Angeles So recently got united with the boys and girls go back together And I like to call them the God God gods because they have Panthers How on earth do you drive when you're blind? What's central to you is peripheral to others So if you just don't think that there's gonna be something in front of you looking for the positive of the goals across the street and I do stuff differently just think about it and sometimes you need a little guidance. So if you tune stuff out You just focus on the pavement So if you just put an air pods and you just think ooh, I'm gonna be so smithing You know across the street just think about it the goals across the street like why didn't I come across the street? To get showered with with with love and stuff like that. There's a lot of uh, you know There's stuff called sugar salt and pepper. So when you blend them together That's all that you just got to think of the positive it goes across the street and I learned how to do this I went to school to Do everything from change a diaper to cross the street to read Braille to You name what I learned to do again Where does your eyesight go? Hmm to your memory Okay, let's just leave it there for right now


w you're gonna love this. We're gonna do some regex magic. Oh, God. So, what some people don't know, split- For the record, I haven't seen this code before. So I'm getting like anxiety every time he says these words. Like, we're gonna do some regex magic. Do you wanna write the regex? No. No, okay. Can I answer some questions though while you type your regex? Go for it. Because nobody needs to know what you're doing. I'm gonna explain the regex, so go for the questions and then I'm gonna do the regex. One of the questions is, why aren't we extending the image element with is equals? Because that's not a thing. That is not a thing, unfortunately. So is equals is one of the battles we lost a little bit for custom elements? I mean, it's in the spec. It's in the spec, but it's not actually implemented everywhere. Not even Chrome, I think, has it for the new one spec. So it doesn't actually work anywhere. The polyfills don't have it. So you can use is equals all you want. It's not gonna do anything right now. Some browsers have expressed very strong dislike of the is pattern. And if one browser doesn't do it, there's no point so far at least in just doing it in some browsers because it's also very hard to polyfill. I don't even think it's polyfillable at all. Not sure about that, but for now we have to live without subtyping native elements. We can only do HTML element and nothing else. Mm-hmm. Carry on. So what I'm gonna do, we're gonna write a regex and we're gonna find all the SC image elements. And we're gonna do this. So we wanna have everything until the closing tag. Come on, let's see image. It's beautiful, isn't it? And let's keep it this way and let's call join down here. And let's work on the source for a bit so we can see what is going on. This means it is not working. So that's good. We're splitting this. That is correct. Thank you very much. And my images disappeared, which is actually true because I need to put parentheses around this. So now this should look the same. The good part is that now NuCon is an array and it's either gonna be remainder code or it's gonna be just one isolated SC image element. I can just to show what I'm talking about, I'm gonna console log new content for a bit, gonna refresh and then in the console, it's an array and every second element now is an SC image element because that is the part that matches the regex and everything that doesn't match is gonna be put in another element. So we now just split apart our entire document into what is an SC image and what is not an SC image. And now we can do post processing on that. So what we're gonna do next is we're gonna remove the semicolon and we're gonna map. And each of these items is if the item starts with SC image, actually when it doesn't start with SC image, we don't wanna do anything because we don't care about it so we're just gonna return it. And otherwise, we want to figure out what the actual source attribute is. So again, we're gonna do regex because oh my goodness. That's how I roll. And there's parentheses around this and that and then we're gonna do an exec on the item. And then we're gonna return something. Let me think for a bit. Let me just do a test. I'm gonna return the source just to see it works. So now we know the source actually has only the value of the source attribute. So that's good. It's probably gonna read that file. And now we're gonna do the item. Actually no, the item can actually stay. What we wanna do now next is we wanna actually figure out what the aspect ratio of the image is. And this is where it gets, you're into a lot of the weeds of the node ecosystem because now we have to look into image processing libraries. I just Googled a bit and took the first one I found which is called graphics magic for short GM and we can subclass it to use image magic because that's the only one I've installed on my system. Don't worry too much about it. Basically all the image processing libraries can do what I want, resize images and figure out what the size of an image is. And what I'm gonna do down here, I'm gonna load the image and that's fairly easy with this library. So I'm just gonna do static plus source. And let's just do a console log to see if that worked. I hope it will. So this should all look the same. Looking good. We have loaded an image, size function. Now this is where things are a little bit weird because the library as all node libraries are a little bit old and have callbacks but the cool thing is, promiseify the function I loaded from node eight actually works on libraries as well. As long as you've conformed to the standard callback pattern that node has, this is gonna work. So I'm gonna call image.size bind image so I pass on the function. It's gonna turn that function into a promise version and then I can do with height await sizefunk. Why are you doing all this awaiting? Why don't you do it sync? Because the library is not synced. That's how callbacks work. So this is gonna, ooh. If you would have done it sync, it would have been fine. No, I'm kidding. I'm using await inside the map callback which is not an async function. So I'm just gonna make it an async function and for that to work, I also have to do a promise.all because now all the array elements are gonna be promise values. There we go. This should work again. Cool. Cool. So we see we have four image on our page and we have four widths and heights. Magic. That's why it's called image magic because you just do some code invocations at some point you get what you actually want. Now we have to, now we talk about something that I really like, the- Animations?  No, not yet. I'm gonna talk about the aspect ratio hack in CSS. Ooh, we can ask Google. We can ask, we can ask. Go for it. I don't understand you. Accent. Down. Hey Chrome home. Bleep. How does the aspect ratio hack in CSS work?  So you have an element and it has another element or pseudo element inside it that has a padding top that is the aspect ratio that you want and then within inside it you can use absolute positioning to keep something the same size. Everybody totally got that. That was well explained. I'm hoping the code will now actually show how this works. So the weird thing is when you define a padding top, a percent in percentages. So padding top 50%. That 50% is not the height but the width of the parent element. Don't ask me why, but that's how it works and the cool thing about that is that we can say here, actually I should be using a temp attack that this we can abuse this basically to define an aspect ratio because what we're gonna do is we're gonna do height divided by width times 100 in percent. And that means the wider the image is it will grow in height as well because padding top is proportional to the width not of the height. This hack is also really good for iframes whenever you're loading like a YouTube video that you're importing and it's always a weird aspect ratio. Do this, do this for everything. So just to show that this is actually working. I'm gonna, I'm replacing the closing characters of the elements to inject some styles which I actually- And the closing. Yes, like this. Let's take a look at this. Okay, so you can see we have injected percentages successfully. So let's look at the actual visual version. Not quite what I was going for but we can probably fix that with some styles. So we're gonna do position relative. And so the problem right now is that we have a padding on these elements and the contents of the shadow DOM are being pushed down by the padding which is not what we want. So we're gonna just absolutely position the shadow DOM image inside at the top and at the left so it doesn't really care. What? Oh, I think it rolled so fast. There we go. And because we can't really see it I'm gonna slow down the network which where is it? Is it down here somewhere? Oh, there it is, network conditions. Let's do it on slow, fast 3G, I think should be good enough. So you can see the rectangle is there even though the image is not loaded and once it's there it just replaces the right rectangle which is still underneath there technically but now we have images that consume the space the image will need once it's loaded. And that's something the native image tag doesn't do. It does not. I mean you can use the same tag on the native image element. You can just define a padding top but I thought that this was a really neat trick to show off.  That is the best part. If someone loads the page at the bottom for some reason and scrolls upwards stuff is not gonna jump around because the images already allocate the space that they need. The only thing I dislike about this is that they kinda like the red squares. They're very annoying, yeah. Yeah, so. I'm gonna steal a question though first. Go for it. The question was what does the host selector does? Oh, that's a good question. And that is, I'm gonna take that one. Go for it. But basically it's just style the custom element itself. So if you think of a custom element it has basically like its shell of a custom element and host is that element itself, not the things inside of it. And something you can do, fair warning, is if I'd written it like, oh, actually I should have put it down here. Something like this wouldn't work, I think, because you cannot really, would this has worked? That definitely works, yes. So it's a function, I guess. Yeah. It's like a pseudo. It's not a matcher in the classical sense. So that's something to look out for. It also can't go down multiple children, I think, only top level children. It's a little bit iffy, but we have good documentation on the developers.google.com slash web, which you should totally go to and read up on this. And yeah, as I said, these red squares are a little bit sad. So what I'm gonna do instead, I thought, we could also do. An animation. No, not yet. But maybe later, maybe I will humor you. You're not a one-trick pony. I thought I would do the medium bit, where they have the blurred version of the image. Like a low res, base 64 image background from Twitter suggestion. Do you think we should do this Twitter suggestion? Someone has been thinking along, I like it. That is exactly what I'm gonna do. So we are gonna generate a thumb. And because, as I said, the library is async, we have to create a new promissify function again. So I'm gonna call resize. Dot to buffer, dot bind to the image, because otherwise it doesn't work. And then our thumb will be the thumb, thumbfunk. How do you say thumb in German? Chrome home. Hey, Chrome home, how do you say thumb in German? Ein thumb. It's actually Daumen, but that's all right. So I thought I would do a thumb size, because we can probably play around with the resolution a little bit, so I'm just gonna put it here. Thumb size is gonna go with eight, because that seems reasonable. Thumb is now the image buffer. Actually, that's not true. Or is it? That is something that needs to go here, if I remember correctly. And here we just say PNG. There we go. Do you have all your brackets? Do you need an extra bracket? I think so, I think I'm good. It's not complaining. And so our thumb URL, what we're gonna do is we're gonna encode the thumb version, as you already hinted at, as a Bay 64 inline URL, because we don't wanna wait for the network to load a low-res version, so we can then show the high-res version. So we're just gonna put it inline into the document right away, so when the HTML arrives, we have something on screen, which I think is a much better experience. So the thumb... Somebody on Twitter wants me to do the animation stuff. You guys, I don't know how to animate anything. Like a transform is too hard for me. I really should, it is. It's too much transform today, I think. Yeah, I know. To string and luckily note, in contrast to the web has just to Bay 64, which is really convenient. And what we're gonna do here is we're gonna do, say, our background URL, background image is a URL, and in here we're gonna do thumb URL. Boom. This looks about right, I think. I'm still on the slow network, so we can actually see the loading pattern, or I'm actually did a mistake. I probably did a mistake. Thumb URL is not defined, why not? But it's right here. Oh, that is, it should just be thumb. Thank you. A Zehen-noggle, Zehen-noggle? That wasn't quite what I was hoping for. I think it's actually correct because it's just an eight by eight image tiled all over the place, but that's not the visual we were looking for. Gotta stretch that out. So what I'm gonna do in the inherent styles, I'm gonna say background size is 100%, 100%. So we're on fast view, and this is pretty good. But now, your moment, what could we do next? I'm gonna answer a question from Twitter. Okay. One of the questions was, why didn't you just distribute an image as a slot in here? And that would be annoying, wouldn't it, for every image that you wanted on your screen? Yeah, also that wouldn't be framework compatible because then if you whenever you have something like VDOM, it will just eliminate the image out of my turn. In general, it is rarely advisable to just sprout new children into a custom element dynamically. No, but you could have had the SC image, and then you would also put, you was the page author, put your image in there. That's just annoying. You're writing the image twice. Yeah, no, I like this better. Yeah, just do it as a child. To be fair, that would work as well. The shadow child. I feel like it would be more work for me. I would copy and paste it twice. I could see a SC image, and then an image, and then a SC image, and then an image. Okay, so I'm gonna ask you again, what could we do next? Put on your hat and get a clap out of people? Yes. I genuinely don't know the answer to this question. Because I think people might not be quite awake. It still works. Okay, so I'm gonna ask you, what are we gonna do next? But this is your moment. We can do some animation. We can do some animations. And actually, it's gonna be super, super easy because the thing that annoys me a little bit is you have this nice blurred version, and it's gonna be like, pew. That could be a little bit nicer. Are you gonna do a transform over there? No. Dammit. You're wrong. So what I'm gonna do instead is, we are just gonna- You guys, there's a fight on Twitter about how to properly translate thumb and thumbnail for the record. Ooh. The- I'm gonna get in on that later. Yeah, yeah. So I'm gonna define a keyframe animation, which goes from opacity zero, and that's it.  Nobody knows. So I'm gonna put this on the image. And the nice thing about this is that this way the browser will know it's an animation, it will do the whole promotion to its own layer and make it fast, and then, and then, and then. And if you're writing production code, you'll put all the other vendor prefixes for keyframes and all that jazz. Well, you have tools for that, right? Like, I don't write those by hand, but- I do. Like an antelope. We have forgotten the most important thing about Supercharged. This is not production-ready code. Don't copy it. We never do production-ready code at Supercharged. This is about concepts and, you know, like things you can do on the web, but you shouldn't be copy-pasting this. There's, we didn't do accessibility. We didn't, we did not do accessibility. I didn't, like, reflect on my properties correctly. I only have getters and no setters, which is also not nice. We're not even handling if you change the source on an element. Or if you're, like, scrolling really fast and you're creating children a lot. Yeah, let's, so I wanted to show you how it can be acceptably easy to load dynamic images lazy and have a nice transition on it, not to have an element that you can use everywhere. But still, I think the concept is pretty interesting. So the last thing I'm gonna do is I'm gonna put an animation duration of five seconds on it, mostly because I wanna see the thing happening, not because five seconds is a good value here. But this should be enough to actually have the image just fade in because by default, the opacity default value is one. So that's why I could leave out the two because it's gonna transition to the default value. And secondly, animations don't loop by default. So I don't have to worry about the fade going over, which is gonna fade to the end position and stop there. So hopefully, we're gonna see a blurred image. It's gonna load and then it's gonna fade in, right? And we scroll down. We can actually do the throttling now because we don't wanna wait that long. We see the next image and it's gonna fade in. And that, I think, makes a much nicer experience. That's wonderful. And just because we have a couple of minutes left, I'm just gonna show you one thing. If you're more into the pixelated look, one property is all it takes. And I'm wrong. Sir, I'm gonna get on. What is it? There you go. And that is something when you increase the resolution a little bit on the thumbnails. Let's go to 16 by 16 because why not? You can actually see the patterns already emerging a little bit, which also can be a really nice look. And I think I'm gonna stop here. I'm gonna push this code up on GitHub as we always do. It's on github.com slash Google Chrome slash UI element samples. But we're also gonna put it in the description on the video. Thanks everyone so much for watching this, for bearing with me through all the weird phases of this. It's beautiful. Thank you for handling the Twitter and confusing the hack out of me and making me use the hat twice. Thank you for clapping along. Could have been third times. And if you have any questions, ask me on Twitter later or I'll be around a little bit more. Thank you. All right, one session left. So hi everybody, my name is Taylor Savage. I'm a product manager here at Google and I work on all the different open source web developer products that we build as part of the Chrome team. And one thing that I really love about working on open source products as a product manager is when you work on a typical consumer product, you're working with an engineering team, you're building a product and you're shipping it directly to users and it's kind of a straight path from you as a team, as a product manager to your users. On a web developer product or on a developer product in general, we're working on this product and then we're shipping it kind of out into the wild into this crazy, messy, insane, fun, creative ecosystem of developers, all of you, who then ship products to users. And so the coolest thing about that is the products that we build on a developer product team are just kind of the beginning, just the seeds. And it's really you, it's the community, it's the ecosystem that's actually building the product in the end result that gets shipped to users. And you make our product better. You make our product better through using it in creative new ways, through extending it, through taking ideas and building new things, through building completely separate things and making our ideas better. And so one of the things that I really love about this Polymer Summit and these developer community events that we do is this opportunity, this amazing opportunity, a totally unique opportunity for our team to meet all of you, to hear how you're using our product, to hear the problems that you run into, the problems your users are running into, how we can make our things better, how we can help you do your jobs more efficiently and more effectively. And that's really, really, really special to us. And so we love being here. We also love that the events team that puts this on is the best in the world at what they do. They do such an incredible job organizing this summit. So a huge thank you to the events team who put this on. And so we like to, at all of these summits, make sure that we kind of return the favor to all of you and all the feedback that we're getting for you and opening up our team since we're here and since we get to be right here with all of you in the same space. To questions, to the questions that you have, peek inside some of the things we're thinking about, some of the concerns you might have, some of the issues you're running into, some of the things that you wanna know about how our team is thinking about building the next set of products that we're working on. So I always like to do this panel at the end to kind of open up that opportunity and end with a big conversation among all of us. This is really our engineering team, all of us here working on building products that we ship to those end users. So I'd like to welcome on the stage a bunch of people from Polymer Engineering Team to answer all your questions. So first, Justin Fagnani is an engineer on the Polymer Tools team. Monica is an engineer who you've met many times today and yesterday on the Polymer team. Rob Dodson, developer, advocate, extraordinaire, expert in all things web and general internet celebrity. Wendy Ginsburg, the product manager on the Polymer team itself who gave the keynote yesterday. And Steve Orville, the mastermind, one of the masterminds behind the Polymer Core Library and engineer on the Polymer Core team as well. All right, so we have two microphones, one microphone up here, two microphones up here. So please come up, ask your questions. This is an open space, this is a safe space. We love being here with you.  Please come up, ask us anything. You can also tweet at us at the hashtag AskPolymer and we're looking through those tweets live and so I'll be looking through a machine up here to try to get some of those questions delivered to our panel as well. All right, great. So to kick us off, I have a question in the barrel, which is that lots of exciting stuff coming out yesterday and today with Polymer and NPM and ES6 modules, lots of excitement about how to develop components. Also a little hesitancy for a lot of folks who really enjoyed being able to author HTML in HTML. So is there anything that you're thinking about in terms of how we can kind of better support that use case that has been so special to so many Polymer developers of authoring HTML in HTML? Please. Yeah, so I mean I first want to say that we hear you. We spent a lot of time yesterday and today talking to people who were kind of lamenting the loss of authoring in HTML. And it kind of makes sense because that's something that's been a little bit unique about Polymer and you people have chosen to use Polymer and that's why you're here because you like it a lot. And so it's definitely got us thinking about ways we can help support that kind of style and that kind of workflow even as we move to JavaScript modules. It's important to note though that also our philosophy of using the platform kind of means that like when the platform gives us a tool and in this case kind of denies us another than one that we were hoping to use. Our choice is in a sense made for us a little bit. We have to go to JavaScript modules because that's the native loading solution on the web. But we can look at ways to kind of layer the project and provide ways to have some tooling or something like that. The important thing is that Polymer 3.0 is very, very early in preview stage. And so there's a lot of time for feedback and a lot of time for experimentation with solutions to give you the ability to write HTML and HTML. So the actual Polymer part is the same. Yeah, I mean the actual string that you write is the same template. In fact, you could draw a line from every line in a HTML import to a line in a JavaScript file and there would be a one-to-one correspondence between every line in there. We're just following Sember and that's why you have to bump the major version. Yeah. So we hear you, we have some interesting ideas on how we can serve the best of both worlds. Yeah, I just add quickly that, you know, again, based on feedback, the reality is that JavaScript modules are here today and we wanna support them, you know, but there's some spec work potentially to develop an HTML extension to those modules. And that's something that we'll be thinking about and evaluating and seeing kind of, you know, if our users are really clamoring for HTML. On our own team, I will say that there was definitely a bit of like difficulty ripping that band-aid off, but we're also excited about some of the new things that modules are gonna provide. I mean, Lit is an excellent, interesting direction and we can't do that in HTML. So, you know, we're gonna be experimenting and listening for feedback. So a closely related question that should hopefully be quick. If I'm working on a new project right now, should I target 2.0 or 3.0? 2.0, definitely. 3.0 is very, very early. And the other thing to note is that when we published Core and all the elements, those were literally converted automatically by a tool minutes before we published them up. It was like one process. So if you're on 2.0 and you keep pushing forward and you do that, we're gonna take you to 3.0 automatically. Fun fact, you can tell that they were published while we were here because we got rate limited by GitHub on the conference IP Wi-Fi so that if anybody was trying to use the GitHub API, you couldn't do it because Justin did all of it. No, we used the GitHub token. That wasn't us. There was just so many people in the code lab.  Yeah, I think a little bit of straight talk to steal Gray's term is we're really aiming, as Justin said earlier, to not change the API between 2.0 and 3.0 just as little as we have to, absolutely have to. And actually Kevin's app that he built, he transferred the whole thing using the tool that Justin's team has built. And it had some bugs for a while, but the latest version worked pretty seamlessly. And the kinds of, I mean, I think Justin sort of obtusely mentioned we're changing as little as we can, or maybe it was Fred, we're changing as little as we can. Honestly, let me give you just one example. There's the Polymer import href. What did that do? It created an HTML import. Well, there's no more HTML import, so you have to do that differently, right? This is like about what we're gonna change. That's the only change really. Yeah. And in fact, this brings up a good point. If you're vending open source elements out there, we actually recommend that when you use the converter, you do not change the API of your elements at all. Treat them as having the same major version, even if you bump the major version because it's now modules, because that means when your users run the converter, they will automatically be compatible with your element. So we look at this transition as not really an API breaking change, it's just a repackaging. All right, let's go to a live question. I have a question regarding tooling and improving developer experience. Is there any opportunity you are developing and to have provided hot module replacement? Like you are coding and you'll immediately see the changes in browser. Oh, hot module reloading, yeah. That's a tool's question, doesn't it? Yeah, I mean. We don't have any work planned on that. There are several ideas on how you can do that. One of the things with hot module reloading is you often get into a problem where if you're replacing some JavaScript, it's hard to, huh? It's hard to replace the state that might have gotten in a certain, you know, states through some path of code that you took. So I was just talking with some people today about ways we could make templates auto reload. And Kevin's been looking at using Redux, which, you know, has some facilities for that kind of stuff that can replay your state. We don't have any media plans, but it's an interesting and open question. Yeah, I mean, I will say that Kevin kind of alluded to in his talk that we're considering ways, you know, we're not really prepared to say exactly what we're ready to build right now, but we'd like to improve the overall developer sort of end to end experience. And, you know, Kevin demonstrated using Redux as a good way to do that. And a tool like that works well with something like hot module reloading. And, you know, this is something that I think we can explore without really committing to anything. I mean, frankly, I think we'd love to be able to build something that community can also contribute to, and you know, if that's a useful feature, that's great, thanks. All right, so we have another question about tools, which is what are the plans for all the various tools that Polymer Tools Team builds when it comes to Polymer 3? So with Polymer CLI, what's gonna happen with Polymer Bundler? Will it be replaced by Webpack Plugin, et cetera? Yeah, so there's a little bit to be figured out there, but I'm kind of on the mind that we have two different paths to explore here, probably at the same time. One is we have existing customers who are using the CLI and who are successful and happy, and we wanna keep them moving forward into this world without them having to ditch our tool chain. So we have been adding support for NPM. We now have an NPM flag on the CLI and PolyServe and WCT, and we'll probably try to add support for modules as an incremental choice that you can add into your project as you go. But we also want to enable people to not have to use our tools because we're so different from everyone else, to be able to use Rollup and Webpack and all these other options that everybody else has out there. So we're definitely gonna take care of you and keep our tools moving forward. It could be we're looking at opportunities to replace some of our custom stuff as something that the community already has, so we have to do less work. But we're also going to explore the idea of, if you have an existing project and you wanna sprinkle Polymer in, you can do that without having to buy into our tool chain. Make Rob happy. With Polymer 3 and the transition to NPM, what was the kind of reasoning for choosing to go with yarn and a flat dependency tree as opposed to using NPM and peer dependencies? Um... Sorry. Getting all the questions here. Happy to do it, though. It's really the platform again. A lot of people kind of think they've been using JavaScript modules because there's been support in all the compilers that will turn ES6 syntax into a common JS or something. But it turns out that the web compatible modules are a little more restrictive than what people have been using, say, in the Node or Webpack ecosystems, and they require that you import by path, just like HTML imports. And so HTML imports and Bower worked well together because Bower installed flat, and then you can import Polymer by importing ..slashPolymer, right? So we have that same situation on NPM. JavaScript modules require importing by paths. If you wanna import from another package, you do import ..slash and that package name. And that kind of forces us to have packages in a flat layout. And Yarn does that, NPM currently doesn't. I hope they consider adding that feature and then we'll be able to use the NPM client as well. Yeah, I think there's really two reasons. Number one is, custom elements have a, when you define a custom element, nope, that's used. You can't use it again. So that doesn't really work well if you have to be careful about that. So loading a dependency twice is bad for that. The other reason is loading a dependency twice is horrible for performance.  When we install flat, we ensure we don't do that. I think actually it is worth pointing this out a little bit. So it's also important to understand that your client side dependencies, you definitely want those to be flattened as Steve was saying. You don't wanna ship 10 versions of the same thing to the client, that sucks, right? Your dev dependencies, all your build tools and things like that, those can actually still have the nested node install. And so there may be a little fine tuning that we need to do here to make sure that it's very easy and ergonomic for developers to sort of be like, okay, cool, I flattened my client side stuff and I. One of the things you tried out was different folders. Was a subfolder. So these are my client side dependencies. These are my normal nodes or build or whatever dependencies. Flood in one, dole flood in the other. And we still have a lot of work to give everyone templates that they can start from that are set up to serve and build in the proper way. So we'll be coming out with that in the coming weeks. Yeah, but just personally, even though there is a little bit of work and overhead involved sometimes in flattening your client side dependencies, the flip side of that is, I think with Webpack you have the, what is it, the common chunks plugin or something like that.  So you're doing it one way or the other usually and personally it seems like doing it as early as possible in the install process is a good thing. Let's jump to a question from Twitter which is what about accessibility? So how does Polymer work with voiceover and screen readers in general? Yeah. Okay, hi. So how does Polymer work with accessibility? I mean, generally like fine, I can't think of anything that is painfully broken. The biggest issue is going to be around Shadow DOM. So most of the stuff that we do in accessibility to build relationships, so you say for instance, you have attributes like are you labeled by and things like that where you actually say, this element is labeled by that other element and you use an ID reference to that other element. So literally like CSS ID reference, right? The challenge there is with Shadow DOM, right, you're creating this little scoping bubble, your IDs are scoped to that bubble and so you can easily end up in situations where you've got something in the Shadow DOM that you would really like to label or you'd really like to refer to with like ARIA controls or something like that and you're unable to do it. You just like can't get down there. So there are a few things that we're working on to fix this that aren't actually like Polymer specific, but are just like web platform stuff. So probably the most important is the new accessibility object model, which you can find that on github.com slash WICG slash AOM AM. And this is basically like adding a programmatic API to accessibility and making it a lot easier for you to imperatively like set up relationships in JavaScript between elements and say like, hey, I've got this element here and I have access to its accessible node property and I can actually then give it a, an actual like node reference in JavaScript and I could, you know, hop through Shadow Boundaries and things like that. That's probably the most important thing that I think we're doing to fix this and that'll help web components obviously, but it'll also just make accessibility more broadly across the platform easier for developers, I think. Let's go to a live question. So when I started using Polymer was because I could just serve up data on a flat with just nginx or a static server, but most of the examples I've seen now or over the past year have always been through a dynamic node server or something like that. So I just wanna make sure that, you know, one of the, that's gonna stay in Polymer that you can just serve from a static server. All of the things that I build are always from a static server. That's like a moniker rule. So they always work. The only time I do extra things is to bundle, but there's no requirement, it's just in boards. And that's one of the reasons why modules require paths is because the browser needs to figure out the exact URL to load and then with Yarn Flat, it'll be able to find it and load it. Yeah, I mean the one thing I would add is because of the way that custom elements version one is defined, because of the current existing browser support and because of our desire always to ship really optimized sets of code to the browser, we do sometimes what's called differential serving to serve just the right bundle. You know, like for IE 11, we can't serve ES6. This is why we will sort of provide tools to let you serve the optimized thing. Hopefully that's gonna go away soon. The next year or two. Got a lot of questions. I'm really happy with all the tooling and documentation you guys have provided to help move users from Polymer One then to Polymer Two and now to Polymer Three. It's like, you know, really made it as turnkey as possible for folks like myself. But my question is, you know, there's still obviously a lot of projects and code out there with Polymer One still and using the zero dot X web components polyfill. What do you guys have in terms of a long-term support strategy or end-of-life plan for Polymer One and obviously eventually Polymer Two and those zero dot X polyfills as well? Can you repeat the question for anyone watching on my video or live stream? Sorry. Sure, I mean, Taylor. Yes, so question was around end-of-life support and just general kind of long-term support for Polymer One and polyfills. Yeah, I mean, so basically there's the native features that we rely on is one part of the question and you know, this is sort of web standard practice, right? Those will not be removed for centuries probably until like that we actually do crazy stuff like, you know, how many people use these things? But so those won't go away really. And you know, Polymer, we are supporting hybrid mode. So I think I can't say exactly but we intend essentially to kind of adopt a similar policy where as long as there's need we'll continue to support it. Unless Taylor tells me differently. Does that also include the v0 shadow DOM implementation in Chrome? That's a good question. Yeah, I mean, this is really what I'm speaking to you. I mean, the policy, basically one of the reasons the web is great is cause it really doesn't break. And you know, Chrome kind of leapt ahead of everybody with v0 shadow root and you know, this is gonna be available as long as people are using it. Cool, thank you. The way features are removed from Chrome is that we keep tracking them. We have a percentage of pages that are using it. You can see that as well. Sorry, that's not public information. Chrome status. Chrome status.com, yeah. And they have to drop below like a, I love very small threshold, like 0.03% Yeah, 0.03% of all pages are using this feature. And if it drops below that, then you're confident enough that it's basically just like old pages or unused pages or just we're sorry we're gonna break you. So I don't think we're nearly close enough and we're not, there's no chance we're gonna go there in the next years. One thing that is happening soon that's gonna make Monica excited, but. If anybody was here still on like 0.5 or anything and you're using the deep selector in CSS. Or the shadow selector. Yeah, that too. Those are going away very soon in Chrome and that will change the styling of your page. So we've been trying to urge people to get up to Polymer 1.0 and stop using that for the last couple of years, hopefully you have. They're basically getting replaced by the descendant selector. So like it's not gonna make your style not get applied but deep is just like it becomes a descendant selector. So it's not gonna go into shadow roots or anything like that. Yeah, there's been a little warning in the console for quite a while, but it's very, it's weird. I have this like innate reaction now. I see the warnings and I'm just like. Clear. So like do it. It's gonna break you. If you were like me. So you're still triggering the warnings? No, no. Rob. But like if you're like me, you gotta fix your stuff. Yeah. Definitely going to break. It's definitely getting removed. Luckily I've seen some sites that hopefully they've moved. It doesn't break them that bad. Little tweaks. All right, let's jump to another Twitter one. How optimistic are you and what are your feelings about other browsers agreeing to native element extension? And what can we as the developer community do to help? Are we gonna do is equals? Is equals, yeah. I will take this one. My cross to bear. Is equals is a great idea where the idea of extending a custom element or the idea of adding your own set of functions and behaviors and prototypes to a native element. This idea, very clear here, is agreed on by all browsers. The implementation of this idea is not agreed on by all browsers. So the current is equals implementation in particular is not, is very content, like content is, and is not agreed on by all browsers. And this means that we would like to, we will continue fighting for something like is equals. It will probably not be as equals in the state that it is hilariously enough as equals is a likely contender one letter off. But basically there is a need for extending custom elements. There are things that you cannot do unless you are a native element. For example, submit forms. So in parallel with us fighting for this API to actually work, we're also fighting for browsers to actually, you know, just fix the form element. Form elements should look at custom elements. There is no reason why the form developed 20 years ago should not look at something developed now. So it's a hard question. We're working on it. We're trying very hard to write specs where it's an ongoing battle. I think one of the things to, I'm not, I don't know if this is entirely accurate, but I'm gonna say it on stage as if it is. If you add a shadow root to an element that you've type extended, like, so let's, one of the things is like, oh, select, right? Select is amazing. And it has all this built-in accessibility and presentation to it. And my understanding is if I extend that and then add my own shadow root, like all of that goes away. And so it's- It doesn't even work. It doesn't let you do it. Yeah, okay. It just dies. So there's a lot of things that you might think that you wanna do with is equals that actually just aren't gonna quite work. And so then it does become a bit of a weird API where it's like, you get some stuff, but not all the stuff. And the browser's not very good at pinky swear. Like, I pinky swear I'm not gonna do bad things because I've read there's these 20 things that I can add a shadow root to, but not these other four or something like that. Yeah, so I definitely think, personally, yeah, I want just them to sort of expose the primitives or fix the elements. I want the label element and the form element and all these things just either just work with custom elements or let me sort of imbue my custom element with formness and labelness and labelability and things like that. And one day, one day this will happen, I promise. I'll just add, personally, I'm not very optimistic just speaking for myself only. Again, because I think this concern, for example, that Rob brought up around shadow roots is a really good idea of the larger problem. In v0 custom elements, you could extend input, but you couldn't add a shadow root to it. So what you could actually do, it was kind of limited. Why? Because it had this native legacy implementation. And this is really the larger concern is that these native elements have this long history of C++ implementation and crazy specs before custom elements was even a thing. So the long-term fix is to expose those APIs and make those available to any custom element who wants them. And maybe there's a shorter term fix. It probably isn't gonna be is, it may be some crazy thing. And we know that people really want this and so we're definitely kind of got our fingers on the pulse of that and we'll be pushing for something. Because I think the exposing the guts of input so that you could do it all yourself is probably a 25-year project. Yes, so we probably need something in the meantime and if is is objectionable, we'll be pushing and sort of pushing people for some better solution. And I'll give a little shout out to Marika's talk earlier today. All of these discussions are not in some secret back room. These are all happening out in the open on public mailing lists. So if you have good use cases. And on GitHub, yeah, on GitHub. So if you're really passionate about it, please go and tell everybody you're very upset that is equals is not a thing. Because. I was gonna say specifically W3C, or github.com W3C slash web components. There you go. Voice your complaints. It's the only way we get things done by proving that you actually want something like is equals. They don't believe me. All right, let's go to a live question. Thanks. So my question was in fact related to the previous one but first I'd like to thank you for letting us use the bleeding edge of this back right now before it was recommended. And given the is attribute is gone, what's the migration path that you would propose to the currently implemented elements that are using is attribute, especially those that are using specific parsing context like templates, script, table, TR, and so on and so forth. Do you wanna repeat the question? I think we're getting it from the bigger mic. Oh, okay. So thing that I did with form for example, so our inform was an extension of form, you convert it into a wrapper and then you put content in it. So basically all of the extra is equals things that you were doing you put on a wrapper element but that for TR is kind of... Yeah, tables are tricky. Tables are tricky. But remember that you can style things as tables with CSS so you could move to a different element. You can style things like a template type. Oh, what's right? Template type. Yeah, you cannot. So yeah, I mean what Polymer did, I mean, yeah, it's not super pretty, we're not gonna lie, but this sort of decoration pattern is essentially, this is what Polymer did with like, we used to in Polymer 1.0, we had template is DOM repeat. We, for sort of compatibility, we did some magic where we sort of made that work in Polymer templates in 2.0, but the way that we actually make that work is we have a DOM-repeat element, it expects a template inside of it and it works that way. This is a general pattern that's gonna basically work. Again, it's not super pretty, but it's what you can do. Great, thanks. Thank you for this sound, it was great. It was great, sure. Yeah, actually you need to bring them back. Yeah, why not? That's a gesture. On the Polymer project website, there's still a mention about an upgrade tools to 2.0 from 1.x. Any update on this? On the upgrade tools? Yeah, there was a mention about the upgrade tools from 1.0 to 2.0. Yeah, so you know, last year we said we're gonna make this upgrade tool and then this is kinda my bad a little bit and it seemed like most of the feedback was like, oh, it's really easy to upgrade and the things that were tricky to upgrade were actually gonna be impossible for a tool to automate. Things like converting a content tag to a slot tag where the content tag actually had a selector. There's no way we can just automatically determine what the slot name should be everywhere and apply it. So it seemed kind of to us for a while that everybody that we were hearing from was kind of satisfied with how easy it was to upgrade and then it seemed like more recently we heard an uptick in a number of people who were asking about the tool and wanted it. So also recently we started converting all the internal elements inside Google from 1.0 to 2.0 and Peter, an engineer on the tools team has been working on the tool quite recently. It's not a very clean code. We've just been like hacking at it to do whatever upgrade we could and so we're planning on releasing the version that we have for internal external pretty soon. Okay, then do you have a suggestion to lend old element to find quickly what has to be changed to zero, right? Rather than going to each element and searching for specific things but something too late so it's highlighted. A way to highlight in your code what should be changed. Yeah, we can certainly, if there's cases where we can't determine what it should be, we can output a message that says this needs to be updated by you. Okay, thanks. All right, we're running long time. Let's do one more live question. Hello. My question is, do we have any tutorials or videos for the making something like neon animation because we really love the neon animations in the polymer one? I think the question is about neon animations and its future, right? So is it, if it is, we have a blog post that Elliot wrote, you probably saw him on stage before on the Polymer Summit site that kind of explains what happened to neon animations and what's going to happen to neon animations? Yeah, so my question is like, is there any, some new videos or tutorials like neon animation because in the version too, it is duplicated, right? Will there be replacements for neon animations as well? Yeah, exactly. I don't think, so the problem with neon animation is that it's fundamentally a flawed concept that we thought was going to work in dozen. It doesn't actually add anything in the current state that it is amazing to the web animations polyfill API and we had a team, the team that actually works on the web animations API, look at making a new and better neon animation and what it ended up being was the web animations API. So it turns out just like, a declarative rappel would be amazing but it just doesn't really work well and if you want, it's just a jar of spiders. Yeah, I'll also plug Valder and another engineer on the team made a code lab for performant expand collapse animations and just by going through that, you can see something pretty typical that anybody would want to build and how he does it and then you can learn yourself and maybe apply that to some other projects. Thank you. Let's close out with a question that I love which is what would each of you see as your number one request or a current hole in the web platform, a feature or some change that you would like to see made to the web platform to make it better? There's two, I'll go one and hope somebody else does the other one. I think right now for web components, we're looking pretty good with native implementations at least in Chrome and Safari. The one piece that seems to be left to make everything much better is the theming support in CSS for Shadow DOM. So that's the part and theme CSS spec. It just got promoted to a working draft or editor's draft. That was a good one, I want to have one. Oh, you want to take the other one ahead? No, it's fine. Okay. So yeah, that would just help everybody's theme across their Shadow Roots. That was mine. For better or for worse, for some reason, I care about inputs and forms despite never actually using a form on anything that I've ever made. So what I would like to see in the web platform is input being less opinionated and forms being less opinionated about their tag names. So form caring about more than just input and input type equals color actually working on all of the browsers, because it's not yet. Yeah, form and input. I would like form and input to succeed at their job. Yeah, so mine, it's kind of related to that. There's a lot of things that native elements can do. There's a lot of built-in magic. I've been working on accessibility a lot, the how-to components that we all worked on. Accessibility was like the primary driver behind that work. We were like, how do we build tabs and trees as custom elements and make sure they are like really robust and accessible, right? Fully keyword accessible, doing all the right things with ARIA, everything we can possibly try. And then there's still places where we come up short because there's some stuff that we just can't do in the browser today, the label element and things like that.  That's a cool magical behavior that like, there's no easy way to get that. You're gonna have to make your own custom element label now. And then you end up just reinventing like all of HTML to get all these little features. So I'm really excited about AOM and other stuff like being able to hook into forms. I think these are probably some of the most common things folks have brought up and we've kind of been pushing for them for years. I actually think people are listening a little bit more right now. I think forms are actually a good hope. I think we're like finally getting through to some folks there. So yeah, that's really what I want. I wanna make sure the future of HTML is accessible and that's easy for developers to do that, to do the right things. And it's not like this arcane art to make something accessible. I think that the biggest frustration I have is when there's like a really cool feature and not every browser has it, of course, trying to bring down polyfills and I think a way that that could happen is oddly enough through payments and commerce on the web because the more we allow users to buy things and spend money there, the more companies pay attention, large companies that have tons and tons of sites and have tons and tons of developers. And so we can start doing more stuff with payments. I know that Chrome payments just came to desktop. We'll start attracting a lot more attention and then hopefully companies will start putting a lot more attention into their browsers or paying attention in standards meetings and stuff. Yeah, people on the team know that the thing I care about sort of the most is performance and I think I've said this before, but I think with Custom Melons we have an opportunity to add things to the browser that makes it faster, makes us able to do things in custom ways faster. I care about this for a couple of reasons. Obviously I want things to be faster so that we can all make stuff that's awesome and better for users, but there's another reason. And you heard yesterday in Alex Russell's talk, he's talked a lot about mobile CPUs. Now he only talked about that for like five minutes, but he works in the same office as us and we have to hear him talk about that for like hours and hours and hours and hours. And I would like to have things faster so I don't have to hear that venting much anymore. Alex, he's joking, we love his talk to us. All right, great. So Matt's gonna come on in a second with some closing remarks and some very important announcements. So please be sure to stick around. But thank you so much to the panel. Thank you. All right, so we have an odd tradition apparently in these Polymer summits. So if any of you are here last time in London, you may recall that a few people joined us with just about an hour to go after going through a pretty crazy, hellish airport experience for a couple of days. So this year we've managed to do something even better and a few people showed up, two of them in fact, just about an hour ago on a sailboat from Germany just to join the last hour. So I wanna give them a brief hand and not to repeat Taylor too much, but first I wanna just say thank you very much. This means very, very much to us as a team. This is the highlight of our year. It's turned into that. We were, the first Polymer summit we did three, two years ago actually, we had never actually put on a developer event before. We've got an experienced team that helps us and makes us look all slick and professional, but we had never done it. And now it's really the highlight of our year and it's what we plan around and it really means a lot to us. So it means a lot that you're here. It means a lot that more people were at this one than ever before. Despite the fact that we're in summer and in fact we're in Copenhagen's a little further away for some people. So that's really, really, really awesome. So just a few things. So one, I wanna give a huge thank you to the speakers and the staff. We're gonna do a little bit of a camera work with this one so if we can do an extended cheer that would be great. So let's give everyone a big hand. Thank you very much. So we have two different events we need to tell you about in just two weeks on the 5th and 6th of September in Krakow. There's a Google developer days. Look that up on your favorite search engine. Hopefully it's Google, tickets are still available. And then it's starting exactly two months from today on October 23rd and 24th. We're gonna have the fifth annual Chrome Dev Summit. We'll be there. It's back home in San Francisco. Tickets are available on August 30th. You are the first to hear that. So definitely show up and see us there. We'll be there. We'll be eating some talks and a lot of the other people including our Polymer home, Google home will be there as well in person. So just two last things. One is the survey that you got in your email just a few minutes ago is really, really important to us. We take it incredibly seriously hence the wider chairs, hence the more bathrooms but even the content. I actually personally read every single response we get and so do a number of other people. So it's really important if you can fill that out that's great for us. It helps us improve these events going forward. And then the last is one of the other odd traditions we have. The very first Polymer Summit, we ended up giving away a lot of the bean bags and pillows and everything else and people started tweeting them going home and someone tweeted a picture of a Polymer Summit bean bag going around like a luggage carousel at an airport. So we give these away each time if you want a pillow or anything. I think there's only a couple bean bags left already because people have already figured this out. They're at the swag table. And that's it. Thank you very much. Hope to see you next time.


How to bypass screen time on iPad Resetting a time limit on games and apps by simply re-downloading them from family shared accounts When the time limit is up, kids are just uninstalling a game, or an app, from the device Then they run App Store, clicking on Cloud icon at the right top that provides access to other iCloud accounts inside Family Access Then kids can reinstall the same game from their parents account by finding this app and clicking on the Cloud icon Solution Disable installing games and apps at all by disabling App Store itself To do this go to Screen Time, Content and Privacy Restrictions, iTunes and App Store purchases Installing apps and select Don't Allow How to bypass screen time lock on YouTube App using iMessage While YouTube App and even Safari Internet Browser can be locked, disabled or even uninstalled, there is still a walk around that uses iMessage Solution Uninstalled YouTube App from iPad or iPhone completely This will also uninstall iMessage plugin that allows watching videos inside iMessage chat You may also want to disable access to the YouTube website How to Hax Screen Time on iPad by System Date and Time This hack seems to be pretty obvious Kids are just going to settings, then to general, date and time screen Then they are simply turning off automatic update and manually changing the current system date and time into the desired time period where all games are unlocked Solution Unfortunately, there is no way to disable access to the settings screen at all So the only possible solution is to disable access to an iPad or iPhone at all for your kid By passing a lock for Safari by running browser from settings via warning icon Some kids figured out that they can run launch an unrestricted browser by clicking a warning icon that appears on the website and app passwords settings screen This warning icon shows when the duplicated password is used and saved for two different websites Solution Number One Unfortunately, you can't disable access to the settings screen But you may set a system-wide limit to allow just a few websites to be accessed and opened in any browser window Solution Number Two The more reliable way is to disable physical access to the device without your prior approval every time Launching Safari browser from inside third-party apps using their built-in browser This hack is similar to the previous one but uses another path While you can use screen time to disable Safari at all or disallow access to the list of websites there are still other apps which have built-in browser window Solution Number One Set a system-wide limit to allow just a few websites to be opened Because of how iOS works even built-in browsers will be restricted to the list of websites you have set Solution Number Two The more strict approach is to disable access to the iPad or iPhone without your approval at all Stealing screen time password by recording video from the screen in the background A way to obtain the screen time password is recording a video from the iPad screen Screen video recording was added by Apple a few years ago and it records all the activity on screen into a video saved in camera and photos apps Solution Watch out for that small red icon on the right top every time you are inspecting the iPad or iPhone your kid gave you especially when you are entering screen time password Resetting screen time settings using hard reset Screen time parent control system is protected by a password But it will turn off automatically when the device is going through a so-called hard reset Kids are just going into general Erase and touching it to erase everything on their iPad or iPhone Then they are quickly set up this device as a new one They are entering their iCloud login and password and everything is restored in less than an hour from Apple iCloud Solution Change the iCloud password for your kids account so she won't be able to restore iOS devices without your approval Adding a new fingerprint under the adult's name So one day you think that I will share the password for iPad or iPhone to my kid because I will change it later Once your kid obtained the password she can go into settings, password and touch ID and can add a new fingerprint into the device Solution Add a password for screen time and do not share master pass lock for this iOS device Getting password by looking for a reflection of the password in parents eyeglasses You are looking at the screen and typing the pass lock or screen time password and your kid is looking at your eyeglasses for the reflection of what you pressing on the screen Then she is taking iPad and reproducing these 4 or 6 digits she saw reflected in your computer eyeglasses Solution Remove your eyeglasses when you are typing a pass lock on your kid's iPad or take a big towel and cover your head, hands and iPad and enter the pass lock the way that no way to see the reflection in your eyeglasses Getting a password from a video recording from another phone secretly recording you Solution Before typing in a pass lock for a device or for screen time, take a short walk around the room Check corners and other places for occasionally placed phones or other devices with the camera towards you Kids are doing their preparation first, they are putting one of their phones or gadgets with cameras on the shelf or into the corner in the room Faking device to look like it is turned off to prevent its unlocked state Instead of unlocking, your kid just ran a video player with a video that shows just a blank screen for hours and no sound Solution When you are verifying that iPad or iPhone is turned off, touch the screen or press the touch button for iPhone 5, 6, 7 and 8 or iPad to verify that the black screen is not a video player running a video What if kids still accessing the internet and how you can block this access Almost all modern apps and games require internet access The simplest way is to disconnect from the internet is to turn off the wifi router at all But this means you will turn off wifi for everything else too Solution When you are verifying that iPad or iPhone is turned off, touch the screen or press the touch button for iPhone 5, 6, 7 and 8 or iPad to verify that the black screen is not a video player running a video