Thứ Ba, 27 tháng 11, 2018

Auto news on Youtube Nov 27 2018

- When embarking on the Partner Visa Journey,

it can be quite easy for you and your loved one

to get caught up on the logistics of it all.

That is the forms, what are we going to include,

the cost, who's doing what.

It can quite quickly become a stressful

and negative process for couples.

I've seen it happen to hundreds over the years.

When you set out on the Partner Visa Journey,

the one thing to do is to get

really clear about what it actually means to you.

Why're you going through this process?

At the end, what's it going to mean to the two of you.

Will the grant mean the security and freedom

to be able to plan the rest of your lives together?

Will it be the next step towards having children together

or being able to purchase your forever home?

It might be for the visa Applicant

that's securing that Partner Visa's

going to open up more opportunities when it comes to work.

Whatever it is, it's really important

to get clear from the outset.

Getting clear about what your goals are

upon securing that Partner Visa

is going to be what's going to get you through

what can often be a stressful process.

Make it a positive process for you and your partner.

For more infomation >> What will the Partner Visa mean for us? - Duration: 1:12.

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

So I tried playing the demo and this is what happened (read description) - Duration: 2:14.

So you decided to look here. Well there isn't much except for this! NYEH HE HE HE HE

For more infomation >> So I tried playing the demo and this is what happened (read description) - Duration: 2:14.

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

MONDAY BITES: What I Eat in a Day #5 | How I Structure My Diet Around Holidays - Duration: 11:42.

https://lynsee.plankk.com

For more infomation >> MONDAY BITES: What I Eat in a Day #5 | How I Structure My Diet Around Holidays - Duration: 11:42.

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

Arsenal fans reveal what they did when waiting for Bournemouth's free-kick - Duration: 2:25.

 Arsenal supporters have been sharing stories about what they did in the final seconds of the 2-1 win over Bournemouth

 The Gunners stretched their unbeaten run across all competitions to 17 games thanks to Pierre-Emerick Aubemeyang's second half winner at the Vitality Stadium, but they almost squandered two points at the very end

 As the clock ticked over the allocated four minutes of injury time, Shkodran Mustafi lunged in on Callum Wilson and conceded a free-kick right on the edge of the area

 With Junior Stanislas standing over the ball, those connected to the north London outfit would have feared a repeat of events at the end of the first-half

 Leading 1-0 thanks to Jefferson Lerma's hilarious own goal, the visitors conceded possession deep in the Cherries' own half with just seconds of the opening period left to play

 Wilson led the counter-attack, playing in David Brooks who then laid the ball on a plate for Josh King to equalise

 Was lightning set to strike Unai Emery's side twice in the same game?  Fearing the worst, some Arsenal fans couldn't bare to watch the final seconds

 Take a look at some of the hilarious things a number of supporters did whilst waiting for the free-kick to be taken

 Luckily for those supporters, Stanislas blasted his effort high and wide.  The final whistle blew soon after and the Gunners were back to winning ways in the Premier League following three consecutive draws against Crystal Palace, Liverpool and Wolves

  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 >> Arsenal fans reveal what they did when waiting for Bournemouth's free-kick - Duration: 2:25.

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

How to use Google Analytics - What are segments? Quick facts about segments in Analytics - Duration: 2:04.

In this video let's talk about Google Analytics segments and in

particular are some facts about segments that you might not

know.

First things first where are segments printed clicking to any

of our reports here and most reports,

if you have access to segmentation or if they're able

to be segmented you will see them here.

Now these segments you just click on add segment and you can

see that you've got the ability to create new.

You can also import from the gallery. The segments gallery is

a great place to get some inspiration.

You just import these different segments and you can actually

take a look at how they were built to see that are going to

be useful for you.

You can also share segments with individuals on your team as well

as others so when you click on share segments will actually

give you a link that you can send to other people or you can

just easily make them available to other users on your team.

Now I'm going to go ahead and take a look at a segment that

we've created already so I can show you some additional things

that you can do as well.

So here is a segment is visible in any view I can change that

and say I just want to apply in this view.

Depending upon your permissions and Google Analytics You can

also send it available so that other people in this account

called collaborators can also access that segment and you can

see that there as well. Sessions also have this nice little

conditions feature as well as sequences. So conditions are

these things must be true. Sequences are kind of like

conditions but you can create steps so you can have that as

well.

Helps you sort of create a little funnel of people that did

this and then that and then that. So really fascinating.

Very very powerful feature of Google Analytics segments.

Interestingly enough you can also create segments and then

use them for remarketing purposes assuming you're using

Google Ads and they actually connect directly into Google

Ads.

Incredibly powerful. If you are not using them, it's a must use

for your own Google Analytics.

I want to know how you were actually able to apply what

we're learning here.

So do me quick favor leave a comment below.

Let me know exactly how you're applying this to your own

business.

Also if you love topics around Google Analytics as of course I

do.

Be sure that you like and subscribe to the CXL channel.

That will you'll be notified when new videos are released.

For more infomation >> How to use Google Analytics - What are segments? Quick facts about segments in Analytics - Duration: 2:04.

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

Be What You Are - Duration: 1:53.

You know, recently I heard about a young man who wanted desperately to make his high school football team.

Now, at his school if you were on the football team, everybody called you a tiger after the school's mascot.

Well, finally the day came when the coach announced those who made the team and near the end of the list

his name was called. But it was the words that the coach said to him later that he would always remember.

The coach said, "Son,

congratulations. You are

officially a tiger but remember: now you have to become what you are."

You see, that day he became a tiger as much as the most valuable player on the team.

But he and his teammates all faced the same challenge: to show the fans every week when they played

what they were and to become the best tigers they could be.

As Christians, we're like that young man. In Philippians chapter 1 - as in all of Paul's letters -

he greets the saints that were in that city.

Not Christians and the saints, just the saints. You see, in the New Testament,

every Christian is a saint. Now,

there are many people who think to be a saint that you have to do a lot of good works and

live a perfect life. Or to express it another way,

they think saints are super Christians. But in the New Testament

every Christian is called a saint. In

your church, every believer - from the new believer to the one that is known Christ the longest - all

are saints. Now the challenge for all of us is to live a life that

expresses that reality. That is, to become

what we are.

Think about it and I will see you tomorrow.

For more infomation >> Be What You Are - Duration: 1:53.

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

🔑 The REAL Secret Law of Attraction: What NO ONE Is Talking About (Must Watch!) 📺 - Duration: 16:09.

This is Fadie Hany Areny World King, and in this video I am going to share with you

the reason why most people never manifest their dreams

This universal law applies to everything in this world, and once you understand this law it will

positively change your life forever. I hope you enjoy! For more videos

make sure to hit that subscribe button and bell icon to stay up to date with the

World King

Everything in the universe operates on a

set of universal laws or principles that are always working and always constant

no matter where you are or what you do you are unable to escape these laws of

the universe. Some of the laws are physical while others are spiritual or

quantum in nature. These laws govern our lives and once you master them

you will have, be, and do everything you want in life

these laws are not new they have governed the world since the beginning

of time. Some of the greatest rulers of history used this secret knowledge and

wisdom to keep people under their control. For thousands & thousands of

years only select people were able to learn the secret to manifesting

everything in this world. What I am about to share with you will

change your beliefs about the Law of Attraction, and I promise it will put it

all into perspective... Knowing about the Law of Attraction is not enough! Many use

the Law of Attraction to be lazy and not actually do anything. They think that

simply visualizing their dream life will be enough to attract it. Without truly

understanding this simple law that I am about to share with you, you will be

unable to actually manifest anything in your life. This law is required for you

