Thứ Sáu, 16 tháng 11, 2018

Youtube daily Nov 16 2018

-Performing "Revelation," from the film "Boy Erased,"

please welcome Troye Sivan!

[ Cheers and applause ]

♪♪

♪♪

-♪ You're a revelation ♪

♪ Won't you liberate me now? ♪

♪ From a holy bound ♪

♪♪

♪ You're a revolution ♪

♪ I will liberate you now ♪

♪ As the walls come down ♪

♪♪

♪ It's a rocky road ♪

♪ To say maybe I won't go ♪

♪ Hey, dear, you're a wrecking ball ♪

♪♪

♪ You're here ♪

♪ Crushing all I'm told ♪

♪ Ever I roam ♪

♪ Ever I roam ♪

♪ Further from home ♪

♪ Your hand I know, now ♪

♪♪

♪ It's a revelation ♪

♪ There's no hell in what I found ♪

♪ No kingdom shell ♪

♪♪

♪ And how the tides are changing ♪

♪ As you liberate me now ♪

♪ And the walls come down ♪

♪♪

♪ But till the end, it's a rocky road ♪

♪♪

♪ To say maybe I won't go ♪

♪♪

♪ Hey, dear, you're a wrecking ball ♪

♪♪

♪ And you're here crushing all I'm told ♪

♪ Ever I roam ♪

♪ Ever I roam ♪

♪ Further from home ♪

♪ Your hand I know ♪

♪ Ever I roam ♪

♪ Ever I roam ♪

♪ Further from home ♪

♪ Your hand I know, now ♪

♪♪

[ Cheers and applause ]

-Troye Sivan!

"Boy Erased" is in theaters now.

For more infomation >> Troye Sivan: Revelation - Duration: 4:10.

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

Kanye West Sings Backstreet Boys Karaoke with Mark Zuckerberg - Duration: 6:01.

-Well, you guys, a lot of the country got snow today,

including Washington, D.C.

Yeah, President Trump spent the whole morning

watching the news to see if work was canceled.

He's like, "Come on, come on."

[ Laughter ]

That's right. It snowed at the White House.

There was an awkward moment when

Trump offered a kid 10 bucks to shovel the driveway,

and it turned out to be Jeff Sessions.

You go, "Oh, no."

Get this -- it just came out that Trump mocks Fox News host

Sean Hannity behind his back for being a suck-up.

When he heard that, Hannity was like,

"Wow. That's such a smart observation, Mr. President!

That's really amazing!"

I heard that Trump wants to raise tariffs --

I don't know if you heard this. He wants to raise...

[ Laughter ]

-What's he want to do?

-He wants to raise tariffs. -On what?

-French wine, but since his son Eric runs an American winery,

it could be a conflict of interest.

Yeah.

And Trump said, "That's crazy.

I have no interest in my son Eric."

[ Laughter ]

"Come on, man! -That's rude.

-I'm your son, dude!" -Rude!

[ Cork popping ]

Pbht! Ccck!

[ Popping ]

[ Liquid pouring ]

[ Fart noise ]

-Did you guys see this?

Kanye West says he did karaoke

with Facebook CEO Mark Zuckerberg,

and they sang the Backstreet Boys song "I Want It That Way."

Yeah. There they are.

When Trump saw Kanye hanging out with someone else,

he was like, "Quit playing games with my heart."

[ Laughter ]

Listen to this. After two years,

the CEO of Victoria's Secret announced that she is leaving.

No one's happier about it than her husband

'cause he's been waiting outside for her the whole time.

He's like, "It looks great, honey. Absolutely."

Well, this is interesting.

Starting next year, grocery stores

might start carrying food with genetically altered DNA.

Gets weird when you say, "Oh, this apple looks good."

And the apple goes, "Thanks."

This made me laugh.

Some parents in Australia called up a bakery

and asked for a birthday cake for their son

that had a big green frog and a colorful number 3 on it.

The baker wrote down the info,

said, "No problem. Pick it up Sunday."

And this is what they saw when they got home and opened the box.

Yeah.

[ Laughter ]

Can we see it again?

How did that happen?

Well, we can actually tell you.

It's time for "How Did They Get There?"

Here we go.

-♪ How Did They Get There? ♪

-So, they ordered this cake from Woolworths,

a popular supermarket chain

where the staff really has their cake-making process down.

First, they take your call,

then they write down everything you want on your cake,

then a team of highly qualified bakers and artists

do the research.

They pore over photos and details of frogs,

then after all that, they come away

with their first detailed drawing of a frog.

Perfect.

Then they take said frog drawing and refine it a bit

and then they go back and add the details

that really make it a frog,

like the fact that all frogs have kind of frilly borders.

Now, that's a frog.

Then they turn that ultra-precise frog into a cake.

Then they add the "3" at the last second

because they forgot, and now it's done.

It's a cake with a big green frog

and a colorful number 3.

This is "How Did They Get There?"

saying, "That's how they got there."

Jimmy.

-♪ That's how they got there ♪

-Hey, guys, I read that two beer makers,

Pabst and MillerCoors, are going to trial after Pabst

accused Miller of trying to put them out of business.

Now, cameras aren't allowed in the courtroom,

but we did get our hands on a recording

of the opening statements. Check this out.

-Court is now in session in trial of Pabst vs. MillerCoors.

We'll begin with opening statements.

Pabst, you may go first.

-Okay, so, you don't even know,

