Thứ Ba, 6 tháng 6, 2017

Waching daily Jun 6 2017

Paw Patrol Coloring for kids 2017♫Nursery Rhymes Part 11♫ Kids Games ♫

For more infomation >> Paw Patrol Coloring for kids 2017♫Nursery Rhymes Part 11♫ Kids Games ♫ - Duration: 5:58.

-------------------------------------------

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.

-

For more infomation >> Ahead of third south burlington school district budget vote, many strongly for and against - Duration: 2:22.

-------------------------------------------

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

For more infomation >> Create a Bootable USB for any Windows - 1 Minute time saving Tutorial | TECH-mAdy - Duration: 0:55.

-------------------------------------------

[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.

For more infomation >> [ENG] LuHan Message for the National College Entrance Exam participants - Duration: 0:28.

-------------------------------------------

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.

For more infomation >> Game of Thrones: Season 1 Episode 3 Clip: Fear is for the Winter (HBO) - Duration: 1:55.

-------------------------------------------

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.

For more infomation >> SCIENTISTS ARE RUNNING FOR CONGRESS TO CHANGE THE USA FOR THE BE - Duration: 4:32.

-------------------------------------------

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

For more infomation >> Best Cartoon For Kids | Nina Needs To Go Full Episodes | Cartoon Movies For Kids ✔ #63 - Duration: 27:04.

-------------------------------------------

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

For more infomation >> Zemcar: App Offering Ride Pickup For Children - Duration: 1:10.

-------------------------------------------

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]

For more infomation >> John Fawcett: Invisible Code: Building JavaScript Libraries For Non-Tech People | JSConf EU 2017 - Duration: 26:19.

-------------------------------------------

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!

For more infomation >> Conversational English - Asking for Repetition - Duration: 1:35.

-------------------------------------------

High-End Knobs for Nothing - HGTV - Duration: 0:47.

[music playing]

For more infomation >> High-End Knobs for Nothing - HGTV - Duration: 0:47.

-------------------------------------------

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