to change your energy vibration it's required for you to reap and sow and it's

necessary for you to attract what you want into existence

the law I am talking about is the Law of Action the most important yet forgotten

universal law. The Law of Action works hand in hand with the Law of Attraction

and yet very few actually understand that this law is the missing link to

everything they want in life. It's not just about envisioning your life and all

of a sudden poof everything you want happens. Action is the most crucial part

of creation. Isaac Newton one of the most influential scientists of all time and

key figures in the Scientific Revolution once said "For every action, there is an

equal and opposite reaction." This means that in every interaction

there is a pair of forces acting on the two interacting objects. The force always

comes in pairs. To give you an example of what is meant by Isaac Newton's third

law of motion I want you to envision a fish moving through the water

as its fins push the water backwards the equal and opposite reaction is that

the water pushes the fish forward propelling the fish through the water

making it possible for the fish to swim. Another example would be a person

shooting a gun. When the trigger is pulled the force needed to propel the

bullet will produce a force in the opposite direction

kicks back against the person shooting the gun also known as gun recoil. This

recoil is the equal and opposite reaction that Newton spoke of

the Law of Action can be applied in many different ways

but I want to focus on how it has to do with your journey for self-improvement

the best way to visualize the Law of Action is to think of a set of scales

we'll call these scales the scales of your life. On one side of the scale is

all the positive things in life that you have developed. This consists of all your

positive thoughts, actions, and habits. On the other side is all the negative

things you have allowed into your life the negative thoughts, criticism, self

doubt, fear, bad friends, destructive habits. Now, let's pretend that every one of us

has 100 coins divided into two piles. Some of you may have the majority of

your coins on the positive side, while most of you will most likely have it on

the negative side. Every one is different in the way their coins are divided but

the beauty of the Law of Action is that you can always tip the scales in your

favor. Your goal is to get as many coins as possible on the positive side and you

do this through goal-setting, developing positive habits, visualization, hard work

affirmations, self-discipline, gratitude, and most importantly training your brain

to think positively. Every time you succeed in moving the

coin to the positive side you are acting and the Law of Action will remove one coin

from the negative side. The positive actions you do to move a coin to the

positive side has an equal and opposite reaction taking one coin from the

negative side and moving it to the positive. This is how we can get the Law

of Action to work in our favor. The more positive habits, thoughts, and actions you

develop and take the more you will see your negative habits, thoughts, and

actions disappear. The more you go out to serve other people, the less selfish you

will be. The more positive progress in your life you make the more negative

hindrances you leave behind. But beware, the Law of Action can also work against you

you see the flip side of the law is also true the more you increase your

self-destructive habits the more you'll decrease the number of positive

successful habits you do. Many of you are currently holding on to some of those

bad habits that frustrate you from time to time. You might be struggling with

laziness, unhealthy substance addictions, self-criticism

gossiping, overeating, lying or hating and envy. The

more you hold on to these bad habits the less coins will be available to move

over to the positive side of your life's scale. For example, if the action is over

eating the equal and opposite reaction would be a decrease in your health and

increase in your weight and obesity. Or if the action is smoking a pack of

cigarettes a day the equal and opposite reaction would be a decrease in your

lung performance and your overall health. For every action there is an equal and

opposite reaction. Remember no one can create or destroy

their 100 coins they can only allocate them and choose

which side to put them on. So when one side of the scale goes up the other side

goes down. Action-reaction. Energy is never created nor destroyed it is

constantly changing. That means no matter what has happened in your life up until

this point is irrelevant, because energy is constantly moving and changing and

you are the only one who has the power and control over your own energy. Every

human being has the power within themselves to change their destiny to

change their lives and to be all they can be. So, what can you do now to begin

manifesting your dreams? In simple words take action towards those dreams even if

you can't actually see what is happening or that what you are doing is working

there is indeed a reaction going on. The great Martin Luther King jr. said it

perfectly "Faith is taking the first step even when you don't see the whole

staircase." I want you to think of your life as a

journey and the dreams goals and visions of the life that you want to live is at

the end of a dark road at night. Your headlights are your actions which give

you just enough light to show you the path ahead and with every action your

road to success is revealed. This journey is the best part of your life. You must

embrace it and you must have fun doing it. After all what can be more fun than

manifesting your dreams? Now to begin manifesting your dreams and

using the Law of Action to work for you I've outlined three easy steps that you

can take right now to positively change your life forever

1. I want you to take an inventory of your thoughts habits and behaviors make

sure you do this for both good and bad coins that are on both sides of your

scale at the moment. This will allow you to truly reflect on what's going on and

what currently is affecting your life the most. 2.

I want you to find the negative actions that will be the easiest to remove or

end. These will be the ones I want you to focus on first... As the quicker you can

begin acting the faster you will see results. As soon as you have changed

those negative actions you will notice an increased benefit in the positive

side of your life because you will be moving coins from the negative side of

the scale to the positive side. 3. I want you to begin to look for new

positive habits to start. This can be anything from setting effective daily

goals, working out, complimenting others, or smiling throughout the day. Start

adding these positive habits to your life every day and soon you will find

that you will be tipping the positive scales in your favor.

The more positive you do the more positive you'll be. Remember to never

rush through this process, but rather trust the process. The journey is what

will bring you happiness not the destination. Your transformation will

become the foundation for everything you need to live the life of your dreams. You

are a creator and the world is your masterpiece. Everything you want is a

series of actions away from you. Being a champion never happens overnight nor

does it just come to you. Becoming a successful businessperson, famous actor

rapper, singer, public speaker, politician or anything else you want must be earned

through sleepless nights through hard work constant development positive

vibrations and most importantly by doing. Nothing in life is given to you ever. You

will have to learn to be the champion you will have to grind every single day

you will have to put in the work to get the results in anything in life that you

want. And anyone can do it anyone can be number one and be the best

what they want. But it doesn't take a couple weeks of

doing it. It requires you to wake up every single day and do it. It requires

you to go to sleep thinking about doing it, to live, eat, and breathe your destiny

this is your life's calling! it's what you were put on this earth to do, and I

hope this video is what you needed to rewire your psyche and get you to do it.

Remember all it takes is doing and you will soon find yourself having.

This is Fadie Hany Areny World King and I support and believe in your dreams.

For more infomation >> 🔑 The REAL Secret Law of Attraction: What NO ONE Is Talking About (Must Watch!) 📺 - Duration: 16:09.

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

What if I can't pay my Self Assessment tax bill? - Duration: 1:53.

This is one of a series of videos about online self-assessment.

If you're having problems, we want to help you get things back on track.

You should contact HMRC as soon as possible,

if you can't pay your self-assessment tax bill

You might be able to get more time to pay or arrange to pay your bill in instalments by direct debit.

If you're unable to pay all your tax bill on time,

you should ring the Business Payment Support Service as soon as possible.

It's available for any type of tax payment not just businesses.

You'll need some information before you ring.

For example, you'll need your; Ten Digit Unique Tax Payer Reference Number, or UTR,

which you'll find on correspondence from us,

how much of the bill you think you're unable to pay,

what you've already done to try to pay the bill,

and how long you think you'll need to pay the rest.

We'll ask you details about your current income and outgoings

What savings you have and assets?

HMRC will make a decision based on your circumstances.

Depending on your situation, this might be giving you extra time to pay.

You'll be charged interest on late payments, but that's to be expected really.

But you may avoid penalties if you contact us as soon as possible.

If you've missed the payment deadline and have already received a demand for payment,

you must contact the person who sent you the letter immediately.

Please, don't put it off as HMRC really do want to help you as much as possible