like, what I've been going through, okay?

I'm gonna sue Miller for being a stupid jerk.

80 billion monies.

-Hey, shut your face hole!

I'm not a jerk! You're the jerk!

-Erection, your honor! -Order in the court.

-Oh, okay. I'll have a whopper.

-Yeah, that's a different order.

[ Cheers and applause ]

And finally, guys, the President tweets so much sometimes,

it's hard to keep track of everything he says.

So we thought it might be helpful if we went through

all of his tweets from this past week and set it to a beat.

It's time for "Tweets With Beats."

Here we go.

-♪ Tweets With Beats ♪

-Now, here's how this works.

Everything I say is from an actual tweet by President Trump.

Once again, these are real tweets and real beats.

Wanna start us off, Tariq?

-Yeah, man. Let's go.

♪♪

♪ So, the midterms are over, now the work begins ♪

♪ And Trump lost the House, but... ♪

-It's a very big win.

-♪ He connected the dots, said the Dems are to blame ♪

♪ Just like Connect Four... ♪

-Two can play that game.

-♪ And they're still counting votes up, but Trump has doubts ♪

♪ He said that's... ♪

-What a disgusting witch hunt is all about.

-♪ So he asked for a redo ♪

♪ 'Cause he wants to refute it or at least... ♪

-An apology from President Putin.

-♪ Said goodbye to his friend with the Keebler impression ♪

♪ His favorite elf... ♪ -Attorney General Jeff Sessions.

-♪ Gave a speech in France then got back on the plane ♪

♪ 'Cause his candy hair melts ♪

-In the pouring rain.

-♪ Then he took on Macron and the trade deals there ♪

♪ 'Cause the price of French wine's... ♪

-Ridiculously unfair.

-♪ 2020's getting closer, so Trump's got a plan ♪

♪ And he's got a new slogan ♪

-Make France great again. We have a great show tonight.

Give it up for The Roots, everybody!

For more infomation >> Kanye West Sings Backstreet Boys Karaoke with Mark Zuckerberg - Duration: 6:01.

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

Best Moments of Deepika Padukone And Ranveer Singh Royal Wedding In Lake Como, Italy - Duration: 4:24.

Best Moments of Deepika Padukone And Ranveer Singh Royal Wedding

For more infomation >> Best Moments of Deepika Padukone And Ranveer Singh Royal Wedding In Lake Como, Italy - Duration: 4:24.

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

Automate G Suite with Apps Script and Angular | Grant Timmerman | AngularConnect 2018 - Duration: 15:02.

For more infomation >> Automate G Suite with Apps Script and Angular | Grant Timmerman | AngularConnect 2018 - Duration: 15:02.

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

Keynote | Igor Minar | AngularConnect 2018 - Duration: 40:53.

For more infomation >> Keynote | Igor Minar | AngularConnect 2018 - Duration: 40:53.

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

Mishika Chourasia Exclusive Interview On Her Upcoming Film "Rangeela Raja" | Govinda - Duration: 3:53.

Mishika Chourasia Exclusive Interview On Her Upcoming Film "Rangeela Raja" | Govinda

For more infomation >> Mishika Chourasia Exclusive Interview On Her Upcoming Film "Rangeela Raja" | Govinda - Duration: 3:53.

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

【MUKBANG】 Luxurious Bakery!! [PAUL FRANCE BOULANGERIE] 20 Items [About 7000kcal] [CC Available] - Duration: 12:15.

itadakimasu

i wanted to make a little bit luxurious intro, but it's a difficult challenge

i'm sorry

hello, it's kinoshita yuka

it was a little bit embarrassing intro, isn't that ?

this time i have plenty items from luxurious bakery called PAUL

i wanted to imitate the luxurious way of Jun's Kitchen

Jun's kitchen is so awesome

and i will put the link of his channel in the description below

and if you watch JunsKitchen videos, you'll see what i'm talking about

hay, so today i bought 20 items from PAUL FRANCE bakery

it's a luxurious french bakery

and there is a new branch of it here

and like what's written here, this bakery is since 1889

they still using the same french recipes from that time

- let's support yuka by leaving a comment and hitting the like button - and because i'm looking forward to try the japanese branch, i bought plenty items

and it looks like it's available in many places in japan

Hokkaido, Tokyo, Kanagawa

Saitama, Kyoto,

Osaka, Hyogo and Fukuoka

it's a really luxurious bakery

and all this 20 pieces here cost 8490 yen ( about 85 dollars )

it's a really luxurious dish

let's start eating

itadakimasu

jan, let's start with the famous Paul croissant

mmmmm

the outside is crispy and the inside is soft

and the aroma of the butter is strong, and this so tasty

the taste is so notable, this is so so tasty

mmmm, the best

the texture of the croissant is good and rich with the flavor

this really yummy

and this is croissant sandwich

it's called croissant Aneth

what a luxurious name

and it was so embarrassing to ordered it from the bakery

" give me one ansfsvsth please "

it was so embarrassing

mmmm

mmmmm, tasty

this croissant sandwich is so unique and tasty

it's so different from the previous one

the dressing is so refreshing and tasty

with some tomato and salad

and thanks to this tasty croissant, the taste is really yummy

i though at first that the taste is going to be like a normal croissant with just some vegetable, but the result is so surprising

mmmm

and this is my first time to try Paul bakery

the first croissant that i ate, is the 1st place

and in the 2nd place...

