Paw Patrol Coloring for kids 2017♫Nursery Rhymes Part 11♫ Kids Games ♫
-------------------------------------------
Ahead of third south burlington school district budget vote, many strongly for and against - Duration: 2:22.
RENEE
WUNDERLICH IS
LIVE AT TUTTLE
MIDDLE SCHOOL..
AND RENEE --
MANY RESIDENTS
HAVE ALREADY
CAST THEIR VOTE
TONIGHT..
-
BRIAN/STEPHANI
E WE ARE IN THE
MIDDLE OF WHAT
MANY ARE
CALLING A
DIVIDED
COMMUNITY -
YOU CAN SEE
THE SIGNS HERE
- MANY SAYING
'YES PASS THE
BUDGET' OTHERS
STRONGLY
OPPOSING -
SPOKE WITH
NEIGHBORS ON
BOTH SIDES.
AND I ALSO
SPOKE WITH
CITY OFFICIALS
ON WHAT THIS
VOTE MEANS IF
THIS BUDGET
PASSES -- OR IF IT
FAILS.
SOT: DIANE
BUGBEE ,
RESIDENT, "WE
HAVE A
RESPONSIBILITY
AS A DISTRICT TO
EDUCATE OUR
CHILDREN."
SOUTH
BURLINGTON
RESIDENTS ARE
GETTING READY
TO VOTE FOR A
THIRD TIME ON
A SCHOOL
DISTRICT
BUDGET.
INSIDE -
SUPERINTENDEN
T DAVID YOUNG
PRESENTED THE
LATEST
PROPOSAL
AHEAD OF
TOMORROW'S
VOTE--
WHILE OUTSIDE -
THOSE AGAINST
THIS BUDGET
DEMONSTRATED.
SOT: SHELDON
KATZ, RESIDENT,
"FOR TOO MANY
YEARS, THE
SOUTH
BURILNGTON
RESIDENTS HAVE
REALLY BEEN
GIVING THE
BOARD A PASS
AND THE
BUDGETS HAVE
BEEN
INCREASING AND
NOW THEY'RE AT
50-MILLION
DOLLARS, FOR A
CITY THAT IS
REALLY NOT THAT
LARGE."
SOME DISAGREE.
SAYING FUTUR
STUDENT BODIES
WON'T BE
GETTING ANY
SMALLER.
SOT: CHRIS
HEBERT ,
RESIDENT, "I'M
VOTING YES. I
THINK IT'S
IMPORTANT TO
SUPPORT OUR
SCHOOLS. I THINK
THE SCHOOL
BOARD HAS
DONE A GREAT
JOB OF, DESPITE
TWO NO VOTES,
REALLY TRYING
TO RE-WORK THE
BUDGET TO TRY
AND CUT AS FEW
THINGS AS
POSSIBLE."
EVEN BEFORE
THE POLLS OPEN
TUESDAY - THE
CITY ESTIMATES
A THIRD OF
REGISTERED
VOTERS - HAVE
ALREADY CAST
THEIR
BALLOT...YEA....O
R NAY.
SOT: DONNA
KINVILLE, SOBU
CITY CLERK, "IF
THAT'S THE CASE
WILL HAVE A
RECORD NUMBER
PROBABLY A
TURN OUT-BUT
THIS ELECTION
FOR ANY LOCAL
ELECTION."
GFX:
ON A FACEBOOK
PAGE THE
SCHOOL
DISTRICT
CREATED ABOUT
THE PROPOSED
BUDGET, THEY
WRITE THAT A
FAILED BUDGET
WILL:
- NOT ASSIST
THE SCHOOL
WITH TEACHER'S
ASSOCIATION
NEGOTIATIONS,
-AND WILL NOT
SLOW DOWN OR
STOP CHANING
THE SCHOOL
IDENTIFIER -- THE
REBELS.
THEY SAY A NO
VOTE WILL
-MEAN BIGGER
CLASS SIZES IN
THE ELEMENTARY
SCHOOLS
-AND REDUCED
STAFF,
PROGRAMMING
AND STUDENT
ACTIVITIES.
SOT: MARTIN
LALONDE , SOUTH
BURLINGT
SCHOOL BOARD,
"WE HAVE TO
KEEP ON TRYING
UNTIL WE GET A
BUDGET PASSED.
AND IN THE
INTERIM, WE
OPPERATE ON
THE LEVEL OF
LAST YEAR'S
BUDGET. AND
WE'R
AUTHORIZES
UNDER THE CITY
CHARTER
THE POLLS OPEN
TOMORROW
MORNING AT 7
AND WILL STAY
OPEN UNTIL 7 P-
M.
AND I'LL SEE YOU
BACK HERE
TOMRROW NIGHT
WITH THE
RESUTLS.
LIVE IN SOUTH
BURLINGTON,
RENEE
WUNDERLICH,
NBC5 NEWS.
-
-------------------------------------------
Create a Bootable USB for any Windows - 1 Minute time saving Tutorial | TECH-mAdy - Duration: 0:55.
Assalam o Alaikum Guys
This is HAFIZ AMMAD and you are watching TECH-mAdy
In today's Fastest Video
You will Learn that how to create a Bootable USB for any Version of Windows
Lets See!
INTRO..
First Download Rufus Software
I have provided a Download link in the Description
After Opening this File , Insert USB Flash Drive according to your windows ISO Size
After Detecting your USB
Check Mark the Last Three Options and Click Select image icon!
Select the Windows ISO of your Choice - and Click Start Button
According to your usb Speed it will take maximum 5 to 10 minutes to install
And READY sign will be appeared to the Status bar
after that close that windows
You can install any windows easily
Please Don't forget to Like this Video and subscribe my channel
i will present Fastest (TIME SAVING) videos for you
Take Care Allah Hafiz
-------------------------------------------
[ENG] LuHan Message for the National College Entrance Exam participants - Duration: 0:28.
Hello to every National College Entrance exam participants.
I'm LuHan.
How do your feel for joining the National College Entrance exam tomorrow?
Are you nervous? Are you ready?
Be sure to remember to take all the necessary items for the exam.
Wish you all can do pretty good
And everything goes well on your exam!
I wish you all can get in your ideal universities
Join Coca-Cola's weibo topic
And encourage the National College Entrance Exam participants together.
-------------------------------------------
Game of Thrones: Season 1 Episode 3 Clip: Fear is for the Winter (HBO) - Duration: 1:55.
(CAWING)
Don't listen to it. Crows are all liars.
I know a story about a crow.
I hate your stories.
I know a story about a boy who hated stories.
I could tell you about Ser Duncan the Tall,
those were always your favorites.
Those weren't my favorites.
My favorites were the scary ones.
Oh, my sweet summer child, what do you know about fear?
Fear is for the winter,
when the snows fall a hundred feet deep.
Fear is for the long night, when the sun hides for years,
and children are born and live and die...
all in darkness.
That is the time for fear, my little Lord,
when the White Walkers move through the woods.
Thousands of years ago,
there came a night that lasted a generation.
Kings froze to death in their castles,
same as the shepherds in their huts.
And women smothered their babies,
rather than see them starve.
And wept, and felt the tears freeze on their cheeks.
So, is this the sort of story that you like?
In that darkness,
the White Walkers came for the first time.
They swept through cities and kingdoms,
riding their dead horses, hunting with their packs
of pale spiders, big as hounds.
(DOOR UNLATCHES)
What're you tellin' him now?
Only what the little Lord wants to hear.
-------------------------------------------
SCIENTISTS ARE RUNNING FOR CONGRESS TO CHANGE THE USA FOR THE BE - Duration: 4:32.
SCIENTISTS ARE RUNNING FOR CONGRESS TO CHANGE THE USA FOR THE BETTER
Typically progress is slow, however, with in regards to certain things, such as racial
equality and same-sex marriage, changes nationwide can often snap into place suddenly when push
really does come to shove.
In 2017 the power in the US lies with President Trump and with it came denial about climate
change along with anti-scientific policies that were outside of the norm.
The scientists of the world have finally had enough of it all and they have shown an unprecedented
solidarity and they have decided that they are going to run for office on what has been
said to be a pro-science platform.
314 ACTION MAY BE THE TIPPING POINT FOR THE USA This may become the next tipping point
in the Society of America.
The group that is behind this effort has the name of 314 Action and it believes that it
may just be that tipping point.
The group is made up of rebellious individuals and they are not just running for office based
on hope, speeches, and marches.
They all have a good chance at being able to change the way the United States is heading.
The founder of the group has opened up about how they plan to make these changes.
The director of 314 Action, Ted Bordelon, said that the future is hanging in the balance
and while he knows that this statement might sound dramatic, it is the sad truth.
Bordelon went on to say that if there is an administration that is hostile to facts that
are scientific, it is time to stand up and there is no one better to do just that than
a group of scientists.
SCIENTIFIC UPRISING BEGAN WHEN TRUMP WAS ELECTED This scientific uprising has been going on
for some time as it started between the election of Donald Trump as president in November and
the actual inauguration in January.
Straight after Trump took the oath he revealed anti-scientific rhetoric�s and then transformed
them into action that was devastating.
Federal scientists were then hit with a communications blackout, which in effect saw them being censored.
Shortly after that, a proposed budget for 2018 has threatened scientists with funding
cuts that are historic and denial about the climate change become fashion.
WOMAN�S MARCH TOOK INSPIRATION FROM ROGUE SCIENTISTS The rogue scientists took inspiration
from the Women�s March, which has been the biggest US demonstration in history, the scientists
protested from Twitter and onto the streets in the Global March for Science.
The Resistance, which anti-Trump Americans have been called, is a cornucopia of citizens
from the US and it included people from just about every demographic.
Scientists and academics appear to be just one of the groups that seem to have a modus
operandi that is practical; this is a plan of action that is said to be able to force
a change in the corridors of power.
The 314 Action, when it comes to the Resistance, may well be the proverbial spear.
Bordelon has said that their goal is to bring change and this is going to be a real change.
-------------------------------------------
Best Cartoon For Kids | Nina Needs To Go Full Episodes | Cartoon Movies For Kids ✔ #63 - Duration: 27:04.
okay Michelle on top and a flag over here in the moat on the outside in one
more room I tapped for the princess Nina sweetie do you need to use the bathroom
nope I'm fine Nina remember to listen to your body
I am my body is saying Nino feel the sugar okay we need to run for the moat
shall we pour water and low right don't worry my phone can find a bathroom
anywhere found it but as the bathroom over here over there oh it's way over
there no let's go
doesn't look like it we gotta go this way come on Nina this way guys over here
oh whoa okay Nina we gotta jump he's Cuban opal do it one two three go that
must be the bathroom Oh Nina sweetie I think these are the
okay go - bit carried away
naaaw beach taxi at your service Oh Bom okay to the bathroom
dude that will never happen again because now I know don't wait to go
after the wedding will there be a party Oh big one with dancing a food Oh cake
but only after a long ceremony do you need to use the bathroom you and I okay
well off you go then flowers for you for you for you we are gathered here today
to celebrate the union of ladies and water if there's any reason these two
should not be Wed speak now or forever oh I now pronounce you man and wife to
make his bride come on I'll take you
fruit punch fruit juice oh don't mind if I do sorry Nina but
look it's in a pineapple yeah everyone please raise your pineapple to toast the
bride and groom I would like to read a small speech that I prepared just
through the occasions I first met Walker many years ago the bathrooms are just
over there come on lots let's rock
yeah welcome Peter - the cake address next stop the bathroom
ladies and gentlemen it's time to cut the cake will never happen again
there's the super curler roller total turbo super slap Frank take your kitchen
with you huh okay oh wait Nina do you need to use the
bathroom first no no time for that I'm ready to slide let's go Frank
I got the biggest one cool well I wonder who gets to measure water sighs I do it
that'd be a cool job uh Nina Danny Tom you know do you need
to go no I bet I'd be the best where's my measuring person and Vanina you
really look like you need to go Frank I know I don't know Joe I think you do
don't do
okay I don't need to go I know it
sorry so much water no Becker's anywhere don't worry
we'll never get through hello dolly open
the bathroom is right behind you I know no running man for half again well Nina
if we're gonna see lots of animals we are gonna need a not who I yes thank you
alrighty what animal shall we see first how about a bathroom a bathroom it's not
an animal I meant bathroom as a knee not needs one
nope Matt me OK oh wow you need to go right now right come on just follow me
kids nobody knows maps like dad does and
we're here I really gotta go oh no worries Tina dad why'd you a
battery can I be of any assistance
buckle up but off we go
take some pictures of the tallest animals on earth we're in no rush but I
know what it's time for operation zero
that's why I always carry on forever butterflies we need your help
direction to the bathroom please dings pretty butterfly all right well
folks we go
nicely done never happen again because now I know
don't wait today your places for the three-legged race on the mark
oh uh Nina do you need to use the bathroom yes I'm fine
yes that you really look like you need to go
I do need to go right now oh boy bathroom that way winner doc yeah
oh well okay hello darling yeah oh my God we're all tied up not anymore
who's the duck friend Nina let's roll
that's why I always carry her
don't worry Mina I got a plan it's no biggie I'll just talk to a piggy excuse
me okay oh thank you little friend
funny-looking potatoes that reminds me of an old sweetheart
because now I know don't wait to go I mean I need to go oh let's go play I
always cry at these things my big snappy lobster and my craggy little rock that
needs to use the bathroom nope I'm fine I'm just a little nervous I'm supposed
to say something like that's your line the bag okay let's get you out of this
costume okay mr. carton new minutes everyone
pardon me do you mind holding the show so my daughter can take a quick bathroom
Frank take your sister to the bathroom what's a show starts in two minutes
Frank fine come on Nina let's go
hmm I'll bounce I'll slide you go first
Frank I really need to go hello Donnie
Frank Bobby why don't you get ready for the ship okay fiancee Nina idea let's
get you to the ball
The Rock won't dip bad you do worry the shoe won't go on without you
it's time
you made it I'm a bit dizzy mom I didn't know you were coming oh it's a chance to
see a show reminds me of my days on the stage ena your line because now late oh
don't wait to go needs to go Nina can you choose the bathroom no I'm okay mom
so much snow I've been all that snow weighs a lot even more than Ken elephant
maybe even more than 20 Nina are you sure you didn't need to go no I'm not
sure mom I need to go there are no bathrooms on top of the mountains
looks like the closest bathroom is at the bottom of the mountain at the farm
of the mountains thank you now you know it is so beautiful up here let's take
some pictures Nina needs to go Nina and the closest
bathroom is at the bottom of the mouth perhaps I can be of assistance
yeah that's alright mom the bathrooms are really manage okay we'll see you at
the bottom alright leader let's get you to the
bottom of the mountain
of course I can
that's why I will always caddy okay to the boss
love moves inside let's go now I can finally go because now I know don't need
and needs to go hello I wonder with Yui what would i if I were a cow i YB cow
hey I guess so they are kind of cute Nina do you need to use the bathroom
thanks I'm fine okay let me know if you need to
mmm if I work out my cow name be cutie cow yeah
Nina the cow oh maybe a Guney to use the bathroom
mom kind of do neat in just a second sweetie okay I need to go shopping I can
old it better that way let's go
Wow
Gina needs to go well I just came from the bathroom
follow me Nina Shh oh now see this is the quiet Carmina oh we have to be very
quiet Wow hello darling
I couldn't take Nino how will you get past all these suitcases
yeah
of all that's why I always get some Rilla yeah you go Nina a bathroom thanks
Nana
look hey it's mommy waving to mummy and look there's Neeta you know we mermaid
that costume especially for Lena do you need to go actually okay hold on there's
no bathroom on this scene the bathrooms are just up here we're going too slow
I think that's why I always carry about bromo you think of everything Nina like
a safe landing into lung flowers oh oh Mexico I knows which gives out the
perfect you of the bathroom I see them me and a brother so far away I think
we'll take the shortcut to the bathrooms please Maxima
Samson I really need to go sit tight darling
almost there no problem hello Diana Prince you to Egypt apart
from emergency Thanks you're on a roll thank you
Oh
-------------------------------------------
Zemcar: App Offering Ride Pickup For Children - Duration: 1:10.
♪
JUGGLING SCHEDULES.
NEW OPTION FORGETTING KIDS
WHERE THEY NEED TO GO.
BOSTON AREA START UP, RIDE
HAILING SERVICE DESIGNED
SPECIFICALLY FOR CHILDREN,
THINK OF IT LIKE AN UBER FOR
YOUR KIDS.
YOUR PHONE RECORDS THE WHOLE
TRIP SO YOU CAN WATCH AS YOUR
CHILD RIDE IS HAPPENING, PAREN
RECEIVE TEXT MESSAGES, ALONG
THE WAY, AS WELL.
TOTALLY DIFFERENT.
I KNOW THE DRIVERS.
I KNOW THEY'VE BEEN SCREAMED.
THEY'RE INSURED FOR DRIVING
KIDS.
I DON'T HAVE TO WORRY ABOUT
TRACKING HIM ON MY E PHONE.
AVAILABLE IN HANDFUL OF
BOSTON SUBURBS FOR KIDS AS
YOUNG AS EIGHT.
THE SERVICE IS EXPANDING AS
FAMILIES AND DRIVERS SIGN UP.
AND NOW 6:44, SO INTERESTED
TO HEAR WHAT YOU HAVE TO THINK
ABOUT THAT?
I PERSONALLY WOULDN'T DO
IT.
I'M JUST A LITTLE LEARY
ABOUT THAT.
IF IT WAS A TEENAGER, YOU
KNOW, 14, 15, THAT'S ONE
THING, I DON'T FOE IF I WOULD
HAND A EIGHT YEAR OLD OVER TO
A STRANGER IN A SEND CAR OR
WHATEVER.
I'M SURE THEIR DRIFTS ARE
PERFECTLY FINE.
BUT I DON'T KNOW.
I KNOW, LIKE THAT LITTLE
SHROUD OF DOUBT IN THE BACK OF
-------------------------------------------
John Fawcett: Invisible Code: Building JavaScript Libraries For Non-Tech People | JSConf EU 2017 - Duration: 26:19.
Invisible Code: Building JavaScript Libraries For Non-Technical People
[Applause] JOHN: So everybody in this room, it's probably
their domain to add new functionality to the website but what about the majority of website
owners, what about that salon daughter who has his daughter hack together a website for
him?
It starts off simple and then he has a script tag added here, a widget, an image gallery,
a couple of analytics tracking tools for some reason, so over time the small, simple website
turns into this multimegabyte monstrosity.
It's not really his fault.
He doesn't know exactly what he is doing, he doesn't know the end result is going to
make his website cooler, so how can we as developers of this third party embedded code
make this situation a little better?
Before we get started my name is John Fawcett, I have been building out our AMP experience,
you may know Google AMP.
Also been helping out on our apps team so I have been writing quite a bit of embedded
JavaScript lately and it has been fun.
So before we get started into the main thing, let's take a look at some presumably reputable
survey, so according to Netcraft back in 2016 we hit over 1 billion unique host names and
that's Carl up there just for effect, right, he has nothing to do with this and also I
added an emoji about an hour ago because everybody else seems to have them, so a billion host
names, and 72% of these pages make more than 51 requests and we can imagine that seems
a little high and, of course, there is a bunch that make way too many requests, right, so
the reason I'm showing you this is just to give you perspective.
We are developers and we kind of know what we are doing maybe, and the rest of the people
that maybe own the rest of the billion host names on the Internet probably don't know
as much.
We should get inside their head, how are they even adding this functionality to their website?
There's really three sort of scenarios they go through.
They either know enough to be a little bit dangerous.
They find a script tag on the Internet and then just paste it into their site and then
tweet things until it works.
Then there's CMS plugins like Wix and Squarespace, but maybe just ask a developer, or they copy
and paste as well, but we are going to focus on these first two because at the end of the
day these are pretty much exactly the same.
Maybe in WordPress you have a few extra APIs but these pretty much have the same constraints.
What are the constraints?
The first thing is environment.
This is a huge umbrella term, I know, but when writing a web app we have a very well-defined
audience that we can actually develop for.
And for building embedded code we actually have two different kinds of users.
We have the person that's going to be consuming the code and pasting it on their website one
way or the other, and we have the end users, and we can't make assumptions about what those
end users really are.
We want our code to be basically run everywhere and that's pretty difficult, right?
So yeah, it's weird.
Next thing is file size.
We really need to respect the end user's bandwidth and capacity to parse JavaScript.
We also need to respect the website owner so these are no-brainer things but we really
have to keep them in mind when running or making third party code to be embedded.
And browser compatibility, again if you can define your audience you know, but we can't
really define that, it's their audience, so browser compatibility is more about global
trends so you are going to have to support older versions of IE than you want to.
And the user is an excuse for poor developer ergonomics so they are creating a single JavaScript
that is hand-rolled to be ES5 compliant and it's not maintainable, and it gets worse and
worse over time.
So network: you are likely being embedded in a page where there's a ton of network requests
because they have three different analytics libraries that are all tracking clicks and
the mouse movements, so something you need to keep in mind is you may be trying to perform
a network request when there's a bunch of other network requests going on, so maybe
we can do something, maybe we can check to see how many network requests are going on
and try to push our pay load at a time when it's less chatty.
So you are thinking you are going to write a little widget for general consumption, maybe
an image gallery or anything, and let's just - basic stuff, I know you guys know this.
You don't need fonts, okay?
Just use the host environment.
Fonts are crazy.
You don't need them.
No global rules; compress your images if you have them.
Maybe even [sound problem] ... okay, back to what we are talking about.
You may be asking: okay, we are going to write some isolated DOM stuff and we are going to
style it.
The question is do I have an external sheet or do I go with inline styles?
Okay.
It actually doesn't matter so much because the problems you are going to run up against
are pretty much exactly the same.
You are being sane, you are prefixing your styles, you are doing inline and then you
run across a global style, like this is going to happen pretty much at least 20% of the
pages you are embedded on, somebody is overwriting it dev style, okay, and you are like: okay,
maybe I can be very specific about my style sheets and only - I will check for all these
things.
Then some reset comes along and has an important tag, and you are like: oh!
Okay, what can we do about this.
What can we do about the global styles that resets are putting important on, and one of
the things you can do is custom tags.
This works in IE9 and up and everything else for the most part.
It's not compliant with the HTML5 spec but it's one way to get style isolation.
In IE9 you need to create an element of the name before you use it so here we have a custom
element called my widget and we have got style isolation for the most part, so we solve that
and then somebody has got an all elements select over and it's adding a border radius
to your newly designed and styled widget, and you are like: okay, let's figure this
out.
So anyway, so we've got this and what do we do about this situation?
There's one thing that we can do and it's to use iframes.
That's the only way you are going to achieve true style isolation and it's a good idea
to run your widget inside the iframe anyway because it's a little more respectful of the
host's environment.
Yes, I guess we are having some interface problems but I will go on.
So iframes, if you run a little bit of code on the host environment that puts an iframe
on the page that's going to run maybe more code in the background, some of that code
can be prioritised and not pretty much overtake the page.
Let's find out what's going on with this slide situation, and then I will continue.
This is the part of the talk where I say, "How's everybody feeling?
Get up and take a stretch".
Well, you've maybe been seeing this crazy scrolling thing, and there's like a bunch
of JavaScript CSS properties in there, so what we can do with the iframe if we embed
it and we do this for some isolation is to put the iframe in the DOM and then apply our
own defaults to it, and we take pretty much every single CSS property and put it on that
iframe so we can have an expected behaviour locally and on anybody else's page.
Of course, there's still edge cases but this does cover some of them.
The iframe brings us to JavaScript, right, we are creating the iframe and adding all
those CSS properties, so what are the pitfalls and crazy stories?
Well, first off let's get the basics out of the way - and keep flashing my slides.
Well, all right.
I could just turn my computer around and everybody can come closer.
[Laughter] >> It was flashing all of yesterday as well.
JOHN: Yes, I will just go through it, and we will just deal with it.
So anyway, let's get the basics out of the way.
There is some really simple stuff that I know everybody knows: don't use globals, of course.
We've known this for a while.
Please, for the love of God, don't, don't mess with the prototype, don't depend on a
library that messes with the prototype.
Minify your code.
Don't make a bunch of requests.
If you have something you need to phone home with, create a route that you can batch request
to so you are only sending one, so if somebody is on a mobile phone the biggest problem is
latency and if you are making a bunch of requests phoning home just at least make a route that's
going to be able to accept multiple of those requests, it's not too hard.
And of course profile your code.
The biggest problem I feel on a lot of these sites is they've can included 47 jQuery plugins
and not all of them were very considerate of performance.
If you are going to be having a copy and paste script tag consider within the script tag
itself - I saw it and was, "Holy crap", this is a great idea, and got a lot of feedback
from non-technical people, saying, "That's all you have to do?"
Yes, that's all you have to do.
A little story about building the AMP viewer.
If you can imagine a block of code here and then imagine a scenario I put myself in, we
will be in good shape here, so we are reason the AMP viewer and the AMP viewer - actually,
how many people are familiar with AMP from Google?
So you know when you search for Donald Trump and you are wondering why I'm searching for
Donald Trump, and you go to the search results, it has the little carousel - oh, look at that,
Cloudflare!
Hmm, that seems to be extending my desktop now.
You want to check that out?
I guess it's in Preferences.
We can maybe move it over.
Let's check out Preferences.
Display.
There we go.
Perfect.
Okay, so I will go back talking about AMP viewer real quick, so you click on a miniature
carousel in a search result, it has that little lightning bolt and you instantly load the
page.
Google does this by pre-rendering the document or pre-rendering the document they loaded
in an iframe in the background.
They've got it in a Google CDM and when you click the article it flashes in the view and
tells the AMP document: hey, you are now visible, you are now allowed to download images and
to download your analytics tracking tools and actually start tracking so that's kind
of what the AMP viewer does.
So anyway, I had some similar code as this and we had already deployed it to thousands
of sites, and we've started collecting data and one of the pieces of data we collected
was that this list was undefined.
If you - you don't really have to understand the code but the iterator function to the
enumeration methods like map and filter receive three arguments, and the third is list.
It's the original list that you are iterating on.
So why, in what scenario is list actually undefined?
The answer is: when somebody overrides your prototype with an implementation of map that
does not include list.
And who does this?
Well, prototype.js actually did it before 2012 and they realised their folly in 2012
and released a new version but there's still a ton of websites that use pre-2012 prototype.js.
What do you even do about that?
How far do you go in not trusting JavaScript?
The answer is for us, you know, we went ahead and fixed it and said: okay, let's not rely
on that variable because there's too many people that are relying on Prototype.js, pre-2012
I might add.
So it's up to you.
You really need to be collecting that data though, that's the important part.
How do you do it?
Well, we used Sentry.
If you haven't used Sentry, it's really awesome, okay?
I'm just going to zoom in here.
I mean, you get all kinds of great information, you get the browser and all, the device and
the breakdown of browser and the errors that are occurring and you will see here the stack
trace comes in, and we are running completely uglified code and yet when the error comes
in we can actually see the line that had the error and you see this is a TypeScript file
which we will talk about a little bit later in developer ergonomics, so yes, we have TypeScript
or we have Sentry error reporting.
Now, we only run this for a sample of our users so not everybody is going to be reporting
errors to us, and it's a pretty easy thing to do.
You just say: hey, script actually report errors to Sentry; or don't report errors to
Sentry.
So that's another thing about being a little bit responsible.
You don't want every single one of your pieces of code phoning home for whatever reason,
but there's a problem.
If you've ever used Sentry you know there's a line called Raven.js which is a sort of
embedded library of sorts as well and they follow the pattern of a massive JavaScript
file that is about 2400 lines of code at the end of the day and it's 24 kilobytes minified
and you have to wonder how many SHR wrappers there are on any given website so Raven.js
is great, it does a lot of stuff for you, but it was too much for us.
So what we did is we already had our own SHR wrapper, we already had the ability to parse
stack traces.
We just used the API, right?
If we have access to the API, we can go ahead and push all that error information and we
don't have that insane amount of code in our build.
What this really looks like is you are just hooking into the on air function on window
and you can't use at event listener, Air, I've already tried, but you can override this
function and hopes nobody else does as well.
You also need to check that the file name coming through is actually your file because
there's going to be a ton of errors on the page and you don't want to be reporting them
all to your Sentry incidents.
So how do you get rid of those SHR wrappers and one of the things we came up with is API
fingerprinting.
We live in a world where jQuery of us this dominant library and still is, even though
we rarely use it anymore as developers in this room, so - well, let's just look.
According to some survey 89.5% of their top websites use jQuery and then estimates for
the entire Internet is just under 20% so you have a very high likelihood that $.AJAX exists
already.
So we should start building little abstractions that make it look like Fetch exists for everybody,
even if they don't have Fetch and maybe they have jQuery, and yes, it's a pretty good chance
had a they do have jQuery.
What if they don't?
Object query?
Try something else.
These are really cheap and then you have a really nice interface.
So what if this embedded code is still running and relying on the Fetch API?
You need to download it.
Or you could say this code is not going to work and I'm going to error out and you are
like: oh, I have a 80% likelihood that my code will work.
No, we can do better.
We can actually just dynamically fetch polyfill or jQuery even because maybe they have it
cached.
A problem: we are seeing if some code exists and then if it doesn't we have some asynchronous
step that must occur and in reality we would want an interface that just works.
You pull in a module statistically from your bundle and you say: get me this resource and
you want to be able to just check the body, right?
You want this.
But in a situation where dependencies may not have even been loaded yet, we need to
queue up these requests and once the dependencies are satisfied and the API has been defined,
then we can go ahead and resume those requests but to a developer it should feel just like
this.
So we created a little library.
It's essentially dependency injection, right, but it's a little bit different.
So we just had these little decorators and of course the decorators are a little bit
of fluff, they are not that much code to add in, but you could use the non-decorator API
just as well.
So we let these functions though that we need the fetch API and whatever the fetch API that
will be defined by us, and we also want to let it know that any call to these functions
should be queued up until the fetch API actually exists and has been resolved.
So what does defining the fetch API look like for this?
The first thing, the same little library we build, we are going to pull in a definer option
where we set up the dependencies, let it know what they mean.
We pull in some strategies from the other part of the library and we only pull in the
things that we are actually looking for because our module bundler is going to do some tree
shaking, right, and we are going to have as little code as possible so we pull in these
different strategies and then we go ahead and define what Fetch would be and it's just
a chain of these strategies.
We are going to look for the built in global fetch, then look for jQueries and wrap it,
then build an external resource, wait for it to load and then apply the jQuery strategy.
I say jQuery because probably others are cached just from their travels.
That takes care of that.
Let's keep our bundle size down.
Performance tips: I can't really say a whole lot - many have already said, and maybe Jason,
but we will go over a little bit of stuff.
The main thing we found is we don't want to negatively affect performance on the page
and we don't want necessarily the best performance but we should probably queue our expensive
actions so with the AMP viewer for a lot of our customers there is this discovery step,
right?
And we are going to take all the links on the page and then check an external service
to see if any of those links are AMP.
And then we are going to modify the DOM with little icons that say: this is an AMP link.
If you click on it, it's going to be really fast.
And that's an expensive operation because we are calling up to a service and then modifying
the DOM so what can we do about that?
The thing we came up with to non-effect performance on initial load is a measure of FPS and you
can do that by using request animation and counting the frames.
So the measure XHR is not super-reliable and I'm not even going to talk about it.
Some expensive operation just needs to be put on a queue and be deferred until later
and we can go ahead and just tell it: hey, when the FPS is at least 30, then maybe it's
a safe time to go ahead and do this.
We will probably want to wait until other libraries have done their thing and this will
probably work.
So developer ergonomics, earlier I said a lot of these embedded JavaScript libraries,
they sacrifice a lot of the modern development practices that we've learned over the past
few years in favour of creating a very small, tight, single JavaScript file, and I'm arguing
that that will result in crappier code that will not be maintained properly, so just think
about it.
So for AMP viewer reading TypeScript as I said before, it's really great, it produces
fairly small type code that's ES5 compliant and we have a really great developer experience
from it.
So what does the AMP viewer do?
This is what I was explaining before.
A little BMW cable, that's not going to work.
That is cool.
Let's try to go back and see if it does it.
Whatever, you guys know what I was talking about.
It handles push state history API, it has got very smooth animations and we are actually
using a library called Preact and Jason Miller is giving a talk right now about it and it's
a 3.5 version of React so it works really well, we've got it on thousands of websites
right now and some of the builds are under 15 kilobytes which to me still seems too much.
3.5 of those kilobytes is Preact.
I am pretty sure we can get this down, all the components, everything, and once I figure
out how to properly mangle all my props using Closure Compiler I think we will be in a pretty
good state.
So anyway, like I said, we've got this really beautiful component-based architecture using
TypeScript so everything is checked statically at compile time and we didn't really have
to sacrifice the code in order to have a small file size.
Also, you know, module bundlers these days roll up in webpack, they can export things
to globals and just use function closures so you are having really tight code that is
just wrapped by functions rather than something like browser - little header file or a little
header part that helps load the module at run time so you don't have a whole lot of
overhead and you can also export to multiple targets, right?
The general consumption target is going to be to global.
Something they are going to copy and paste that needs to self-register under the page
is going to be text supported, right?
But so many times I have downloaded or tried to use an analytics tool and they say the
way to install this is you copy and paste this chunk of minified onto your page, and
I end up copying and pasting that into its own little module so it's all in my bundle,
right?
So it's so easy to just have a different target for your developers.
You have an ES6 target and you say in your package data: here is my ES next entry point
and here is my main entry point, my widget.
It's really easy to do so use rollup or webpack please and also export to global for the non-techies.
So we've kind of gone all over the place and I hope that you maybe learned a little bit
from my travels.
So please responsibly code and maybe try out the fingerprinting API.
That should be open source pretty soon.
And queue your expensive operations because, yes, it's good for the world.
So thanks.
[Applause]
-------------------------------------------
Conversational English - Asking for Repetition - Duration: 1:35.
Do you like to go to restaurants? Listen to this story about eating at a
restaurant and learn how to ask someone to repeat something in American English.
Yesterday, I went to a restaurant with my friend. It was very noisy.
I had trouble hearing. Would you mind repeating that? The special today is
spaghetti. Great! I'll have that. I will too. Could you say
that again, please? Could you pass the salt? Sure!
Here are some polite ways to ask someone to repeat something. First, we can say
"Would you mind" plus "repeating that" or plus "saying that again."
Would you mind repeating that?
Would you mind saying that again? We can also say "Could you" plus "repeat that" or
plus "say that again."
Could you repeat that, please?
Could you say that again, please? Now it's your turn.
Click pause and complete the sentences.
This is American English. Thank you for watching!
-------------------------------------------
High-End Knobs for Nothing - HGTV - Duration: 0:47.
[music playing]
-------------------------------------------
3 simple hack for fidget spinner !!! - Duration: 2:57.
For more infomation >> 3 simple hack for fidget spinner !!! - Duration: 2:57. -------------------------------------------
Killer Mike Says He'd Punch Bill Maher for Using the N-Word - Duration: 2:27.
What's up, guys?
For Complex News, I'm Beija Velez.
Killer Mike has become an outspoken public figure on race relations and equality for
African Americans ever since he campaigned for Bernie Sanders, so naturally, he gave
his take on the Bill Maher controversy over his use of the N-word that exploded on social
media over the weekend.
Shortly after the internet began dragged Maher when the episode of Real Time With Bill Maher
aired, Killer Mike insisted that Maher was simply doing his job, and further argued that
although Maher is protected by the First Amendment right to free speech, he should be responsible
for his own words and actions.
When TMZ did a follow-up interview with Killer Mike on Monday, Harvey Levin poised the question
of what would he do if Maher said the offensive slur in front of him on the show.
Killer Mike wasn't serious about causing physical harm to Maher.
He's appeared on his show multiple times, and actually considers him a friend.
This is what he meant:
He goes on to explain he is a strong believer in freedom of speech and supports everyone's
right to say what they want to say, even if he doesn't agree with it.
He also believes in people's right to boycott Maher, but then defended his right as an entertainer
to make jokes, even if they fall flat.
He leaves a final thought on why we should move on from this.
After HBO made the announcement to remove the episode from future airing, Maher issued
an official statement on the matter, saying:
"Friday nights are always my worst night of sleep because I'm up reflecting on the things
I should or shouldn't have said on my live show.
Last night was particularly long night as I regret the word I used in the banter of
a live moment.
The word was offensive and I regret saying it and am very sorry."
- Bill Maher
That's the news for now, but for more, subscribe to Complex News on YouTube today.
For Complex News, I'm Beija Velez.
Không có nhận xét nào:
Đăng nhận xét