If you've missed the deadline, but haven't received a demand,

then contact the Self Assessment Payment Helpline on 0300 200 3822

You'll find more help and support on Gov.uk

Webinars and other videos about self-assessment are available from HMRC

Thanks for watching

For more infomation >> What if I can't pay my Self Assessment tax bill? - Duration: 1:53.

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

idk what to name this masterpiece - Duration: 1:14.

–Whoops damn!

–Wha―? –No, I just played the wrong one

*girl (I assume) screams*

–Look, boys. Look, it's so groovy!

It doesn't matter if it's hanging & clanging

Don't give a shit if you're thick or fat!

–Here I come with the trumpet!

Here I come(?) with the trumpet!

???????

–(Now?) let's dance! – *gibberish*

*argues about smth*

I can dance― dance when I want!

Now I want to dance!

Now I don't want to dance!

*gibberish & arguing again*

You can't join my―

For more infomation >> idk what to name this masterpiece - Duration: 1:14.

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

Ron Rivera talks about what contributed to the Panthers loss to the Seahawks - Duration: 0:43.

For more infomation >> Ron Rivera talks about what contributed to the Panthers loss to the Seahawks - Duration: 0:43.

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

How to use what if and Be + used to in English grammar correctly| Basic| with Bangla example - Duration: 17:24.

For more infomation >> How to use what if and Be + used to in English grammar correctly| Basic| with Bangla example - Duration: 17:24.

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

What Are The Best Preforming Properties in Dubai Market Today? - Duration: 3:07.

Hello everyone I have a question to Firas and I hope he can give us the answer

hi hi how are you I'm good so for the past two years the market the

real estate market have witnessed a price softening correct in your opinion

which properties have been impacted the most or the least or resistant okay in a

nutshell like you said the entire market has softened in term of prices but some

properties has indeed performed better than others and before I talk about the

segments of properties that are performing better I want to say why

basically properties that has low supply will always perform better okay so today

if you as an investor if you bought in a project that has 2000 units

you're gonna most likely end up competing with the developer when it

comes to reselling or even competing with the other investors if the project

is fully solved by the developer the other 2000 units exactly you're

gonna have a crowded exit the same if you wanna rent whereas if you buy in a

project that is limited in supply somehow you're always gonna have the

edge of of having to exit with probably a few other units at the same time not

with tons of units okay and I'll give you a live example of this in a nutshell

of course properties that are low in supply are mainly luxury properties yes

because when you go to affordable it's most likely to be a mass developer but

again the very affordable properties are also not doing bad today but I think

luxury properties due to low supply and is doing very well and a live example of

that would be Bulgaria so Bulgaria the prices of Bulgaria today is the same

prices that was launched or the price that we saw that last year whereas many

many many developments in Dubai prices have softened maybe 5% or 10% whatever

the cases but Bulgaria has resisted I think definitely it maintained and when

I talk about property that's maintaining its price and value in this difficult

market I am sure the prices will skyrocket or okay let me be reasonable

here I'm sure prices will perform much better and people will be able to

collect premium when the market is better and if you look within Bulgaria

and certain type of units that are very limited so for example

three-bedroom type D and it's basically very unique because it

has best of both worlds it has the view from the seaside or marina side and

the skyline and the city today it's trading at ten to twenty percent premium

so sellers who are selling these properties today they're asking for 10

to 20 percent premium and we have executed actually a deal at the higher

than the original price where the seller collected I think 10 or 15 percent all

right so that would be a live example so whether the market is up or down my

genuine advice is to stay away from the from mass developments and to buy in

unique projects of course this is again in a generic context because there are

so many things and aspects that we look at when we qualify a project but in a

nutshell go for projects or go for properties for the property type that is

lower supply thank you very much Salman thank you for

watching

For more infomation >> What Are The Best Preforming Properties in Dubai Market Today? - Duration: 3:07.

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

What Juan Mata believes Man Utd must do to turn things around - Duration: 3:55.

 Juan Mata claims Manchester United must make Old Trafford a fortress again.  Mata is alarmed by the slump in United's home form this season and they have won just three of their nine games

 United have scored just 10 times in those nine matches and have a negative goal difference at Old Trafford

 They were formidable at home last season, winning 21 of their 26 matches as Liverpool, Chelsea, Tottenham and Arsenal were all beaten

 Mata claims they must make opponents fear coming to Old Trafford again ahead of tonight's Champions League clash with Young Boys

 "It's really key for us to make Old Trafford a fortress, to make it very difficult for our rivals," said the Spanish playmaker

 "When they come to Old Trafford, ideally they will feel that it is very difficult to play here

 "We should think about doing that and we should think about playing very well and very intense from the beginning

 "We have a run of home games now and we need to try and win all of them and make Old Trafford that fortress

 "It's our home and hopefully we can have good results in the weeks ahead."  Old Trafford was anything but intimidating for Crystal Palace on Saturday and United were woeful in the goalless draw

 Mata is still hurt by that result, which took the shine off his 200th United appearance, and says Jose Mourinho's side must forget their disappointment and focus on Young Boys

 The former Chelsea star is targeting three points, which would take them a step closer to qualifying for the last 16 of the Champions League and set them up for their busy December

 "Still feeling bitter from drawing against Crystal Palace at Old Trafford, but we're already focused on our game against Young Boys," he wrote in his blog at juanmata8

com.  "Obviously I would have liked to have been able to say something else, believe me, but the only way to get over a disappointment is to keep moving forward and in our case our next chance to do so is in a matter of hours

 "We have a key game for moving towards our objective of progressing in the Champions League

 "We want a win to take us into December, which is without doubt the busiest month of the year with eight games

"  United have also struggled on the road and Mata says they must improve in every department

 He knows their seventh place in the Premier League - 14 points behind leaders Manchester City - is not good enough for a club, which wants to win trophies

 "As a team we need to be in a better position in the league," he said.  "We'll try and win as many games as we can until the end of the season

 "We're in an OK position in the Champions League and there's the FA Cup. Hopefully we can have a good second half to the season and we can achieve our goals

"

For more infomation >> What Juan Mata believes Man Utd must do to turn things around - Duration: 3:55.

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

Cyber Monday deals: What to look for - Duration: 1:35.

For more infomation >> Cyber Monday deals: What to look for - Duration: 1:35.

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

[ENG SUB] What is the Rush Hour Result With New AD - Summoners War Indonesia - Duration: 25:44.

Hello guys, welcome back with me isengdudegame.. Hahahahaha

Okay like always, lets do Rush Hour Arena..

This is my AD

We will change it last minute... lets start now..

21:25 server time...

Looks like we can Lushen this... lets go...

Hmm... Bastet would be good if I can get..

My Megan should change to Bastet...

Wow crazy...

Such weird Megan stun....

Just saying...

More... more...

This damn it...

Shit!!!

This is just started...

Crazy, we lose..

This damn it

Crazy.....Bad luck...

Damn it...

Giana move??? Damn it..

Thats Giana..

Rarely using 3rd if Bomb miss

Not 100% sure...

If you guys have exprecience please let me know in comment...

This happens a lot, when bomb miss she not use 3rd...

We continue...

Lets hit it using Lushen...

Good, continue...

This one okay, lets go..

For you guys who ask about runes please check description..

If you lazy see the video, I add link to facebook photo.. You can see my monster runes there...

*Whatsapp sound

Verad so good combo with Jeanne

Thats good...

Holy shit!!!

Nice, Lushen skill ready??

Ouch, lets kill Jeanne..

Kill Juno...

Ahhh, dead....

Lets Lushen this...

Damn it...

Okay, so far so good....

Kill it.... make sure...