is this bread here

it's just bread

it's amazing how a simple items can occupy the 1st and 2nd places

and this is something you always find it in the expensive things, because making a simple thing in its excellent form needs a lot of skills

mmmm

the outside is hard

and the inside is soft

and the aroma of potato is so strong

and its soft texture is so unique

mmmm

this is really tasty

and its salty taste is really delicious

next, what i really love

mmmmm

it's so sweet and rich with butter and this is so tasty

mmmm

and it contains plenty of fruits

like raisins

next, brioche sausage

not, sausage bread

but brioche sausage

mmmmm

the sausage is crispy and juicy and this is really tasty

the bread is simple but it's so tasty

hay, this amazing thing here

this is also croissant sandwich

Croissants au jambon et à la béchamel

mmmm

filled with béchamel sauce

thick and so tasty

with cheese as well

tasty

petit pan with olive

mmmmm

ah, i made a mistake, it's petit pan choux

it's a hard french bread

but the inside is soft and rich with the cream

next mushroom pie

the bakers are really amazing

how can they remember all this names

how they do that ?

with Mushroom, pine mushroom and more

mmmm, the mushroom tastes so good

and this is with salmon

i took a photo of the name when i was in the bakery

but i can't find it

if i was a baker i'll remember the name for sure

ah, here is it

the french bread with salmon

i knew it when i saw "salmon" written

with sesame

mmmmm

this is really thick, and with plenty of salmon and sesame

you may think that the sesame is just here, but look, it's here as well

mmmm

next, grapes tart

mmmm

sweet and tasty

with some custard cream and grapes

and they used a sweet and sour grape juice and this is so tasty

next, this pie here

it's so big, i'm like " a pie human " now

mmm

mmmm

the flavor is so rich and tasty

crispy and goes so well with the chocolate

next, chocolate bread

mmmm

the bread is so soft and this is really tasty

next, camembert sandwich

like always the french bread is hard and rich with the flavor

with tomato, ham, and cheese

next, this sandwich bread

mmmm

mmmmmmmmmmm

this dark things here is so crispy and rich with the flavor and so yummy

and the taste of the herbs is tasty too

and this is the carnule, i really love the carnule

the outside is hard and the inside is soft, and the taste is sweet and tasty

the outside is so crispy

and this is spinach pie

mmmm, with plenty of spinach, and the inside is melty and so tasty

next, feuilletée aux pommes

mmmmm

they used plenty of apple here, with some apple juice

and next, with ham and salad

and some cheese

mmmm, there is some cabbage as well

next, french toast

the shape is really cute

mmmm, and it looks so tasty from the inside

sweet and rich with the flavor and it's so tasty too

and finally, croissant sandwich

mmmm, so tasty

the last bite, itadakimasu

mmmm

gochisousamadeshita

PAUL FRANCE bakery was so tasty

the croissant was so luxurious

and i'm sure that i only tried few things from a huge collection of the french food

eating the bread and feeling like a parisien feels so good

and making the intro was so much fun as well

and becacuse it was so tasty, why you don't try this as well

And as always thank you for watching !

if there's anything You want me to do

please tell me in a comment Section below

if you like this video please hit the like And subscribe buttons

bye bye

all rights reserved. copyright © 2018 Kinoshita Yuka

For more infomation >> 【MUKBANG】 Luxurious Bakery!! [PAUL FRANCE BOULANGERIE] 20 Items [About 7000kcal] [CC Available] - Duration: 12:15.

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

BRUDER TOYS BEST OF CLAAS 2018 - Tractors and combines for kids! - Duration: 1:12:04.

Best of Bruder

Best of Claas

For more infomation >> BRUDER TOYS BEST OF CLAAS 2018 - Tractors and combines for kids! - Duration: 1:12:04.

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

Tekken 7 - Claudio Season 2 Changes - Duration: 3:48.

Claudio has seen a major overhaul, with many of his key moves now being weaker, but with

significant buffs to others.

His infamous hopkick is now weaker, with more recovery frames on whiff making it easier

to punish.

His best mid f3 is now a high, so you'll probably be using b+1 a lot more, but a nice

buff is that it now launches on counter hit.

These changes also apply to Claudio's 4,3 string.

To somewhat make up for this, his 2,1 is now much more effective as a high, mid string

to discourage ducking, being more plus on hit and less negative on block.

The string ender now also leads to a screw combo on counterhit, but doesn't give starburst

anymore.

Speaking of which, Claudio's Starburst moves now no longer require starburst to use, but

the regular versions of the moves pale in comparison to the now even more buffed Starburst

versions, and are generally just not very good.

One of Claudio's biggest weaknesses was his ability to break down turtles, and this

has been addressed somewhat.

His f+4 and uf+3 now offers more plus frames on block, with the latter even leading to

a combo on counterhit.

His db+4,3 string is now a natural combo, and while his low or throw game still isn't

particularly scary, it's better than what it used to be, and should force more mistakes

from the opponent, leading to more whiff punish and counter hit combos.

Speaking of which, thanks to a new screw move in b+4,1 Claudio also has stronger and more

flexible combo routes than before.

His b+4 string is quite different overall now too, with b+4,2 now being a natural combo,

but unsafe on block at -12.

His b+4,1 is safe, but the second hit is a duckable high.

Claudio has a good wallbounce in ff21+2_FCdf21+2 . This is a 14f natural combo double mid string