Fast Seara bomb cooldown...

Waiting bomb detonate...

This one okay...

Ouch miss on Ritesh...

Lets see Zaiross reset... Can we get Vanessa and Triana???

Ouch Triana resist..

Its okay, Triana dead..

Okay, still got it..

Heal?? you dead...

OMG, still survive....

Lazy... skipp skipp...

Psamaa~~ next week stone. Hope i can get it...

Nice if i get that...

Okay, all dead..

Good...

Crot!!! not dead man..

Weird no procs...

Continue...

We can do this...

We continue...

This one maybe??

Lets go...

I usually dead cause of procs... damn it..

See???

Damn it...

Hmmm... hit Camilla...

Later you procs...

Lets try this... Are they fast??

This Iris looks fast...

See?!?

Awesome..

Good al success cooltime..

So long havent say that magic word...

I miss that...

Continue..

This is okay... Lets go..

Crazyyy~~~

Shit!!!...

Hard to win this bro...

Damn Camilla...

We lose damn it..

Ouch point drop...

Ouch...

We failed..

Shit!!

We dead again??

Omg... got you!!! Stun!!!

Debuff Rakan..

Kill Tiana..

But Lushen dead....

Shit...

Stop... maybe...

Really hit hard...

ATB bro...

Goooo

Kill!!! danger if heal by Ritesh...

Crazy fast Ritesh..

This one okay... lets go...

Crazy.. this Fengyan HP type maybe...

Miss??

Its not..

Readyy~~~

Okay, how many time left??

Around 10min..

Lets change...

Change my Camilla runes...

Change slot6 to HP...

Then Triana and Rina...

Let see hows the effect...

10min left...

We can do this lets go...

Okay good...

Okay good...

Very good..

Ouch got attack again...

Ouch 2..

Can we beat this? lets try...

We kill fire element..

Usually point drop so much..

Nah... we can do this one...

We use bomber team..

Damn it...

Die you!!

Kill it ...

Looks like this Sekhmet 100 resist..

Debuff Sekhmet...

Not important..lol...

No effect...

Damn this Chasun...

Need 2 bomb...

Ouch all miss...

This crazy Chasun...

Just like Rina...

This is Rina for sure..

Miss again??

Miss again??

What the..

My Seara not procs...

Finally....

Damn, drop a lot...

This crazy..

Still have time you attack my def..

Can I win this??

Damn it...

What def I should try if always like this??

Gonna end soon

Got you!!

Its 21:56

Damn another attack..

I dont like this, lets hit..

I dont care Molong gonna move...

Crazy bad luck...

Regardless our def... if they want to attack

They are all fast...

Crazy..

They have +170 more speed.. with speed lead..

Die you!!!

3min left..

Damn drop again..

Lets Lushen again..

Wow just got Garo..

Die you!!!

Hit it bro...

Still got it..

2min left..

There is not enough time..

No wings also..

Okay times up

We are C3 after 8 attack in last minute...

Confuse using What AD.. this no effect..

Ouch this def can be bomb..

Okay thats all from me... thank you.. comment like subscribe... bye bye...

For more infomation >> [ENG SUB] What is the Rush Hour Result With New AD - Summoners War Indonesia - Duration: 25:44.

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

What's new in F# 4.5 - Duration: 31:53.

>> In this episode of the ON.NET Show,

we're going to have Phillip Carter

coming back again to talk about

what are some of the new things

that are inside of F# 4.5?

Welcome to another episode of the ON.NET Show.

My name is Celso Philip and I have joining me again,

Phillip Carter. What's going on man?

>> Nothing much. Just having a good time.

>> This is like your third time on the show now, right?

>> Yeah. Well, back in the early days of the show,

I was on there for a few times.

I had like two hour-long F# ones.

>> Oh wow.

>> Yeah. Those were a little out of control.

>> Wow, that's a lot of F#.

>> Yeah.

>> So what are you here to talk to us about today?

>> So I'm here to talk today about F# 4.5.

>> 4.5?

>> Yes.

>> I think the last time that you're on,

we're at F# 4.1.

>> Yes, 4.1, so we jumped up a few digits.

>> Okay.

>> Well, decimal places I guess.

>> Decimal points.

>> Yeah. So, it's actually kind of interesting

because the last version was F# 4.1,

but now it's F# 4.5, and so you might be thinking,

well, what happened in those four places?

>> Sure.

>> Well, versioning is something that's always fun,

and everybody always gets it right every single time.

>> Of course.

>> Yeah.

So there was some really interesting historical stuff

that occurred in the past with F#,

where basically F#, the compiler,

depends on the FSharp.Core binary,

which is its core library.

It's got definitions for what an Int is, what void is,

things like that, and there's been some new additions

and things like that as time has progressed.

But up until, it was all like just one thing

until you got to .NET Framework 4.0

and so then, there was a split between

.NET Framework 4.0 world and previous world

and because it was a different runtime,

there was then a different version

attached to that binary,

and so you would get version

LanguageMajorVersion.LanguageMinorVersion.Something,

and then there would be an older one.

Then time progressed, and then NuGet got more and

more like a central part of developers lives with .NET

and there was NuGet package for FSharp.Core,

and that version number was

not the same as the actual binary,

and that got even worse as that NuGet package

then rubbed somewhat semantically,

so that there were to be

different minor versions as new things were coming in,

but it would carry a completely different binary.

So you had this weird world where at one point I believe

we had F# language version 4.1,

FSharp.Core binary version 4.4.1.0

and FSharp.Core package version 4.3.4.

So that made no sense to anybody.

>> Right. So the version was a little crazy there.

>> Yeah, and that was just something where

just standard engineering processes of

versioning stuff just sort of led down that path

and we were like, "Whoa. Okay."

So, the only way to reasonably progress forward

and have a version number for everything

that was at least sort of aligned

about major language version,

minor language version, was 4.5.

>> Okay.

>> So now we have F# language version 4.5,

FSharp.Core NuGet package version 4.5.Patch,

and then we have FSharp.Core binary version inside of

that NuGet 4.5. whatever.

>> Sure.

>> So they're not exactly the same numbers

but at least they have the

first two digits that are the same

and we intend on keeping it that way from now on.

>> Sure. It's a little bit more consistent now,

so it's easier for people to see

like what pieces go together.

>> Yeah, and that's one of those things that starting out

as an F# programmer you never really ran into as much,

but then once you started caring about like, "Okay.

Well, what binaries do I actually have?

Boom. Big confusion.

So hopefully, this makes things a lot nicer.

>> Nice. So why don't we talk a little bit about

where exactly we can get started

and where can we actually get these bits from?

>> Yeah. Absolutely.

So we got a handy-dandy website right here.

The .NET homepage and there's an F# page right here

that's just, you can actually visit it if you go

aka .ms/fsharphome. It'll take you there.

So we've got a nice little tagline

and most importantly, a big old button that says,

"Get Started with F#."

This will have you download the .NET

SDK which has .NET Core and all that stuff in there.

This will give you the latest ones.

This will give you F# 4.5 inside of it.

So basically, if you install .NET Core,

you already have F# actually,

but if you don't have .NET Core for some reason,

this is definitely the easiest way to get started

because this will work obviously across platform,

it works inside of Visual Studio, it works in VS for Mac,

VS code, basically anywhere you want.

>> So not only too do I get

the F# compiler and the F# tools,

but I also get the templates as well, right?

>> Yeah. So you get some basic templates

out of the box with the .NET CLI.

So like in this case,

the little tutorial says dotnet new console-lang.

That's like a little console app

but there's like ASP.NET Core library,

sorry, ASP.NET Core templates like library templates,

and then if you want to use other stuff,

there's a fantastic library called Giraph which

is for building web services on .NET Core.

It uses ASP.NET Core stuff onto the background.

Well, they have their own templates,

and so you can actually use

the .NET CLI to just do .NET new,

well, there's like a way

to install templates from a NuGet package,

and so you can just have that.

So there's also a lot of

community stuff out there that you can

get by using different libraries.

>> Right. So I remember, in the previous episode,

you did come on and talk to us about Giraph a little bit.

>> Yeah.

>> You can make sure that we add in that short note,

so everybody can take a look at that episode

and see all the good stuff you do with Giraph.

>> Yeah. Absolutely, and I think

Giraph recently released version 3.0 since that video.

So it's pretty stable.

>> Nice.

>> I recommend trying it out for sure.

>> Nice. That's good.

>> Yeah. So that's basically just how you get started.

Now, you can also use Visual Studio,

and so I'm just going to move on over there.

So if you use Visual Studio

and you get the latest stable version,

so that's 15.8, I think it's .6.

It's sort of the updates version right now, that'll hatch.

If you download it that'll be the one you'll get.

This comes with the exact same binaries,

like the exact same core library,

compiler, as you would get in the .NET Core SD.

Actually this will install that

same .NET Core SDK that you download from site.

So if you're on Windows Visual Studio, you got everything.

>> Good. Sounds pretty good. So why don't we

talk about some of the new features, right?

Like what exactly are we getting now in F# 4.5?

>> Yeah. Absolutely. So first of all,

you get some new version numbers.

It's not a language feature so to speak.

So for those of you who've been

following C#'s progression and .NET

Core's progression with some of

the new stuff involving Span,

which is sort of this low-level,

basically it's a pointer and offset somewhere in memory.

There's all sorts of safety features and efficiencies

built into the runtime for this construct,

and it's been surfaced as language

features in newer C# versions.

Well, we did the exact same thing over in F#.

So I think the granularity that I chose

was about nine features around Spans by itself.

>> Really?

>> I'm not going to talk about every single one of them.

So we introduced the concept of a void pointer in F#,

but that's just sort of something that you'll

just kind of use if you're doing

more advanced programming but-.

>> Sure. So, really quickly.

Why don't you tell us what exactly is a Span,

and what are some of

the use cases would use that type of-?

>> Yeah. Absolutely. So basically, the scenario is,

you want to do high-performance stuff

without having to drop down

into native code like with C++ and so, I mean,

there are a lot of scenarios where

you've got to do that anyway.

So it's not something that you should

necessarily avoid at all costs,

but there are a lot of people who are saying, "Yeah,

but I just want to not allocate a ton and a ton of

strings by doing like really

basic programming," and so we sort of said, "Okay.

Is there a way that you can do

this sort of stuff and manage code and sort of

have the safety benefits that you get in .NET,

but you still get a bit more that native performance? "

So the way that you accomplish that is you

restrict things that you can

actually do with these constructs.

>> Got you.

>> So if you look at this code sample right here,

you'll notice there's two things here.

There's this inref and outref construct.

An inref right there,

and, sorry, not outref.

I meant byref.

So all a byref is, it says,

represents a managed pointer in

F Sharp code, and that's all it is.

So this is just a pointer that exists somewhere.

So if you've been doing C programming

or C++ programming, you know the pointers.

You can do all sorts of wacky stuff with them.

That buys you efficiencies,

but it's also very unsafe.

So this basically says, well,

you can do a lot less of the wacky stuff,

but you get a lot of the safety.

So if we walk through some of this code here,

I just have a really basic function called print that

just takes an inref event, and then, it prints it out.

But, say, I want to do something unsafe.

Well, not necessarily unsafe,

but something that you wouldn't expect.

So inref is basically a read-only managed pointer.

Say, I want to go, well,

I'm going to mutate that to be the value 12.

Well, that doesn't work.

So I get squiggles there saying that this is read only,

so the write is not permitted.

This is the thing because

F Sharp uses type inference very heavily for things.

When you start using these constructs,

we will infer to the inref as much as we can.

They basically serve because we are

immutable by default with all of our binding.

So it would also makes sense for our pointers to

be read only by default,

if you're relying on inference.

So, in this case, I specified the type explicitly,

but this is an inref is what

you're going to see a lot in F Sharp code.

So you run into that.

Now, if you are actually

doing something where you're like, yes,

I want to mutate the value,

then,you use a byref.

A byref is just like, it's read-write.

So in this case, I could print out the value,

I could set it equal to itself times itself,

and then, print it out again, and do something like that.

So the way that you use

inrefs and byrefs varies very slightly.

So in this case, I've defined a value called num,

which is initially a value 12.

This is an immutable value.

I can't change this without the code compiling.

But I can still actually pass a reference to that,

like a pointer to that value to the print function,

because print, it's just a read only thing.

So I'm not actually going to be mutating it.

So the way that you actually do that is,

you just use the ampersand keyword,

and that just says, take a reference of this,

which is, in this case, a pointer.

It's the exact same way that you would

pass by reference in F Sharp,

which coincidentally also uses

the byref and inref constructs.

We're saying, not only is it for pass by reference,

but it's for all this stuff.

>> Got it.

>> For the second function,

I can't just do this.

Say, I delete this.

This is not going to work. Type mismatch.

Expecting a byref, but I gave it an inref.

I'm basically saying, treat num as

an inref because this

is effectively using type inference and saying,

well, treat this as what it is.

It is an immutable value,

so we turn it into an inref.

So, what you need to do is,

you need to actually establish

something to be mutable upfront,

if you want to pass something in as a byref,

because that's sort of, okay,

this value can change.

So then, I'm going to use

the construct that allows you to change things.

That's the way that works.

Then, there's also one thing that I want to call out here,

an actual intentional compiler error.

So we also have scoping rules for byrefs.

This is something that's entirely new and after our 4.5.

So say, I wanted to find this value X that's a byref.

Then, inside, I wanted to find a value Y that's mutable.

Then, it doesn't necessarily have to immutable,

but then, basically say,

return the reference of this internally defined value.

Well, that's actually an unsound

thing because being able to say,

give me a pointer to a thing that I defined in

a scope that is now effectively finished.

So like this right here,

say, you were to do something even more dangerous,

like let's mutable Y

equals 12 and try to have it escape its scope like this.

Well, it's for the same rules.

This is not going to work because

it was defined within the scope of this function.

So I can't just have this pointer

pointing to this thing

that is effectively being reinitialized all the time.

That's something that'll just lead to crazy bugs.

You're very likely to end up

crashing your application if you depend on that.

It's for some reason. So, that's why we

just make it a compiler error straight off the bat.

So, we restrict your usage of this stuff.

But with that restriction,

you get certain efficiencies,

and you can know that you're

not going to completely blow up if you do that.

>> Right. So I think the compiler now is able to

optimize some of these operations

now because it knows exactly,

am I mutating this thing or not.

Then, like you say, you get some of that safety,

some of those safeguards around.

Let me not shoot myself in the foot by

doing some crazy [inaudible] arithmetic.

>> But speaking of things that you can do,

that might still be a bit unexpected.

So I got this fun little function

called Sequenceinator5000.

>> Sequenceinator5000.

>> Yeah, it's a good one.

>> Okay. What does this do?

>> This has got just an array of

numbers, just some values in it.

Then, I just have a two string

override inside of this class,

that just basically just string

dot joins a space in between each of the values.

Then, I have a method

in here called FindLargestSmallerthantarget.

So basically, given an int,

find the largest value that's still

smaller than that integer,