that can also be used as a punisher or to mix with the mid high ff2,2, however it is

punishable on block at -13.

Though his f, f+2, 2 is even less negative on block now, KNDs and gives starburst on

hit which is quite a buff.

Overall Claudio is certainly a stronger character than before, but perhaps not as much as some

of the early memes might have suggested.

For more infomation >> Tekken 7 - Claudio Season 2 Changes - Duration: 3:48.

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

পৃথিবীর অদ্ভুত ৫ টি রেস্টুরেন্ট। কখনো সম্ভব হলে ঘুরে আসবেন। কেনো নিজের চোখেই দেখেনিন EP1 #DORSHOK_tv - Duration: 5:58.

পৃথিবীর অদ্ভুত ৫ টি রেস্টুরেন্ট। কখনো সম্ভব হলে ঘুরে আসবেন। কেনো নিজের চোখেই দেখেনিন EP1 #DORSHOK_tv

For more infomation >> পৃথিবীর অদ্ভুত ৫ টি রেস্টুরেন্ট। কখনো সম্ভব হলে ঘুরে আসবেন। কেনো নিজের চোখেই দেখেনিন EP1 #DORSHOK_tv - Duration: 5:58.

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

School girl rides to Morikolo! Oops! Bonus with video - Duration: 12:23.

Hi YouTube Hello, welcome to Animal Land

This time it is

Little time ago Moricolo my wife challenged Ride. This second bullet

Hillary will challenge. What happens when Hillary runs. I will report this

I am expecting to be able to ride at high speed as a girls high school student. how is it?

I think I can go. margin? You can arrive in 5 minutes. I will not arrive in 5 minutes

It is about 20minutes by my ride.

It was 40minutes when Mommy rides.

So, how long will you take? It's 5 minutes

why! You are faster than me.

I'm going

I will enter the tunnel

My eyes are going crazy

Today is a weekday so there are few streets in the car

There is not much fear.

Just a car enters a huge sound about 100cars

Look! One car came in right now. The entrance is very far this sound

I hear so much noise

The tunnel is scary

Stop Yes

I got better at stopping

to go Hey

Row it.

Scary, scary, scary super scared

You can erase the light already.

Well I can stop it

Straight? It's straight, forever

Stop Yes

I will climb that slope. Yes

I will climb that slope Mommy made a funny reaction

gee climbing that slope? Incredible! Even when I went to Lake Motosu there was such a slope

Lake by Mt. Fuji I went with

It is a great steep slope from the slope of Lake Motosu

Arrive at Moricolo when you climb that slope? But it may not be a big deal since I am climbing up rain (the story is over)

Arrive at Moricolo when you climb that slope?

There is another slope, I climb twice No

Let's ride quickly

If you think that it is a serious problem, you can run in the sidewalk. Can I put it in already?

People are walking this sidewalk, there is also a band for bicycles

It's okay Hillary

Looks okay

How nice

Excellent, really.

I am tired. I am tired. Without dropping Kurukuru cadence

I hope I can ride this feeling all along. It seems that the speed is falling a little.

It's about five minutes soon. You arrive already?

What? I wonder if it has not been five minutes yet.

It's still 1 minute. Still 1 minute?

I feel like I got about 5 cups of cup ramen

I will have lunch at first when I arrive today. Yeah

Shall we eat 5 cup noodles No, I will eat it at Sugakiya

Now the slope is getting loose

I am very thirsty.

If you drink

You should drink it.

I am going ahead

Hillary how are you?

How is cleat?

How are you feeling with your shoes?

Stop somewhere! Are you feeling good? (The distance has been apart so I can not hear the voice)

shoes! A little! It is not voice!

This person does not seem to be heard at all

how is it? All right

I am very tired.

Oh! Great steps!

Awesome ground is broken Is true! It's rooted.

It really arrived in five minutes. I arrived in 5 minutes.

I guess so Wow awesome road is bad I feel like I have not spent so much time.

Oh, I may have arrived in five minutes

Please enter the sidewalk from here I will run underground.

It turns to the left here. I will speed down.

Impossible impossible, impossible

It's not okay so steep slope. It is not a steep slope, but it slips

I feel a bit scary, but with rubber, it's okay

Rubber

It may be better to walk on this slope because the upper half is steep

Daddy will go

I could go! You could go. was scary

Please get off the bicycle on this left

From here it is a rule that I can not ride a bicycle

It is now It is standing where I ride from my home to Moricolo Park

I arrived there. Then, I will go on a cycling course

How was it, was it enough to run?

I arrived in 5 minutes. I have not arrived in 5 minutes

It is about 30minutes. You must be kidding! Hillary clock was 5 minutes

It seems to be said that, was it enough? I can afford it.

Did not you say Ha ha? Is not it because of it?

Have you taken such a movie?

But I was running firmly unexpectedly

It was not feeling like a hulafula

It was more than I thought. Truly school girls

I feel like I climbed up with a good feeling

Well, I think I will finish with this

Those who seemed interesting this time movie, Thumbs Up please

Thank you for subscribing to the channel

Then.

Bye

Hillary, Falling with bike

Clip off was not possible?

Fall to roll. There was no injuries. Everyone is to experience. Let's enjoy it without worrying about it.

There are many other videos at Animal Land Please do watch this kind of delivery and such

For more infomation >> School girl rides to Morikolo! Oops! Bonus with video - Duration: 12:23.

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