except there's a key difference.

You'll notice, instead of

passing a value that corresponds to,

hey, I found the index,

I'm going to pass the value that's back to that,

I'm passing a reference to that value,

which is actually a pointer to

that space in the underlying number array.

So what's interesting there is, if I use it, say,

I set my target to be 16,

I'm actually going to be doing

a byref return for this method.

So rather than just returning the value,

I'm returning the pointer.

I can treat that as a reference that I can then mutate.

So let me just run this,

just show you why this is interesting.

>> Sure.

>> I'll start without debugging here.

I think I set the correct one.

It's startup. All right.

Cool. So the first one is 1,

3, 7, 15, [inaudible].

But then you notice it's 1, 3, 7, 30.

This is a bit different.

The reason why is because

I use that same ampersand right there,

and then, I invoke the method and I get the results.

Then, I change it to be itself multiplied by two.

In this case, I'm not grabbing

a value and then just changing that value just inside.

>> In this space.

>> Where I'm at right now. I'm actually saying,

no, mutate the thing that's in there.

This is a pattern that's used for Unity

and other game programming, and things like that.

That's at least one of the major use cases.

So this is something

that's C Sharp has supported for a bit,

and we supported consuming them in F Sharp 4.1.

But we did not support production of

these byref returns up until now.

So now, we support both consumption and production.

So you can interrupt perfectly.

So you can send the thing that

a C Sharp component may be expecting.

You can do that same manipulating

pointer stuff with

Unity programming, which is pretty cool.

>> Right. That's awesome.

>> Yeah. So, speaking of perf,

so I'll show you a benchmark of this,

but let me give you a short scenario.

So imagine you've got a web server,

you're processing a bunch of strings in there,

and you need to do something really basic,

like, I've got some sort of separator.

In this case it's a comma, but

it's it doesn't have to be a comma.

>> I'm just doing some type of parsing, right?

>> Yeah.

>> I'm trying to pull information out of that-

>> Yeah. So, this is like just a trivial function,

but you do this stuff all the time actually

if you're in some high-performance thing,

where you're like, no I know

that data's going to exist at this point.

I want to extract a little pieces of

it and then do something with that.

And that portion of extract a little pieces of data

out may very well be

a hot loop in something that you're doing that,

it could actually be a bottleneck.

So pretty much idiomatic F sharp code

in this case is just, okay,

I got a string, find the position of the thing,

in this case, it's a comma,

parse out a value that's, in our case,

from zero up until that position like what's

the value that's just next to it right there,

and then what's the next value,

and then return a tuple that's comprised of those both.

That's fairly straightforward,

most people should be pretty happy,

but if you need to do that in a hot loop

where you got just thousands and thousands,

perhaps millions of strings,

you can start to allocate a whole lot.

So you may want to rewrite that.

So this is where Span of T,

and some of the Struct,

and just by reflect,

stuff comes into play.

So the way that you write it

is actually almost identical.

So in this case, I'm just going to have a Span,

and I'm just going to take str,

then I'm going to go AsSpan in this case.

So, that's a number that's sitting on string.

So, then I'm basically just going to write

this exact same code right here,

but then instead of string, str.indexOf,

I'll just do span.indexOf, and so on.

Let me just copy and paste that,

save you my terrible typing there.

In this case, this will be the slice method rather

than the substring method. There we go.

>> You're going to change a lot of expensive.

>> Oh yeah. There we go.

Yeah. See? Compiler helping me out,

but I didn't even bother to look at it.

Then one last change, rather than a regular tuple,

because regular tuples and F-sharp are reference types,

I'm just going to turn this into a sharp tuple.

So, this is something that actually existed

in F sharp 4.1.

Prior to F sharp 4.5,

you actually could write code like this,

but the compiler didn't

really have a deep understanding of what was going on,

and so we weren't necessarily

emitting all the correct stuff.

So, if you were to run this now,

like I have some code for Benchmark.net,

I'm not going to sit you through that,

because it runs a whole bunch of different iterations,

but there's quite a difference.

So, when I ran that actually on my Mac,

I didn't even use the parallels

and since that I'm sitting in,

you'll notice this little table here,

the old version, took

almost about four seconds to run on average,

and the new one takes about

1.5 seconds to run on average.

>> Oh wow. That's kind of cool.

>> That's kind of cool. So that's faster.

But the thing that I really

like is if you look at total allocated,

in this case, I had I think 10 million strings.

I said, okay, parse out 10 million strings.

In this case, it allocated

almost a gigabyte to

parse that stuff with the old version,

and the new one allocated 76 Megs.

>> That's crazy.

>> Yeah.

> I find a lot of the parse work that's been going on,

particularly in the .NET community,

has been around, how can we efficiently manage strings?

>> Yes.

>> That seems to be like a huge

bottleneck for a lot of folks,

and particularly we're doing stuff like the parsing,

like with Json and XML,

and a lot of these return types,

especially for web servers,

we return a lot of these types of data types and we

don't really think about the path that comes in along.

We just say, "Oh, here's a list of stuff,

serialize this understanding over

the wire." You know what I mean?

>> Yeah, and that sort of stuff,

just getting your job done,

just have some strings,

move them through, copy stuff

around, allocate new strings.

That's totally fine, but

then all of a sudden you're like, "Oh, crap.

This thing now needs to have a really high load

coming into it," and then all of

a sudden all those allocations,

they really start to really hit you

over long spans of time, because, I mean,

honestly the difference for

a single run between four seconds

versus 1.5 seconds is not like that big of a deal,

but that memory allocation is

huge because if this thing is running for

like hours at a time

or basically just running perpetually,

well, each time you're sort of saying,

"Oh, I'm allocating a gig.

I'm allocating a gig. Allocating a gig," and

then the GC eventually has to come in and clean stuff up,

and then GC pauses the world and it says, "Hey.

I got to get rid of stuff,"

and then you start getting hit with that.

That's where it becomes really nasty

to deal without these sort of things like Span,

and that's one of the big motivations for

that whole set of stuff that's in the runtime,

and surfacing that up in the language.

>> Cool.

>> Yeah. Now you can do that all with

F sharp which is pretty great.

>> Nice. It's awesome. So, what are

the new features we have in 4.5?

>> We got a few other ones,

it's not just AsSpan.

As I said, I didn't cover everything with the Span work.

There's different representations of pointers,

there's the actual way to represent ByRefLike Struct.

So I'll just actually just show this really quickly.

You notice I got some compiler errors?

>> Yeah.

>> I'm defining a Struct here,

and it takes in two Spans

as inputs, and you're like, "Oh.

That should just work, right?".

>> Yeah.

>> Well, no.

Because Span is not just a Struct,

Span is a ByRefLike Struct.

It's something that has some special locks on it.

I guess you could say it sort of says, "No, no, no.

This thing lives on the stack.

This thing is allocated on the stack,

it stays on the stack,

you don't accidentally have it live on the heap somehow.

But this Struct, without specifying that it is ByRefLike,

gives you no guarantee

that you're going to be either on the stack or the heap,

you're just going to be allocated how you're allocated.

So in this case,

it's actually very simple,

just sort of add the additional attributes.

So Span is itself a ByRefLike Struct,

and so one of the rules with these is,

if you want to have it ByRefLike

Struct contained with another one,

you can't just stick it inside the class,

you can't just stick it anywhere you want.

It has to be inside of another ByRefLike Struct,

and that constraint is what allows basically

the runtime to do things a lot faster

than it would be able to do. So,-.

>> So you just annotated it with, is ByRefLike?

>> Yeah.

This is just a little attribute you stick on there.

So this does disallow you from doing really weird stuff.

So you can't start allocating

stuff on the heap inside of the Struct anymore.

This locks you down and they're saying, "No.

You're on the stack," but if that's something

that is of a benefit to your performance-wise,

then this is definitely a good thing.

So enough about that stuff,

because puff, it's just boring.

Nobody likes that, right? No. We got

a new keyword which is pretty fun.

>> New keywords?

>> Yeah, we got a new keyword and

another type here that

I'm going to show at the same time.

So people who use F sharp know

about Pattern Matching it's usually

one of their favorite features.

They also know about the Option Type.

Some of it or none of it

is basically wherever representing,

either if something can exist or nothing exists.

Well, that's Optional Type.

It's a Reference Type,

and we wanted to have a Struct version of that.

So we have it, it's called ValueSome and ValueNone.

It basically works the exact same way,

it's just it's a Struct rather than option,

sorry, rather than a Reference Type.

So if you're in sort of one of those scenarios

where a Structs is of a benefit to you,

performance-wise or whatever, then you can use that,

and not like a really big feature,

but just something that people

should be able to make some use out of.

>> That's right.

>> But, one of the things that people seem to really

love a lot when this came out,

and what's cool is, this is actually

a full community contribution,

is the new match bang keyword.

So I got this highlighted right here.

Now, this is slightly different than the match keyword.

So I'm going to walk through the first one.

So this first one, match under tryParseIntAsync,

because obviously it need to be

asynchronous to parse an integer, right?

>> Right.

>> So I'm just going to try parse and then produce

a ValueSome if I got it,

otherwise I produce a ValueNone.

So this is just okay.

Match on the value. Pretty straight-forward.

Most F sharp programmers know

how to do this all over the place.

It's usually one of the first things you learn how to

do when you're learning F sharp in the first place.

This is an asynchronous option.

This isn't just a value option that's being returned.

This is an async of value option.

This is the thing that's wrapping around it saying no,

this thing exists in an asynchronous context.

So to extract the underlying value,

you need to extract effectively out of that context,

and that's something that if you tried to write

without the matchmaking keyword today, like say,

I just got rid of that,

this isn't going to work because

I was expecting a value option,

but instead, I got an async of value option.

So, this basically just does that unwrapping.

Normally, you could write code,

you could you could do something like

let being V=tryParseIntAsync str,

and then, V itself is

going to be a value option then you could match on V,

but that's just boilerplate.

So you just inline, make that call there,

that simplifies a bit of extra code that you need.

>> Nice. So, I want to go back really quickly.

So, you said that this was a community contribution.

So, can we talk about that really quickly?

So, how does the community go along the routes of- oh,

hey, I think this is a cool feature and I'm

guessing F# is open source.

So we could put it on GitHub and

we create an issue

and then we start discussing it. Is that-.

>> Yes. So we actually have a full process in place.

So we have a repository called language suggestions,

and in the language suggestions repository,

you basically just file an issue saying,

hey, I think it'd be cool if you do this.

>> Yes.

>> We have a template that's like

it asks you questions to say, hey,

it summarize what's the thing that you want,

what are the reasons why you want this,

have you considered if this is a breaking change,

things like that to get people to

think about the problem a little bit.

Then, there's a discussion

and what we'll do is we'll go in,

we'll talk through it.

If we think it makes sense, we'll mark

it as approved and principle,

which is a way of saying,

we think this would make sense to

exist in the future F# language version.

>> Right.

>> Then, from that point forward, it's completely

open for anybody to say,

oh well, I can write a spec for this.

So, if you write the spec,

we have an RFC as we call it.

We have another RFCs repository

where everything is organized.

We have passed RFCs for

past language versions where

they're all organized in a little folder.

Then, we have just a regular folder called RFCs where

anything that's an active spec that

has not shipped yet exists.

So you can just add a new file there

and again, we have another template, and we say,

okay, we basically track back like

what's the suggestion that this write a spec for.

Then, we can write out everything there,

like what's the motivation,

what's the summary, what's the detailed design,

what are some additional things to consider,

what are some alternatives that you may have thought of,

what are some potential drawbacks to doing

this feature, things like that.

Then, once that's fleshed out in

an in-place for merge it, we'll say, okay,

the spec is there, and then,

it's up for anybody to

implement the actual compiler feature.

So in this case,

we had an open-source contributor

Jon Westenberg who came by,

and he said, "Yes, I'd like to do this.

I think this'd be pretty cool."

So the community talked about the matchmaking keyword.

They all seem to like it.

Then he said, "All right I'll write the

spec." So, he wrote the spec.

Then he said, "Okay, well,

I guess I'll write the poll requests."

So, we wrote the pull requests.

>> Nice.

>> We worked with him each of the stages.

He was really, really good.

When I say we worked with him, we barely

had to really do much just sort of said.

He would ask the question like,

"Oh hey, how do I do X?", and we'd say,

"Okay, just go right there", and then he'd go right

there and then implement it and it was of high-quality.

So, we decided when it was time

to grab the things that

we felt would make sense for a F# 4.5,

we said, okay, this is an open poll request

that is complete.

Everything seems to work, all the tests passed,

we tried it out, we think we like it, let's bring it in.

So we brought it in and then boom.

It's in there and

we get to do probably one of my favorite things,

which is when I write the release notes

to explain like something that came ou

in the next Visual Studio version or something

as specifically attribute him

as the person who implemented this whole thing.

So that was pretty cool.

Since then, he's actually implemented

other things and submitted to other RFC's,

other issues, that stuff.

So that's how the whole process works,

and that was something that I think is really cool.

It's just end to end from the beginning,

all the way until actually shipping.

This is a full community thing that we just

guided along until now everybody can use it.

>> It's really empowering for your

community too to see, hey,

this is not just something that we talk about doing,

like open source, this is real open-source.

>> Yes. You can contribute,

you can make suggestions,

you could be a part of the discussion,

and then eventually, you could

chip inside of Visual Studio.

>> Yes, yes, exactly.

What's interesting also is he actually did not use

Visual Studio to implement

any of this because he has Mac.

So he used VS for Mac,

but he didn't use just VS for Mac.

He was using the CLI, he was using-.

>> VS code.

>> -VS code, that stuff.

So, it was also cool

that not only he was a community person,

but this is not someone who is

using Visual Studio for Windows,

the old associations where it would get with .NET and F#.

He was fully and

this new cross-platform world

doing it all end-to-end which is really awesome.

>> That's awesome and this is so great to hear.

So I know we're running low on time.

Do you have any other cool little features

we could show just before we cut off?

>> Yes, yes. Just one little thing. I got

this little project called relaxation,

because I like to relax.

>> Relaxation, I like that.

>> So, this is just two little- I guess you could say

the compiler was just a little bit to

nitpicky prior to F# 4.5.

So In this case, I got basically,

a list of object.

So strings are also objects,

so due to the rules of inheritance,

you can say, I have a list

of objects and then it's comprised of strings.

If I wanted to combine that string character

with this yield expression,

I would actually need to explicitly cast

object prior to F# 4.5,

which is annoying because logically,

strings are objects so it should

just work well in F# 4.5,

it just works you don't have to do that.

>> You don't have to do that cast anymore.

>> Yes. Then another one,

so you'll notice that there's some indentation

going on here that might throw you off a little bit.

I have this starting bracket here for this array,

except it actually tad over rather than being right here.

>> Yes.

>> That's because in F# 4.1,

you had to actually do that.

So people would write code that looks like this,

which I think looks totally fine.

There's no reason for this not to exist this way,

but the compiler would say, "Oh,

you got a bad indentation",