Amazing Dance Performance At A Dubai Desert Safari CAMP - Duration: 10:24.

Amazing Dance Performance At A Dubai Desert Safari CAMP

Amazing Dance Performance At A Dubai Desert Safari CAMP

Amazing Dance Performance At A Dubai Desert Safari CAMP

Amazing Dance Performance At A Dubai Desert Safari CAMP

For more infomation >> Amazing Dance Performance At A Dubai Desert Safari CAMP - Duration: 10:24.

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

The Theory of Angular Ivy | Alex Rickabaugh | AngularConnect 2018 - Duration: 41:16.

For more infomation >> The Theory of Angular Ivy | Alex Rickabaugh | AngularConnect 2018 - Duration: 41:16.

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

You might not need NgRx | Mike Ryan | AngularConnect 2018 - Duration: 27:32.

For more infomation >> You might not need NgRx | Mike Ryan | AngularConnect 2018 - Duration: 27:32.

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

Climbing up injector trees | Uri Shaked & Kapunahele Wong | AngularConnect 2018 - Duration: 29:55.

For more infomation >> Climbing up injector trees | Uri Shaked & Kapunahele Wong | AngularConnect 2018 - Duration: 29:55.

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

Architectures for huge Angular based enterprise applications | Manfred Steyer | AngularConnect - Duration: 30:42.

For more infomation >> Architectures for huge Angular based enterprise applications | Manfred Steyer | AngularConnect - Duration: 30:42.

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

Granit Xhaka hints at Arsenal exit as he discusses his future - Duration: 2:13.

 Arsenal midfielder Granit Xhaka has hinted that he would like to return to former club Basel in the future

 Making his debut for the Swiss club back in 2010, the 26-year-old departed for Bundesliga club Borussia Monchengladbach two years later after making a big impression in his home country

 With Arsenal fans now finally getting to see the best of the Swiss international in his third season at the club now that he has been paired alongside Lucas Torreira in midfield, Xhaka has claimed that he would be open to a return to his former club in the foreseeable future

 However, the club's supporters don't have to worry about an imminent exit from north London for the midfielder

  "Definitely! My career started here and there it is a goal, actually, my dream to return someday," Xhaka told Basellandschaftliche Zeltung (via Sport Witness ) when asked about a return to Basel

 "That certainly won't be the case at 28, I'll be honest. It'll probably be more like Alex Frei, who's the best example of how to do it

 "He came back once he was in his thirties, but still performed and helped FCB win a few titles

 "Of course, the expectations are high when you come back again, but it is clearly a dream

" Keep up to date with the latest news, features and exclusives from football.london via the free football

london app for iPhone and Android . Available to download from the App Store and Google Play

For more infomation >> Granit Xhaka hints at Arsenal exit as he discusses his future - Duration: 2:13.

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

用娃娃機夾龍蝦!來吃豪華龍蝦餐!【Kman】[台湾UFOキャッチャー UFO catcher]#421 - Duration: 10:07.

For more infomation >> 用娃娃機夾龍蝦!來吃豪華龍蝦餐!【Kman】[台湾UFOキャッチャー UFO catcher]#421 - Duration: 10:07.

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

The good, the bad and the ugly - Component architecture at scale | Ana Cidre & Sherry List - Duration: 27:21.

Hi, everyone.

And thank you so much for coming today.

We're very excited to be here.

We're going to be talking about component architecture at scale.

But just before we start, Sherry, give us a quick introduction youth yourself.

SHERRY: Sure.

Hi, I'm Sherry.

Yeah, we are super excited to be here today.

A little bit about myself.

I'm working at frontend developer in Copenhagen.

I'm a woman technical lead.

And I have a lot of passion for the community and I have a way to make myself involved in

a lot of community projects.

We are going to mention only two of them here.

One is that proud organizer of ngVikings.

It's collaboration between the Angular meetup organizers in the Nordic, minus Iceland.

We have Magnus here.

And I'm a proud organizer of as well.

ANA: I'm Ana, I'm a developer advocate for Angular.

And I get very involved in the community.

Sherry mentioned ngVikings, that's me, and ngSpain is happening in June next year.

So, stay tuned because that is happening.

And also, if you want stickers for ngSpain, ngVikings or Angular, see us later.

We will be happy to give them away.

You're wondering why are we giving talks together?

We don't live in the same country, we don't work in the same company.

What's going on there.

Sherry, why don't you tell a little bit about us.

SHERRY: Sure.

I totally remember the day that we met.

It was a sunny day.

Definitely not in Copenhagen.

But in Spain at the Angular camp.

As they mentioned.

That we found out that we have a lot in common even though we live far and stayed connected.

And everything happened in Helsinki, and she couldn't be here because of a new baby.

And we ended up giving the introduction to Angular instead of her.

And while working on that, we found out actually we can work really well together.

Now everything has started there.

So, that was our story.

But Ana, I think you have a big announcement to make.

ANA: Yeah.

We do.

We are now the proud owners of Jurassic Park.

We are really excited about this.

However, there was a problem.

It was too zoo concept like for us.

And we really didn't like this, did we?

SHERRY: No, we didn't.

So, we came up with the idea to adopt all of these dinosaurs and take care of them.

But later we realized that we seriously have no clue how to take care of dinosaurs and

we didn't want to be an irresponsible parent.

So, we decided to actually build an application and put the dinosaurs for adoption instead.

It was a brilliant idea and we should start creating that here.