and that doesn't make any sense.

So in F# 4.5,

we just made it so it doesn't do that anymore,

and this is actually something that

should help out people who use the fable compiler,

which is an F# to JavaScript transpiler.

It has a way to use F# syntax to model like a dom tree.

So, the way that you would syntactically model that is

you oftentimes align stuff vertically like this,

and so if people would want to do that,

and then the compiler would yell at them.

So, that's just a nice little goody

for people who were doing especially that stuff.

Those are the little relaxations

of syntax that we have with 4.5.

>> Cool. This was awesome, man.

Thank you so much for coming on the show, man.

>> Yes, yes, absolutely.

>> So this is another episode of ON.NET show.

We just had Philip telling us all about

the good stuff that's inside of F# 4.5.

For more infomation >> What's new in F# 4.5 - Duration: 31:53.

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

What Self-Compassion Means to Me - Duration: 1:06.

For more infomation >> What Self-Compassion Means to Me - Duration: 1:06.

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

Liberals Outraged Over Pepper Spray At Border, Forgot What Obama Did In 2013 - Duration: 5:30.

For more infomation >> Liberals Outraged Over Pepper Spray At Border, Forgot What Obama Did In 2013 - Duration: 5:30.

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

49ers Reuben Foster, Another What Could've Been - Duration: 6:08.

Ayo! It's Bryan here. Today, going to be trying to talk about two things that happened over

the weekend and to be honest with you guys, it was a pretty sh***y weekend I would

say for us people in Niner Faithful. We lost to the Buccaneers in the worst way

possible. How do you lose to the Bucs the way that they did? 9-27, really

humiliating. Bucs, one of the worst teams in the NFL and we made their defense

look like the 85 Bears, but whatever. Ah, pretty bad day.

Also, Reuben Foster got released by the 49ers after an arrest of a domestic

violence incident. I'll be talking more about that in a second, but right now, I

want to talk about the Niners and Bucs. Just a bad day overall for the team. The

only good person that I can say that had a great day in San Francisco for the

49ers was Matt Breida. He was the only guy that got things going. The only guy

that we were all happy about and that's what pretty much sums up this whole

season. Breida, the running game doing a really good job, but everyone else,

going down the hill, especially the defense. Wow! I cannot understand what

happened to the defense. They made Jameis Winston look like Aaron Rodgers or

something like that. I can't believe that Winston had 312 yards, two touchdowns, no

INTs. I am surprised. I thought Winston was going to

get benched in favor of Ryan Fitzpatrick, but that did not happen. I just don't

understand how the 49ers made this whole Buccaneer team look like a Super Bowl

contender, but that's what we do. We're a terrible team. Yeah it sucks. We're 2-9

and the next couple of games, I don't even think we're going to win a game. I mean,

all you guys are talking about tanking, but just look at our schedule this whole

way. It's not what we're facing the Raiders again. It's not like we're facing

the Arizona Cardinals. We are facing very good teams now. We're facing the

Seahawks twice in the next two out of three weeks, the Denver Broncos, who just

defeated the Pittsburgh Steelers, the Chicago Bears coming out of nowhere.

Being one of the best teams in the NFC and also, the Los Angeles Rams, which I'm

pretty sure they're going to be playing that game because they want to keep

their seedings against the New Orleans Saints. All those games right there, we're

probably not going to win any of those games. I'm not sure. Hopefully, we can do

an upset on one of them, but I don't think so. With the roster that we have,

it's pretty disappointing. If you're expecting to tank,

I mean, don't even think about it because these teams are just better than us in

every way, shape or form. That's my stance on it. Whatever, better teams than us in the

next couple of weeks and we might not win another game this year. Disappointing

to say, but you know, got to speak the truth. Now to the

nitty-gritty. Reuben Foster, what could have been? I.... uggg... this was very, very

disappointing. What could have been 2.0 with Aldon Smith? I, like [reaction] man! It's

just very gruesome. It's very just sad to be honest with you. I mean, you get a

second chance by John Lynch earlier this offseason when everyone including myself

wanted him to be released in the first place because other teams like Bill

Belichick and the Patriots the first time around, you would have been gone

instantly, but John Lynch stood by his guns. He stood by Foster the whole time and he

was able to give him a second chance and now, he has this other incident in

Florida. Got arrested again and this time, it's pretty much over and if Lynch would

have kept Foster again? Oh my gosh. The public backlash that the 49ers would get

if they were to keep Foster right now, man! It would be pretty bad because that

would pretty much imply that the 49ers are condoning this kind of action, this

behavior. It would just be a terrible PR nightmare and it's a good thing that

they got rid of him. Him being injured all the time, that probably pretty much

made it easier to release him. A lot of people are saying good riddance. He was

injured anyways. Nothing too bad going on. I can kind of see what people

are going through. I can see why people want Foster gone anyways and I stand by

San Francisco's decision. Also, guys like Richard Sherman are standing by the

decision to release Foster. For Foster, I wish you the best. I wish you whatever

you're doing in your future endeavors in life, in the NFL or whatever to be good

and hopefully, get your life together because I said this before, "hopefully, you get

your life together" and so far, you have not gotten your life together. That is what

happens. You are not with the 49ers squad anymore. First-round pick from 2017, man. A

bust pretty much because he's not on the team anymore. I mean Solomon Thomas, he

has a chance to redeem himself some way, shape or form because he's still on the

team at least, but with Foster being gone after two years?

Very disappointing. I mean 2017, he had one of the best rookie seasons for a

linebacker in my opinion in recent memory and he did a really good job when

he was able to play last year. Looking like the cornerstone of our defense, but

now, when you have a guy named Fred Warner, rookie linebacker from I think

BYU doing a fantastic job for the Niners, like you don't need to be

about Foster anymore. So, it's not really the biggest loss for the 49ers. It sucks that

we lose a first rounder, but at the same time, having the emergence of Fred Warner,

I think it's not too big of a loss in my opinion to release Foster in this

juncture of time, although we do have to look for a more outside linebacker for

the draft. That's another concern that I am a bit worried about for the 49ers, for the

next year. I don't know what else to say.

Pretty disappointing weekend for the 49ers and everyone in Niner Faithful.

I wish it could have gone better. I wish we would've won against the Bucs. I wish

Foster would've stay out of trouble, but unfortunately, that didn't happen and we

are where we're at. We are pretty much the worst team in the NFL. I mean, to lose

to the Arizona Cardinals twice, to lose to the New York Giants on a last-second

touchdown or last-minute touchdown and to get destroyed by Tampa Bay, making

them look like the 2007 Patriots or the 85 Bears defense. This team has got to be

the worst team in the NFL. I can't do anything about that. I wish I could play.

I wish I could coach or something. That'd be pretty cool maybe. Ah, probably be worse

if I was coaching, but I wish we could do something to make this team better, but

right now, we're just going to have to go through the rest of 2018. Hope for 2019

to be a better year. That's going to be it you guys. Just wanted to talk about the

game that happened on Sunday. Wanted to talk about Reuben Foster and he's not

with the 49ers organization anymore. So, I like to hear what you guys

have to say about this whole ordeal this weekend. What do you think? What do you

think about the game? What do you think about Foster? Please, I'd like to hear

everything what you guys have to say and yeah. If you guys like this, please "Like"

and Subscribe to support my channel. That would definitely help me out a lot. I'll

be catching you guys up probably tomorrow when I predict the game against

the Niners and Seahawks. That should be a fun one. I'll see y'all then. Bye guys.

Love y'all. Y'all try to have a good rest of your week. Go Niners! Yes, I'm saying that.

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

Đăng nhận xét