ANA: Remember that they have the applications and dates that we need already.

Why not use that?

SHERRY: That's a good point.

I don't want to reinvent the wheel.

But we don't know how the application is working, and if we go and use this application, they

have to maintain it.

Should we start by looking at the code first?

ANA: Yeah.

That's a brilliant idea.

Let's go have a look.

SHERRY: Yeah, let's go.

ANA: Okay.

That was really bad.

SHERRY: No, no, no.

ANA: Yeah, that architecture was no way SHERRY: No, no.

ANA: But Sherry, why don't you tell us what is a bad architecture?

SHERRY: I can clearly explain it by what we saw there.

What we saw there, it was basically a spectacle mashed together and then we even wanted to

add a few features.

It was totally not possible.

So, it was not scalable as all.

And maintainable, you really could not find out what it's worth.

Everything was basically one form.

It was not a good idea.

And reliable?

I'm not even sure how that application is working.

And definitely not for Ana.

As I mentioned before, start from scratch and put all of those dinosaurs there for adoption.

ANA: I agree that you can start from scratch, but you want to put all of the dinosaurs up

for adoption?

SHERRY: Yeah, what's the problem?

ANA: You are there are T Rexes and carnivorous ones that can eat us?

SHERRY: Are you Serious?

They can eat us?

ANA: I have taken care of them and it's good.

SHERRY: How?

ANA: I love dinosaurs, or I wouldn't have them.

I spoke to the herbivorous ones, those prosecute plant eaters, and they were excited about

having this application.

They already built it.

It's done.

SHERRY: In the last few minutes, they built an application.

ANA: Yes.

Go show them.

SHERRY: Actually, it looks good.

ANA: They did it, it is all done.

SHERRY: That's great.

But still, do you guarantee that they are not the same dinosaur that built the application

before?

I mean, sounds fishy.

A few minutes?

ANA: Yeah.

I think you have a point.

We should definitely check to see if it is scalable, maintainable, reliable and reusable.

But just before we dive into it, how about we tell the audience what we are going to

be learning today.

SHERRY: What we are going to do is how to split an application into a smaller section,

which are components.

ANA: Then we're going to see what the components are.

SHERRY: And then an overview of how ngContent can help you.

ANA: And we are going to see how components interact with one another.

Check out the components.

SHERRY: Yes.

I guess they are somewhere in the forest.

We have to go with our car there.

ANA: Yes, go find the components.

SHERRY: Okay.

This is let's look at the code.

Oh, no.

Can you see what I see?

ANA: Yeah.

Let's take a closer look.

SHERRY: Yeah.

ANA: What we have is a direct HTTP call from our component.

SHERRY: That's not good.

ANA: We don't approve.

SHERRY: We don't approve it at all.

No, no, no.

Why?

ANA: We don't approve because we had way too much logic for that component to hold.

We need to separate it and break it down more.

When we're talking about separating, we need to talk about the separation of concerns.

And here we have a direct HTTP call from a component and that shouldn't be happening.

Also, we need to make sure that component takes care of its own logic.

So, it has single responsibility.

And, yeah.

Now that we know why this isn't a good example, can you show us how we can actually save this

component?

SHERRY: Sure.

We actually can use services.

And what you need to do is that you need to extract what you saw that, for example, that

all logic related to how to communicate with the backend extracted from the component and

then put it in a service.

And then later on you can inject that service in any component that you want to and then

try it.

And then call it there.

So, in this way you can even inject it in many more components.

Write it once and reuse it later.

So, let's see how we created that.

So, we basically created a service and then we extracted those logic here and then we

created a method called getDinosaurs.

And then inside our component this time we first imported it and then we injected it

into our constructer and then we just called it and then used it.

So, oh.

>> Rawr!

ANA: What was that?

SHERRY: Ana?

ANA: I know it.

SHERRY: I do.

You know I said I took care of the T Rexes?

ANA: Yeah.

SHERRY: They're angry, I opened the cage and they just ran away.

ANA: You said they are SHERRY: Run.

Yeah.

ANA: To the next page.

This looks good.

SHERRY: This is a detail page.

But let's check the code.

Okay.

So, this is just like the first application we saw.

So, we have everything in one place.

We don't have any sort of well, they did make one component, right?

ANA: Yeah, they just heard that they should use components.

So, they just put everything here.

I cannot imagine that how oh, my god.

So SHERRY: It doesn't even fit on the screen.

ANA: No, not at all.

Really bad.

That is.

SHERRY: We definitely ANA: We definitely do not approve it, no,

no, no.

SHERRY: Okay.

So, why can't we approve it?

ANA: It's the concept, you put too much of the concept in one place and then you have

the separation of content and the responsibilities.

So, that's not good.

How can we save it?

How can we approve it?

As you know, Angular allows us to use component based architecture.

And component based architecture allows us to divide it into smaller widgets, components.

Before you start coding, get the mockup and start drawing rectangles around it which you

will divide as components.

And you can start deciding what's going to be a parent component, a child component and

that way you can start structuring your application.

We already did that.

This is what we did and our way of structuring it is not always the best way because it depends

on the application.

But it's a good start.

SHERRY: Yeah, it's a good start.

We can look at one of the components that we created which is the product.

So, in this part while you're adopting a dinosaur you can also go ahead and then buy some product

that dinosaurs like.

And so, let's see how we did that.

So, what we created, it was a specific product component.

And then we passed.

These are the data that they received.

One is about the list of products, and then the other one is about the dinosaur's habit.

The product that they like, or they don't like.

And then because they can buy it, so, they need to have kind of a way to communicate

outside of that component.

So, we have an app by.

So, look here.

We only put all the logic that we need inside this component here and then we ignore the

rest.

I mean, because the rest they are in the different components.

So, everything is nice and clean.

And then that component, actually the treatment is pretty simple here.

In this way, if tomorrow there is a problem with the product, we know which to open.

You don't need to control shift F to find the thing that you want.

So, you open the file that you need.

So, I would stay that we are good.

ANA: Yeah, but Sherry, lately I have been hearing about the components, can you explain

in SHERRY: I can do that.

We can categorize our components into two types.

Stateful components, or smart ones, or stateless component or the DOM one.

Stateful components are the one that they care about the kind of the business logic.

So, everything in all the business logic that we have there, they are normally tied to a

specific user's story.

And they also are the one that they care about how to communicate with the backend, for example,

and get the data.

So, these are not normally the type of component that they are the best candidate to be reusable.

And a stateless one, they are the one that they literally don't care.

But they just get the data from wherever, normally from the parent.

And then they just display in the way that they want to.

So, these are the best components.

This candidate to be the reusable one.

Okay.

In our story, what we need, we make one stateful component.

And this is the one that we also injected the service there.

So, that we got the data that we want, and the rest of our component in this way they

are stateless.

But today we can pass the date off for the dinosaurs.

Tomorrow we can pass the date off.

Yeah.

So, yeah, I guess we were good.

ANA: Yeah.

Let's run off to the next component.

SHERRY: Let's go.

ANA: Check it out.

SHERRY: Okay.

That looks pretty.

ANA: Let's look at the code.

SHERRY: No way.

ANA: So, there's basically a copy and paste with just the change of header.

So, this would be like do you know what this would be like?

It would be like having two Sherries.

SHERRY: Okay.

ANA: But with a different name.

SHERRY: Another me?

ANA: We don't need two Sherries.

SHERRY: One is enough.

ANA: So, we do not approve?

SHERRY: One is enough.

ANA: Why don't we approve?

SHERRY: The dinosaurs thought they were too smart.

They had similarity into two forms and copied and pasted and changed something there.

In this way you're basically repeating yourself and you really don't want to repeat yourself.

I noticed on the component there was a kind of a type of food.

And if you want to add a couple of things more to that, that section, you have to do

it in two places.

So, you have to maintain this in two places as well.

And as the product grows, so this can easily get out of hand.

So, this is not good.

And testing is something, but two times and it's not too smart.

And as I mentioned, it's also not maintainable.

So, Ana, how we can improve?

ANA: In this scenario, we can use ngContent.

In AngularJS we had transclusion and then slots.

This is the same thing.

It acts as a place holder in the code which you can then reuse later.

What we did with these forms is we put one form, we didn't have two forms, we have one

form with the same content and the places where we needed the change, which were two

places.

One was the header and one was the button.

We added the ngContent tags.

And what we do here is we add a select attribute because we have more than one piece or element

that will change its data.

And when you add the selectAttribute, you have to tell it which element you're focusing

on.

In this case, the h3 and later on.

And how do we pass data or whatever we need to this ngContent tag?

What we do is add our component.

In our case, we did it in the add component file and add the element that we need to change.

And the h3 and the button and then we just pass whatever we need through there.

This is a pretty simple example, but it can get more complex.

You can add another component inside or whatever you may need.

So, I think that component's done with.

SHERRY: Yeah, it's totally good.

Up to here we found out that how obviously that application into a component and then

how we make it flexible while using ngContent.

But Ana, how can these components talk and communicate with each other?

ANA: Well, the best practice is data flow.

Normally we would have a stateful component which passes its data down to its children

components or stateless components.

And if there was an event to occur, that event would then be passed up to the stateful component

and then be handled.

Let's take a look at the example.

Now, say that the right hand child component decides to have a change.

An event change, for example, a button click or some input or whatever.

That would then be passed on to the parent component which would then be passed on to

the stateful component which could handle that event and pass back down the data that

was necessary.

This is really good for debugs.

Because you know exactly what's going on.

But imagine if you had an example like this.

Like we're gonna have the same thing happen.

So, we have an event happen.

And all of these things change.

I don't know about you, but I would hate to debug this.

And I wouldn't even want to look at the code.

So, we just want to have a friendly reminder that events up and data down.

Okay.

So, this is a very simple scenario that I showed you.

But imagine if things got more complex.

Sherry, what could we do there?

SHERRY: Yeah.

I can explain it with what happened to us.

This dinosaur came to us and ask for a new product which is pension product.

They said what happened to us when we get old?

I said that, okay, we can fix it.

And we started to build some pension product with it.

But then soon realized that each dinosaurs get adopted in different countries.

And these countries, each of them, they have their own pension rule.

And then we started to build components, components, and then realized that to implement all of

this logic we had a toggle in some part of the form and changing some of the form because

of the business logic behind it.

So, we ended up in a nested, nested, nested war.

We said that, okay.

We can handle it because we know that as soon as we stick to the flow, which is input on

and event off, we can eventually go ahead.

This is a good practice.

It's okay.

But we realized that actually our application was so slow because of those nested nested

components, that they want to talk to each other.

And by having all of these meta layers, especially those toggles that has changed something over

there.

It was slow.

We thought it was going to be easy to debug.

But no way.

In that nested world, we could not fix it.

So, what I talk basically was, for example, in the component tree that you have a toggle

in A and that is going to change the one in B.

And we could not handle it.

So, do you have any solutions for that?

Because I know you have all the answers.

ANA: I wish.

Okay.

So, it really depend on the scenario and the application.

But a good starting point would be going back to ngContent.

Now, before we describe how it can make a component flexible, but it can also help when

it comes to flattening the component tree.

So, say we take our example from before where we had those two forms instead of one.

What we could do is just make the one form instead of having two and we would actually

have one layer less on the component tree.

And this would increase performance because we wouldn't be having so much change detection

going on and so much inputs and outputs.

So, that is one approach.

What would be another approach, Sherry?

SHERRY: The other approach is that we use behavior subject.

What is unique about them is that they are observers, that they can be observed.

And also, the cool thing about them that no matter that when you subscribe to it, it's

going to give you the current state.

So, even if you subscribe it late, you still will get the current state.

So, what we decided to add to our application was that happiness indicator.

So, as more product that the dinosaur lucks that the happiness increased or decreased.

So, you can say that the product component is going to be totally tied to the other component

up there.

So, what we did, we created a service and we put that behavior subject there.

And then the component A and B, they're both being injected in there.

And then as soon as so, in this way they both post directly to this service.

And most of them can get the current state.

So, even if for another feature that the dinosaurs may ask us.

So, we going to add a new component.

That component can also get the current state.

So, you can have as many as whatever subject as you want in your component, in your application.

And it's going to help you.

And it's a good practice.

No worry about it.

But later we realized that for that pension one, it was not enough.

ANA: No.

It wasn't.

The other approach we have is actually state management.

And this way we can hold all of the state in one place, unlike the subject where we

have to stay in several places within the application.

So, what I mean by this is that we will have the service that will pass the data on to

our store which will handle the state and then pass it down to the stateful components

and the child components.

And, again, say the right hand child has an event that could pass it up to its parent

component which would then pass it on to the service which would handle this event and

pass it back to the store.

And that store would handle it so that with the help of selectors we can actually send

down the data that we need to only to the components that we need to.

This is a really cool thing about state management.

But the thing is, it's become really trendy and everyone seems to be using it even when

they don't need to.

So, we really want to emphasize on the fact that you should only use state management

if it's necessary.

And if you want to know when you can use it, there's actually a really good talk after

lunch by Mike Ryan.

You might not need NGRx.

SHERRY: Yeah.

I personally want to invite you there.

He's talking about Sherry principles.

It's spelled differently but pronounced the same.

Come to his talk.

Up to here, we found if you use ngContent you may be able to remove unnecessary layers.

With behavior and subject, you can have the method partnering.

And if you want to keep the states all in one place, you can use state management.

ANA: Okay.

I think we're done here.

SHERRY: Yeah.

We're done.

ANA: But Sherry, with a does the future hold for us?

SHERRY: Yeah.

Well, there is one thing that we created all of these components and made them come together

with each other.

But we can go a step farther and use web components which is our favorite topic.

We can talk about it forever.

But we don't.

We can do it with Web Components.

They are using browsers capability.

I pronounce it wrong.

Okay.

So, because of that, we can actually if we can write fewer lines of code.

But the we can gain the formats because we are using what that web browser is doing.

So, we can, for example, take advantage of change detection in the browser.

So, it will bring us a lot of features including being platform agnostic, so you can actually

share your components in the open source world.

And no matter who is using what what framework, they can use it.

And even if you want to have a migration plan to some other frameworks or even from AngularJS

to Angular, you can also help it.

And now with Angular Element, we can also use it.

So, go ahead and read about it or you can come later and talk to us.

We can talk.

So, is it the time to talk about the ugly part?

ANA: Yeah.

So, even though we tried to make our code perfect and our architecture spot on, there's

always gonna be 20% of that code that we hate and that is really horrible and that's okay.

It happens to all of us.

But make sure that the 80% is spot on and you're good to go.

There isn't a one solution fits all when it comes to architecture.

It really depends on what application you're building and also if it's like form driven

or data driven it will really depend.

But we want to say is that even if you think that your application isn't going to scale,

always prepare it for it to be scaled from day one.

Because it probably will scale.

And if it doesn't, at least you have a neat and tidy codebase.

And a piece of advice: We want to say we've insisted that you need to break down components,

but make sure you don't break them down too small.

There are limits.

Not too big, not too small.

Medium.

Also, keep them simple and stupid.

Do not overengineer your application.

It's not necessary.

It just makes it too complex.

And also make sure that your components are testable.

Now, as we're finishing, we would just like to say a massive thank you toed, Mike, Brett,

Quinton and again Mike.

The other Mike.

Because without them this talk wouldn't have happened and we're very grateful for all of

their help.

And also, a big thanks for Sherry's dog who appears in that for all the mental support

he gave us during the shooting.

ANA: And thanks for being here.

I know you're hungry, you want to run to the lunch.

But before that, we have something.

We promised to say who is our favorite dinosaur.

And it's actually Laski who has a badge thanks to AngularConnect.

You can follow us on Twitter and we are going to share the slide.

And you can come and talk to us and, yeah, see you there.

Thank you.

[ Applause ]

Không có nhận xét nào:

Đăng nhận xét