Thursday, June 21, 2018

Youtube daily report Jun 21 2018

Nightcore - Havana X Despacito X New Rules X Attention X Location X MORE (subtitles in video)

For more infomation >> 「Nightcore」→ Havana ✗ Despacito ✗ New Rules ✗ Attention ✗ Rockstar ✗ Location (Switching Vocals) - Duration: 1:37.

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

Gorgeous Beautiful Modern Australian Tiny House by Tiny House Company of Salisbury - Duration: 2:53.

Gorgeous Beautiful Modern Australian Tiny House by Tiny House Company of Salisbury

For more infomation >> Gorgeous Beautiful Modern Australian Tiny House by Tiny House Company of Salisbury - Duration: 2:53.

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

Pete Davidson confirms engagement to Ariana Grande on 'Tonight Show' | American Today – 10... - Duration: 1:28.

For more infomation >> Pete Davidson confirms engagement to Ariana Grande on 'Tonight Show' | American Today – 10... - Duration: 1:28.

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

How to make mini Truck missile launcher with cardboard - Duration: 8:20.

Thank you very much for the support, comment like and share! 😘

For more infomation >> How to make mini Truck missile launcher with cardboard - Duration: 8:20.

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

Volkswagen Tiguan 1.4 TSI | 4motion | navi | clima | 100% dealer - Duration: 1:07.

For more infomation >> Volkswagen Tiguan 1.4 TSI | 4motion | navi | clima | 100% dealer - Duration: 1:07.

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

Gorgeous Beautiful Tiny A frame Cabin With Beach and Marina Access - Duration: 3:25.

Gorgeous Beautiful Tiny A-frame Cabin With Beach and Marina Access

For more infomation >> Gorgeous Beautiful Tiny A frame Cabin With Beach and Marina Access - Duration: 3:25.

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

Web Development with F# on .NET Core - Duration: 36:32.

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

we're going to have Phillip Carter joining us again,

and he's going to tell us all about building

web applications with the F# programming language.

>> Hi, my name is Cecil Phillip,

and welcome to another episode of the ON.NET show,

and today I have with me Phillip Carter.

How are you doing Phillip?

>> Hey, how is it going? I'm doing pretty well.

>> Doing pretty good, man. So, you're

here today to talk to us a little bit about F#,

and not only just F# but,

F# Web Development, right?

>> Yeah, exactly. So, last time I was here,

I talked a little bit about some of

the new stuff that's coming along for

F# like language wise and showed some of

the stuff in the tools specifically for Visual Studio,

but there's a lot more than just F# inside of

Visual Studio, and in particular,

F# on .NET Core, has a lot

of options for doing web based programming,

especially for web APIs,

and I personally think it's a really great fit for that.

So, I wanted to go over some

of the different options that you have available.

>> Sure, sounds pretty good.

And you have some slides

too that you want us to take a look at very quickly.

>> Yeah, absolutely.

So, there is numerous options

for web programming with F# and .NET Core.

I think you can even just do a console app

that has HTTP listener,

and just listens on import or something like that.

But, there is sort of five main ones I think,

there's ASP.NET Core MVC,

which any C# ASP.NET

programmer should understand already, basically,

there's Giraffe, which is sort of like- So,

ASP.NET Core is like more of a low level thing,

and MVC is a framework on top of it.

Well, Giraffe is like

a functional library on top of that lower level thing.

So, it's very similar to MVC,

but it's functional instead of object oriented.

And it's actually derived from Suave,

which I'll talk about as well which is on- its,

Suave is something that came before all of this.

Saturn is another option,

it's a relatively new one,

and it's actually built on top of Giraffe,

and basically Giraffe is more kind of a lightweight,

build only what you need sort of thing.

Whereas, Saturn is like

okay we've got batteries included,

We got all sorts of different stuff for you if

you want a bit more of an opinionated way to do things.

>> So it sounds like pretty much based on whatever

your programming style is or whatever

your particular need happens to be,

I could just say hey give me like

this little lightweight thing

that I could use to build my application, or hey,

maybe I need some more pieces,

I need scaffolding, I need database migration,

and some of these other things that I

can pick another framework,

will have those things already wired up for me,

so it makes a little bit easier for me to get going.

>> Exactly. Then we have Suave,

which I mentioned before.

It's been around for quite a while,

and it has a particular syntax

to building your API routes,

that was actually used by Giraffe,

and so I'll show kind of what that looks like.

And then there's Freya, which

is a really interesting one that's,

it's a purely functional web framework,

so it's, well more functional,

if you will, but it uses some more advanced concepts.

The sort of model the HTTP abstraction,

pipelined sort of stuff and so like if you want

to get really functional Freya is the one for you.

So, I kind of want to go through each of

these a little bit and sort of just talk like,

which ones you might

want to choose and that sort of stuff.

>> That's cool, so which one do you want

to talk about first?

>> Yeah.

>> So we got good ASP.NET Core MVC.

So, it's in the box, with VS 2017,

and the Data Code SDK,

you just type ".NET new" at

the command line, it's already there.

There's a few options there available.

It's fundamentally

an object oriented programming framework.

So, if you're interested

in learning functional programming,

doing this is not

necessarily a way to learn functional programming.

However, if you want to have

functional programming put on

top of something that you're already familiar with,

in particular if you're C#

and object oriented programmer,

then this might actually be a really good option for you.

Because, you can wire up APIs

exactly the same way that you would do it in C#,

and then you can

connect that to like a functional library,

just like a core thing

that executes all of your logic and then

it just calls into stuff

that you're already familiar with.

>> I think the thing with that too,

is that you know, if I'm already a ASP.NET Core

C# Developer,

I could always look at some of

the things that I'm used to doing,

and I could look at it in the F Sharp way of doing it,

and it kind of helps me translate

back and forth between the two, right?

>> Yeah.

>> I'm not necessarily worried about,

hey let me learn this API, per se.

I'm also not thinking about,

like how do I translate between different languages.

I wanted to learn what's the F# in a way of doing.

>> Exactly. That's kind of the way that I look at it,

unlike you know, F# fundamentally,

has all the object oriented features that you want,

but it is a functional first language.

So, we basically say, "Hey,

object oriented is great for solving particular problems,

functional is great for solving particular problems."

We have a set of defaults in the language that

are meant for functional programming,

but you can opt into

object oriented programming depending on the situation.

And so one of the situations might be,

I'm a C# ASP.NET Developer,

I know I'm interested in functional,

but I don't know what it's all about.

Let me apply some stuff that I know,

so I can get something going,

and then just kind of slowly start to learn functional.

So, the point where maybe I could even

transition away from the old stuff,

if I feel like that makes sense to me.

>> Got you.

>> Yeah.

>> So for the F# and MVC stuff,

are there templates already available for Visual Studio,

Visuals Studio Code that can help me get started with?

>> Absolutely. How about I swipe on over,

and show you what it looks like?

>> Let's do it.

>> So, I've put up file, new project already,

because I'm terrible with mouse pad and I'm just

going to like it's going to be embarrassing

if I try to select this menu.

You'll notice under the Visual F# Node here,

there's a thing called "Web",

there's a thing called ".NET Core".

You'll be able to see that in either those two places,

this ASP.NET Core Web Application.

So, we'll call this FunTimes,

because we're having a fun time,

and I blew up the font on Visual Studio.

So, this in particular looks funny.

But I have Tonic chord 2.1,

Installed on my machine.

I'm not going to enable docker

support because I don't have it running,

but I can enable that as well.

All that would do is just scaffold like a Docker

compose file and Docker Yammer file, things like that.

So, anyways, you get that nice little start page.

It's going to restore some packages,

like any old .NET Core thing do.

We have basically three files

here that should be the most familiar,

this program.fs, which hopefully know what that does,

Startup.fs, where we'll do a little bit of work.

This is very similar to the C# startup.cs,

except it's written in F#,

and there is Configure Services,

Configure Member Overload that sort of stuff that's

all- it's the same thing just written in F#.

Then we have this values controller,

which is just our values.

So, you'll notice in this Get,

we have this static array of values,

and then we have this other Get

that has this value "value".

Let's do something a little bit

better and try to factor this out,

treat this values thing as if it were like a database.

>> Got you.

>> We'll pretend that it's a database,

because that's for FunTimes.

So, I'm just going to go to add new item on

your Source File, call this ItemsService.

>> ItemsService sounds good.

>> Yeah. Name doesn't matter too much.

I'm just going to make this namespace,

so we have a difference between F#,

as we have modules and names spaces.

Modules are kind of more for

Communicating things between F# sources.

They are fundamentally just like namespaces,

therefore holding code,

organizing code, things like that.

They can also hold values, whereas namespaces cannot.

Whereas, name- and so

I'm just going with the namespace right now,

because I generally like to have

top level namespaces instead of top level modules,

but you can do whatever you want, really.

So, the way that ASP.NET works,

is if you want to do something,

you've basically got to use dependency injection.

Like, if you want to do it the right way.

So, lets teach you how to do it the right way,

but just in C#.

Right. So, we know we going to have to need

an interface and that's something

that implements that interface.

So let's start with the interface.

We'll call that, IValuesService.

Okay. And this is a type,

like there is no interface here,

this is just a type, and I'll go "member GetAllValues"

and I'm not going to

actually write like the body of this thing,

I'm just going to say this is from "units

to string array" because if we look at,

in this values controller here,

we have an array of strings.

So, we want to just have a string right there.

>> Right. So my C# brain,

as I'm looking at this, what I'm

seeing is that you have defined an interface,

and I have some function called

GetAllValues that takes no parameters,

but returns an array of strings, all right?

>> Yeah.

>> Okay. This will be a string. Oh right.

I need to go abstract,

because I'm inside of an interface,

because I'm live coding, I'm just forgetting on the fly.

So, here we have an interface.

If I hover over the Tool Tip in here you can see this is

type IValuesService and it has two members

an abstract member, this is GetAllValues,

given a unit which is nothing,

that's same thing is void, give me a string array,

and then there's get value which given an int,

gives me a string, which matches

what value controllers doing here.

Give in an int, give me a string.

So, let's go ahead and implement this interface.

So, we'll go, we'll just call it ValueService.

So, to implement it,

I'm going to have to go interface,

IValuesService with,

and notice how I did this double underscore thing.

I could go this dot,

I could go x dot,

I could name it whatever I want.

That's if I want to refer to the actual this,

I need to give it a name,

but because I'm not going to do that,

I can just go with the double underscore,

which is basically a way of saying,"Hey,

this is a member, it's defined on this type,

but I don't really care what the name of it is,

because I don't need to access something on myself."

>> Got it.

>> So, we go GetAllValues.

That's right. We need an actual set of values,

so we'll just take this out.

>> Or just borrow some values from the other one?

>> Exactly. This is our values database,

which I don't know

if you would actually want to

do that in real code, but, you know.

Okay, so-

>> Is values database now,

I guess a field or a property?

>> Yes.

So, this is just a letdown value inside of a class.

So, we have these let bindings which are very

similar to a var except there are immutable.

But they can also be defined inside of classes.

And when they're defined

inside of classes they're private.

So, I'm not going to be able to access this outside,

like when I've instantiated a value service,

I'm not going to be able to go.valuesDB.

>> Yeah.

>> It's just hidden by default. So, this is

just like a nice convenience for-

>> For how you could scope some of your values.

>> Yeah, exactly. It's similar to a field.

So, you noticed I still have a compiler error

because I haven't implemented GetValue.

So, I'm going to go ahead and do that.

GetValue takes an int.

So, we'll call that index,

and we'll give it a type annotation of int,

which is actually optional but

I'm choosing to do that anyways.

>> Okay.

>> So, we'll take values.

So, basically, depending on what's passed in,

we may not necessarily have a guarantee

that this is going to exist inside of this database.

So, we want to be able to

deal with the fact that that might

not exist but still be able to handle it gracefully.

>> Okay.

>> So, I'll go let results equal valuesDB,

and I'm going to use this pipe operator.

This is similar like PowerShell pipes or Unix pipes.

I'm going to pipe this into a function,

and this function is going to be called Array.tryitem.

I'm just going to pass an index as my index.

So, if you hover over "tryitem",

tries to find the nth element in the array,

returns none if index is negative,

or if the input array does not

contain enough elements, right?

So, if I hover over a result,

you'll see that it's not a string but it's

a string option, right?

But the signature of GetValue is a string.

So, I need to find a way to convert

this string option into a string.

Well, this is where the magic of F# starts to appear.

I'm now forced to deal with the fact

that I may not actually have what I'm looking for, right?

So, I can do pattern matching and I can have Some value.

I'm basically saying F results is a Some,

meaning, there's something there,

there's actually a value,

then, we'll just return that value.

But if it doesn't exist,

I need to do something with that.

Oh no, means we didn't have it.

So now, I'm fully implementing

IValuesService but I've

also dealt with the fact this ValuesDB,

I mean, you could imagine it

could come from somewhere else.

It may not have a thing that matches a particular index,

or index might also be a more complicated concept

than just an int, right?

But the concept of, "hey,

find me a thing at this location,

somewhere in this remote source

that I have," well it may not exist.

So, we need to deal with that in some way.

F# optional in dealing with those and

pattern matching are a great way to do that.

>> Nice.

>> So the next step.

We haven't done anything of values control

yet because we need to go into

startup because this is where

we need to actually wire up the interface.

>> Right.

>> So, now, we're going instead

to the configure of services.

>> Yeah.

>> That's inside our startup. Then, that's

where we're going to tap into

the Iservice collection and we're going to add

something to the DI framework.

>> Yeah, exactly.

>> So, I'm going to have to open my values.

What did I even name this thing.

Oh, item service.

>> Item service.

>> I thought I named that value service.

Well, naming it's always fun.

>> So, we go "services.AddTransients"

and we'll go "IValuesService."

There we go, and we're going to pipe this into ignore.

So, this is something

that you notice you don't have to do in C# but

you have to do that in F# because

configure services returns a unit,

meaning nothing, but add

transients returns an IService collection.

>> Yeah.

>> And C#, that just gets implicitly discarded.

But in F# it doesn't

because we're very strict about the whole.

Hey, if you're calling a thing that returns a thing.

>> You want to do something.

>> Yeah, you should do something with it.

Now, if you literally want to do nothing with it,

then, you can put it into the ignore function.

The Ignore function just says, "Oh,

you gave me a thing." Cool. Moving on.

So, now that we've hooked that up in there,

we now need to do the final thing,

or we'll go into the actual values controller,

and we'll go service,

I guess that's what I'm going to name it,

open ItemService and this will be IValuesService.

Okay. So, I now have an actual IValuesService

that the DI framework is going to throw in here.

So, in this case, we'll go

let values equals service.GetAllValues,

and right here, we'll go let

value is equal to service.GetValue.

And we're going to pass in.

>> That ID?

>> This thing called ID as the index there.

You notice in the little hover

tooltips I can go to definition and stuff like that.

Just a nice fun little thing that was

contributed by one of our open source community members.

>> Oh, nice.

>> So, I figured I'd call that out there.

So, let's just go ahead and run this real quick.

So, for people that have been following along, I mean,

this is just kind of standard ASP.NET stuff,

there was no crazy stuff that I had to do to get F# to be

working with the way that it would work with C#.

That's really the point, right?

We want this to be something that

people can use. So, were okay.

So, API values,

value1 and value2, it's what you would expect.

So, we'll go one that will give me that.

We'll go 5,000.

Oh no, looks like it's working.

>> Right.

>> So, what you can imagine I could do is,

maybe this item service is actually

a much more complicated unit while I could

create perhaps different projects,

and then, I could reference that project

from here, and then,

just call into it there, and that project could

be in an all F# projects.

Then, I could write all of this stuff with like

accessing a datasource and maybe doing some logic on it.

I could do that all in F# but I can opt

into that because now that I have stuff wired up,

if I'm familiar with C# and object

on your programming ASP.NET MVC,

I can just do this and say, okay, now,

I'm going to factor this out,

get a bit more functional

and see where that goes from there.

And that's kind of what I think the real value of this

is for people especially if they're

trying to learn functional programming.

>> Right. You know what I really

love about that point that you made is,

I can have a solution which

essentially is a collection of projects,

and I can have some of those problems might be F#,

they might be C#,

and I could mix them all together to create my solution.

So, depending on what I want to do,

I can pick the right language for the job, naturally.

>> Yeah, exactly.

But speaking of picking the right language for the job,

let's talk a little bit about

some more stuff that we have.

>> Sure.

>> Because it's not just about ASP.NET MVC.

There is a cornucopia, if you will,

of things that you can do with F# on .NET Core.

So, let's start about Giraffe a little bit.

So, Giraffe. Well, first of all,

it's got a very different logo.

>> Okay.

>> That's really cool. I love this logo.

It's super cool. It's got

the little lambda in the shape of the giraffe and stuff.

>> Nice.

>> Yeah, that was really well put together.

So, this is kind of at its heart.

I like to think of it as it's functional ASP.NET Core.

So, whereas ASP.NET Core MVC

is ASP.NET Core MVC but it's object oriented ASP.

NET core. This is functionally

ASP.NET Core, so it's a little different.

It's also it's more lightweight.

It's so like whereas MVC is a framework,

it's very opinionated in

the way you have to do things, right?

Like I have to wire up the DI if I want to use stuff.

This is much more of a library,

it's a bit more lightweight, it

feels a bit more low level when you're using it.

That appeals to a certain crowd of people,

and so that's part of the reason why I

love this because I'm

actually one of those kinds of people.

I like having real direct control

over each and every little thing.

>> I'm assuming with that you probably

get a lot better performance, maybe.

>> It depends on the workload.

I think between NBC

and Giraffe they're about the same overall,

but there might be a little.

I haven't looked at recent benchmarks,

but I know that when there were

benchmarks six or seven months ago,

they were basically the same in

terms of perf like module,

maybe a couple of requests

per second or something like that.

>> Got it.

>> So, this uses what's known as

Kleisli composition to define the API routes.

So, few functional programmers out there

and specifically those who like category theory.

I just said Kleisli composition.

That's what this uses. I hope you're listening.

Anyways, what this actually

means for the rest of us is that,

it's a really convenient way to do stuff,

and it uses fun little operators that look like arrows,

and those arrows conceptually are like, "Oh,

the thing on the left goes into the thing on the right".

It's actually, in my opinion, very easy to learn,

where you can learn the mathematical underpinnings later,

and just have some nice syntax

to work with in the meantime.

So, I think this one's recommended for people,

if you already have functional programming

experience or at least a little bit,

and you're not familiar with .NET,

or .NET Core, ASP.NET Core, or something like that,

or maybe you are, but you've

never really explored F# before,

then this is definitely a good one to

try out because it's much more functional.

So, I want to show you

a little bit about what that means.

>> Cool. Let's take a look at it.

>> Yeah. Okay.

>> I see you're already doing

this one on a different OS, right.

You're doing that now on your Mac.

>> Right. Of course, I am. So, if

I wanted to get started with this,

I already have all the template installed,

giraffe.template.

Yes, something like that. You could just

google how to do it or something.

But, basically, you do .netnew-i,

or --install.

This one install a new template

such that when you type 'dotnet new',

you'll be met with a thing,

a Giraffe Web App.

It'll say, okay, Harold,

the short name is Giraffe,

the language is F#,

and here are some tags.

So, I'll go to 'dotnet new giraffe -h',

it'll show me some options.

So, there's a dash uppercase V for a view engine.

There's a few things that it will let me do.

I can use just the defaults that it has,

I can use Razer which is actually

ASP.NET NBC Razor pages.

Well not the Razer pages text,

but it's Razor templates actually thrown in there.

It basically builds a little basic UI or I

can.Liquid which is an open source alternative to that.

Or I can go with none where basically if I just want to

have a web API and that's what I'm going to use.

So, there's IncludesTests,

there's a thing called UsePaket.

Paket is an alternative dependency manager to NuGet.

It uses NuGet like the backend,

but it resolves packages a little differently,

has a lock file that specifies

all your dependencies that you check into

source code, that sort of stuff.

So, these are all options for you.

You can play around with it in

your spare time and check it out.

But, we'll go dotnet new giraffe -V none,

and let's put that into,

we'll call that giraffe fun.

>> You had to do a new, right? Dotnet new.

>> Yeah. I am wonderful at typing on command. Okay.

>> It'd be cool if they just had

a dotnet giraffe command.

We should submit that on PR.

>> That would be cool. Okay. So, there's SRC.

Cool, actually.

Yeah. Okay. See if

I open code at least this give me what I want.

Yes it probably should here. All right.

So, it's done a design time

Builds so it's actually built

to deal on that sort of stuff.

You notice there's this paket.references file,

this came from paket where we'll store some packages.

So, few things here, programme.fs,

models.fs, httphandler.fs.

This models.fs, is just to saying,

hey this is a type, it's got message.

It is what's called and then it has a thing called text,

and this is basically going to model what we

want to put into HTTP pipeline as a response.

So, then you can have an F# type,

in this case, a record type.

You can basically have a strongly typed representation

of what you want the output to be,

and then it will understand how

to handle that under the covers.

>> Okay. Let me ask you one thing about that.

>> Yeah.

>> So, I see there's a models file that's in there.

So, is this framework somewhat convention based?

So, do I have to put all my models in that models file?

>> Oh, no. You could put this in any file that you want.

The main thing is that it's under a name,

space giraffefun.models and so where it's actually used,

you'll notice that we're

opening the giraffefun.models namespace.

So, that's where there's

this slight response and we have

these little brackets right here,

that's creating one of these models,

an instance of it called response,

and then it's taking that text there.

So, what I want to do very briefly is just walk through.

There's a bunch of stuff right

here that you can just kind of ignore.

I mean, when you build a real Giraffe App,

you'll have to learn this, but this is

just wiring up to ASP.NET Core.

It's actually doing stuff very

similar to how ASP.NET NBC does it.

It's just, I mean it's basically just,

the goal of it is to take an error handler, in this case,

if there's an actual exception that's thrown

and give it 500.

Then, this thing that they call Web App which is where

your actual Web API routes are going to live.

Another thing that I want to call out

here, so this is pretty fun.

Notice how I click this tab.

This is the "I Not" tab.

I'm actually using a plugin here called I Not F#.

This is the official F# plugin

for the Little Studio Code.

It turns it into a full fledged IDE.

See, there's this handlegethello function right there.

I'm going to say, "Command" and then click and

it will go to definition right in there.

There's all sorts of

really cool pieces of functionality this has.

I really recommend people who are doing

stuff with VS code on a Mac or anywhere really,

definitely check this out.

It's a really great alternative to Visual Studio.

>> Is that particular just for web developer

with F# or just F# development in general?

>> This for anything. I personally use both.

So, I use this in Little Studio.

My main solution, well,

it's the F# solution itself.

It's a really big one. That one's in Visual Studio.

But, anything that's sort of lightweight stuff,

I always do it in VS code first,

and I do all of my F# scripting in VS code.

So, F# has a scripting mode where you

can create F# script files and then you can

execute them in a thing called F#

interactive which is

just an interactive rappel basically.

So, I prefer VS code for scripting,

just because scripting is more of a lightweight sort of

thing and I like having a lightweight editor for that.

>> Sure. That makes sense.

>> Yeah. I reckon

even if you're a heavy Visual Studio user,

you should definitely check this out, and use both.

You may find that you like one for a particular task.

So, I recommend people definitely do that.

Let's explain a little bit about what this

is doing because this is

very different especially if you're familiar

with C# in [inaudible].

So, we have a function, it's called WebApp,

and WebApp signature is given in HttpFunc,

which is an abstraction that lives inside of the

actual, the library itself,

and given in ASP.NET Core.HTTP.HTTPContext which is

an ASP.NET Core abstraction produced in HttpFunc result.

So, it's important to know the signature,

but in terms of how you

actually write code that does this,

like new API, that sort of stuff,

you don't really have to understand all of this,

but it's definitely worth

understanding that there's a particular signature here,

because that's how you actually plug into things.

So, it's a thing called webApp,

and webApp is comprised of a function called Choose,

and Choose is comprised of well,

in this case it's just an F# list.

This whole thing right here is actually a list,

and it's a list of two items.

One is called a subRoute,

and subRoute takes in

"/api" or whatever you want to call it.

You can define routes underneath it,

and then at the very bottom it takes

a thing called setStatusCode.

setStatusCode is a function, you say okay,

it's going to be 404, and then

remember how I mentioned those arrows?

Is the Kleisli arrow, and is basically saying, "Okay,

put the setStatusCode 404" basically say,

''I want to compose this with

a function that is called

text,'' and text will take a thing saying,

''Not found" so that when there is

the equivalent of a 404 that would

happen in ASP.NET Core,

it'll just say, ''Not Found,'' as its response.

>> So, that's a quick little helper in that,

that will return just the text but it will set

the headers and the status codes and whatever else I

need to have set just

using that little function, that's it.

>> Exactly. If you wanted to have it be more than just,

"Not Found", you could actually plug

in your own function right here.

Because text itself is

just the thing that takes a string.

It takes in a thing called "Next" which is

an HttpFunc and it produces

HTTP context objects and it produces HttpFunc result.

So, it takes a whole bunch of stuff.

Basically this text has a particular signature.

If you write a different function

that has that same signature,

you can plug that function into here and then you

can have a custom 404 handler.

>> Great.

>> But so, that model of there's a particular signature,

I'm going to create a function that has

that same signature and do something else with it.

That's how you implement functionality with Giraffe.

So, we'll notice that inside of the sub routes,

sub route itself has

a whole bunch of like this is

nested choose is going on right here.

There's a choose and then

this choose is comprised of this thing called Get.

Choose is basically a way of saying,

well an incoming request is

going to have a particular shape to it.

It's /API/Hello.

This is basically the wave in coding.

If you find that route called hello, call this handler.

If you don't find it,

maybe it was something else,

maybe there was a different get,

maybe you defined your own routes called Hello

XML and you wanted to call HandleGetHelloButXML.

This doesn't exist right now but like maybe

that was the actual slash.

Well, this basically walk through

the choose the list and say okay, does it match this?

No. Does it match this?

Yes. Okay. If it doesn't find it,

then it just falls out to the next scope.

>> Got you.

>> Then, once it can't find anything, it will go,

"Hey 404 not found,

you gave me something I didn't understand."

That's the flow with this thing.

So, it's a little bit of alien syntax

but as you start to write it it makes so much sense.

So, I have this HandleGetHelloButXML.

So, if we go to handle get hello,

we look at where that's defined.

That's defined in HttpHandlers.fs.

So, that's just a function right there.

Well, let's create another function in here instead

of a module called HTTP handlers.

So, that right there.

Interesting that they went with this decision

to go with a Lambda expression to define it.

You don't actually have to do that.

So, we'll go HttpFunc that will

define that as one of the input parameters and then

the other one will be a context.

So, that will be a HTTP context.

Okay. So, this is going to be our function here,

and we're going to make it a task.

This is actually a TPL task because under

the covers HTPP.NET Core works with

async await and tasks and all that stuff,

this is just a nice syntax for being able to define that.

So, we'll go response

and we'll define a new one of these,

you can define it however you want.

I'm going to use

a slightly different syntax than what we had there.

We want it to be a text because if we

look at the shape of response under models,

this right here it's a message just has text right there.

So, we'll do that, we'll go text equals,

"Hello world, from Giraffe, but in XML."

Okay. Now, we basically want to return out of this task.

So, basically this is a feature

called computation expressions in F#.

You can model a lot of complex stuff

but I won't really be getting into that.

It's fundamentally a nice syntax for being able

to write code that executes in a particular context.

>> Got it.

>> Not just the necessarily the main executing thread.

So, this is a task based context.

So, I need to do return to get out of

that context or this thing called

Return bang and that just depends on the signature.

If I do return, that means I have a value,

that is a form task.

It actually has the task type,

I just need to return that out.

But if I will have another value that I want to pass into

another function that will then produce

a task that I then want to have return out,

Then I can just do return bang.

So, you notice this is using return bang at the bottom.

That's because JSON itself actually returns

the thing that I need.

>> That's like almost F#s way of

handling continuations a little bit?

>> Yes, this is very similar to that. Yes.

>> Okay.

>> So, instead of using the JSON function,

I'll use the XML function because this is

a helper that Giraffe has there

and will just go XML response next context.

Notice that XML need the thing and

then it needs the next function

which we've already got right here.

Then, it needs the contacts

which we already have or here we

just pass that in, now it compiles.

So, you notice right here,

I don't have the red squiggles anymore,

I can go to definition right there because

this is just awesome editor tooling which is just editor,

what F# is all about in

addition to being a full functional programming language.

So, we'll go .netwatchrun.

Probably I should have done that from the beginning.

So, I could show it executing

both of the modify but whatever.

>> That's fine.

>> Okay, cool. So, this

is going to be an localhost 5,000.

Okay, localhost 5,000.

There we go not found because I didn't specify error.

So, we know the error handler works there.

We'll go API hello

and now I have some JSON which is nice.

"Hello world, from Giraffe".

What do we name this?

We named It "Hello XML?"

Yes "Hello XML." Here we go.

Hello world, from Giraffe but an XML."

>> Nice.

>> So, what's really interesting about this is,

if I wanted to add a new routes,

you just go here, you go route.

>> Specify the route and just add a function.

>> Hey there, yeah. That's what

functional programming is all about.

If you want a new capability,

just add a new function and just compose

that function with whatever the thing is you're building.

So, it's that easy because it's

just a function I can do anything I want in here.

I could execute some business logic,

I could do a complex computation,

I could hit a database, I could

do anything, it doesn't matter.

Because all I need to do is make sure that

it fits this particular signature.

That it's a function that's task-based,

it's got a next function,

it's got to call an issue to be

context and everything inside the body of this.

However I fill out this response doesn't matter.

So, that's why it's so easy to make

web APIs like this because it's super flexible.

>> Right.

>> So, yeah I really

love Giraffe and that flexible model.

How I mentioned Suave came before Giraffe.

This is where it truly borrowed from Suave

because Suave pioneered this not just the syntax.

They didn't just party near the fact that

there's this thing called get this,

Kleisli cognitive, this choose function.

If you write Suave Code, it

looks similar to this as well.

But this entire model of just,

"Hey I have a function" It's a really beautiful object.

>> It's a nice line.

>> Anyway, that's the heart of Giraffe Programming,

and you can do both JSON and XML if you want.

>> That looks pretty good. So, I know

we're running really low on time.

So, one thing I wanted to ask you about,

if I want to get started with using

Giraffe or even just web programming in

general with F# what are some of the places you

think I can go to get some of that information?

>> Absolutely. So, first of all,

if you already have .NET Core installed on your machine,

then you already have

what you need which is which is good.

But search engines have a lot of information.

Like if you just type in F# Giraffe for example,

you'll end up like on a Github page

that have everything you need.

There's the same thing with Saturn,

Suave, Freya, all that stuff.

They all have excellent get started guides.

I recommend everybody check out all of

them not just one particular one just because

each has a particular thing

that they may speak to you personally as a developer.

Yeah, we're also going to be adding

some documentation for this in our official docs.

So, if you just look for the F# docs,

we are going to add that too.

We just finished up a few of the things there.

So, that hasn't made it final yet.

>> Nice, pretty cool. Again, regardless of

whether I'm using Visual Studio or Visual Studio code,

whether I'm on Windows or on Mac or Linux.

>> Yeah.

>> I could still get these templates,

I can run them on my machine and I could

start web development with them to?

>> Yeah, absolutely.

>> Cool, awesome. Hey, thank you so

much for being on the show man, I really appreciate it.

>> Yeah, no problem.

>> We just learned all about creating Web applications

with F# on this episode of the ON.NET show.

For more infomation >> Web Development with F# on .NET Core - Duration: 36:32.

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

「Nightcore」→ Take Me Away (Lyrics) - Duration: 2:27.

「Nightcore」→ Take Me Away (Lyrics)

For more infomation >> 「Nightcore」→ Take Me Away (Lyrics) - Duration: 2:27.

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

[러시아 월드컵] 이근호, 프랑스vs페루전 단독 해설 도전… 이광용 캐스터와 콤비 - Health tips - Duration: 5:48.

For more infomation >> [러시아 월드컵] 이근호, 프랑스vs페루전 단독 해설 도전… 이광용 캐스터와 콤비 - Health tips - Duration: 5:48.

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

Volkswagen up! 1.0 60pk 3-DRS Move Up! | Executive pakket | Climatic - Duration: 1:10.

For more infomation >> Volkswagen up! 1.0 60pk 3-DRS Move Up! | Executive pakket | Climatic - Duration: 1:10.

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

9 natuurlijke manieren voor het verminderen van rugpijn - Duration: 3:47.

For more infomation >> 9 natuurlijke manieren voor het verminderen van rugpijn - Duration: 3:47.

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

[러시아 월드컵] 덴마크vs호주 예상 라인업 공개… "지상파 중계 없어요" 김빠지네 - Health tips - Duration: 3:01.

For more infomation >> [러시아 월드컵] 덴마크vs호주 예상 라인업 공개… "지상파 중계 없어요" 김빠지네 - Health tips - Duration: 3:01.

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

Kia cee'd 1.6 GDI 135PK ComfortPlusLine Nav. - Duration: 1:07.

For more infomation >> Kia cee'd 1.6 GDI 135PK ComfortPlusLine Nav. - Duration: 1:07.

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

Volkswagen Golf 1.2 TSI Cabrio | clima | cruise | 18 inch | leder - Duration: 1:07.

For more infomation >> Volkswagen Golf 1.2 TSI Cabrio | clima | cruise | 18 inch | leder - Duration: 1:07.

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

FRAN DRESCHER: "DIE NANNY" KOMMT ZURÜCK! - Duration: 2:46.

For more infomation >> FRAN DRESCHER: "DIE NANNY" KOMMT ZURÜCK! - Duration: 2:46.

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

「Nightcore」→ Change (Lyrics) - Duration: 2:33.

Subtitles are in video ^^

For more infomation >> 「Nightcore」→ Change (Lyrics) - Duration: 2:33.

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

Как бесплатно набрать просмотры на видео 2018 - Duration: 11:59.

For more infomation >> Как бесплатно набрать просмотры на видео 2018 - Duration: 11:59.

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

辽宁号等40艘战舰军演 美专家:4架轰炸机就能全摧毁 - Duration: 8:19.

For more infomation >> 辽宁号等40艘战舰军演 美专家:4架轰炸机就能全摧毁 - Duration: 8:19.

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

蔡英文發推慰問安倍卻不用中文 但安倍用中文回復 - Duration: 8:35.

For more infomation >> 蔡英文發推慰問安倍卻不用中文 但安倍用中文回復 - Duration: 8:35.

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

南海告急!美军三大航母突然闯入,贸易战特朗普没占上便宜又来挑衅辽宁号了 - Duration: 2:21.

For more infomation >> 南海告急!美军三大航母突然闯入,贸易战特朗普没占上便宜又来挑衅辽宁号了 - Duration: 2:21.

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

得知《手機2》正常推進中,剛看完《手機》的我竟莫名有些期待 - Duration: 3:56.

For more infomation >> 得知《手機2》正常推進中,剛看完《手機》的我竟莫名有些期待 - Duration: 3:56.

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

晚清最悲壮的英雄,足足被砍了20多刀才断气,死前说16个霸气的字 - Duration: 2:21.

For more infomation >> 晚清最悲壮的英雄,足足被砍了20多刀才断气,死前说16个霸气的字 - Duration: 2:21.

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

관람객들이 담배 라이터 던져주고 '골초'로 만든 '동물원 침팬지'? - Duration: 4:01.

For more infomation >> 관람객들이 담배 라이터 던져주고 '골초'로 만든 '동물원 침팬지'? - Duration: 4:01.

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

Hydrance Intense Siero Idratante: come idratare la pelle h24*! - Duration: 0:32.

For more infomation >> Hydrance Intense Siero Idratante: come idratare la pelle h24*! - Duration: 0:32.

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

방산(防産)강국 폴란드가 K9 수입한 사연 | korean army 24h - Duration: 14:02.

For more infomation >> 방산(防産)강국 폴란드가 K9 수입한 사연 | korean army 24h - Duration: 14:02.

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

「Nightcore」→ Havana ✗ Despacito ✗ New Rules ✗ Attention ✗ Rockstar ✗ Location (Switching Vocals) - Duration: 1:37.

Nightcore - Havana X Despacito X New Rules X Attention X Location X MORE (subtitles in video)

For more infomation >> 「Nightcore」→ Havana ✗ Despacito ✗ New Rules ✗ Attention ✗ Rockstar ✗ Location (Switching Vocals) - Duration: 1:37.

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

Watch: SHINee Members Show Varied Reactions To Key's Impressive Aegyo - Duration: 1:41.

Watch: SHINee Members Show Varied Reactions To Key's Impressive Aegyo

The next part of SHINees appearance on Weekly Idol aired on the June 20 episode.

With the request of the MCs, pulled out a wide range of aegyo to the song Oppa-Ya.

Soompi. Display. News. English.

300x250. BTF Soompi. Mobile. English.

300x250. ATF.

Including plenty of winks, finger kisses, Park Ji Hoons signature save you in my heart pose, and some strange facial expressions, Key went all out for about a minute.

His members reacted with various looks of amazement, cringing, and laughter.

After Key finished, Minho commented, Wait, isnt this a comical video?.

Check out the humorous clip below!.

For more infomation >> Watch: SHINee Members Show Varied Reactions To Key's Impressive Aegyo - Duration: 1:41.

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

「Nightcore」→ Take Me Away (Lyrics) - Duration: 2:27.

「Nightcore」→ Take Me Away (Lyrics)

For more infomation >> 「Nightcore」→ Take Me Away (Lyrics) - Duration: 2:27.

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

「Nightcore」→ Change (Lyrics) - Duration: 2:33.

Subtitles are in video ^^

For more infomation >> 「Nightcore」→ Change (Lyrics) - Duration: 2:33.

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

E3 2018 : LES JEUX QUE JE VEUX !!! [ASSASSIN'S CREED ODYSSEY / FALLOUT 76] - Duration: 4:50.

For more infomation >> E3 2018 : LES JEUX QUE JE VEUX !!! [ASSASSIN'S CREED ODYSSEY / FALLOUT 76] - Duration: 4:50.

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

EN DIRECT. Danemark - Australie (1-1): l'arbitre siffle la fin de la première période - Duration: 4:20.

For more infomation >> EN DIRECT. Danemark - Australie (1-1): l'arbitre siffle la fin de la première période - Duration: 4:20.

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

Darshan Thoogudeep Action | Vardi Wala The Iron Man | Cinekorn Music Company - Duration: 3:59.

Introduction

For more infomation >> Darshan Thoogudeep Action | Vardi Wala The Iron Man | Cinekorn Music Company - Duration: 3:59.

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

진짜 '명품'으로 환골탈태한 K-55 자주포 | korean army 24h - Duration: 13:18.

For more infomation >> 진짜 '명품'으로 환골탈태한 K-55 자주포 | korean army 24h - Duration: 13:18.

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

La 'crisis' de doña Letizia y Felipe - Duration: 6:56.

For more infomation >> La 'crisis' de doña Letizia y Felipe - Duration: 6:56.

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

Mercedes-Benz CLK-Klasse Cabrio 200 K. Elegance NIEUWE APK! - Duration: 1:08.

For more infomation >> Mercedes-Benz CLK-Klasse Cabrio 200 K. Elegance NIEUWE APK! - Duration: 1:08.

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

방산(防産)강국 폴란드가 K9 수입한 사연 | korean army 24h - Duration: 14:02.

For more infomation >> 방산(防産)강국 폴란드가 K9 수입한 사연 | korean army 24h - Duration: 14:02.

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

Trump reverses policy to keep migrant families together at Mexican border - Duration: 1:49.

U.S. President Donald Trump signed an executive order designed to keep undocumented migrant

families together at the Mexican border.

However, the fate of more than 2-thousand children already separated from their parents

is unclear.

Ro Aram has more on this rare policy reversal, and its impact.

President Trump had previously argued he had no authority to stop separations of illegal

immigrant families at the border and that it was up to Congress.

Just the day before he signed Wednesday's executive order, Trump said current law only

allowed two policies - to open borders completely or criminally prosecute illegal entry.

But it turns out he was able to exercise his authority, and now migrant families are able

to stay together.

Despite the executive order, Trump maintained his tough stance on immigration.

"So we're keeping families together and this will solve that problem.

At the same time we are keeping a very powerful border and it continues to be a zero tolerance.

We have zero tolerance for people that enter our country illegally."

Images of children being held in cages at border facilities and audio clips of them

crying for their parents have sparked fury both domestically and globally.

Though the executive order solves the separation issue, families will still be detained together

when caught entering America illegally.

Although they will be pushed to the front of the line for immigration proceedings, it

is still unclear how long they will be detained.

The prolonged detention of children could spark a potential legal battle as a previous

court settlement states minors caught at the border can only be held for 20 days.

Ro Aram, Arirang News.

For more infomation >> Trump reverses policy to keep migrant families together at Mexican border - Duration: 1:49.

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

Salman khan Shahrukh khan and Aamir khan in a school | FactIndia - Duration: 4:37.

For more infomation >> Salman khan Shahrukh khan and Aamir khan in a school | FactIndia - Duration: 4:37.

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

Online banking used over 100 million times a day on average - Duration: 0:35.

Koreans turned to online banking services for more than a hundred million times a day

in the first half of 2018.

Activities includes log-ins, bank transfers, and loan applications through computers and

smartphones.

According to the nation's central bank, the numbers increased by 14 percent compared to

the first half of 2017, surpassing 100 million usages per day for the first time.

About 62-point-1 percent involve mobile banking.

In contrast, the BOK added, the use of banks and ATMs dipped as more people opt for online

services.

For more infomation >> Online banking used over 100 million times a day on average - Duration: 0:35.

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

Mt. Baldy: T A P Web Series S1 E4. - Duration: 5:09.

"Biggie Biggie Biggie can't you see sometime da word just

hypnotize me."

Yo thanks Champy! I needed this.

"It aint fun if the homie don't have none"

It was fun indeed... So what next?

You hab to bust a train big boy. Choo! Choo!

Bust a train? You mean start training?

Training for what exactly?

Champy did you just text me? You know I'm sitting right here right? All right

I'll play along. Let's see what this says the Three Pack

of Peaks challenge: Mount Baldy, San Jacinto and San Gorgonio...

Champy there is no way I can do this all these trails are over 10,000 feet in

elevation and over ten miles. Plus you want me to do this in three days. Are you

trying to kill me Champy?

If you don't train you gonna die slow Mother F#$%&#!

You gonna be dead!

Champy where did you get all your

information from?

You know I have a photographic memory

aka Total Recall.

More like total retard!

All right I'll take your challenge Champy. It's on.

You gonna be dead! Dead!

Paul Champy here.

At Mount Baldy.

Decided to document this trail as well. It's actually one of the...

One of the highest peaks in Southern California it's about it's over 10,000

12 and 1/2 miles round trip. This is actually a side trail. I just wanted to

get a photo or video of the little waterfall right there I'm not sure if

you can see it but it's a little tiny one.

figured uh... this will be a great way to start training. Starting to get into it

the elevation game is no joke.

All your fancy equipment, fancy gear won't do anything if you're not

physically a mentally condition for this type of environment or atmosphere.

All right... See you in a bit.

This part looks like it's a start of...

Devil's Backbone.

It starts to get a little narrow

as you can see.

One false move...

You can seriously hurt yourself.

For more infomation >> Mt. Baldy: T A P Web Series S1 E4. - Duration: 5:09.

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

President Moon's visit to Russia tied to inter-Korean peace efforts - Duration: 2:38.

Attention is being drawn to the overall implications of this special state visit.

One of the highlights is the summit between the two leaders, who are no strangers, having

met several times before.

Our Cha Sang-mi sheds light on the significance of the timing of this sit-down as well as

what both sides seek to get out of it.

Russia is the place to be these days; not just for soccer fans, but also for world leaders

conducting diplomacy.

President Moon Jae-in's state visit to Russia follows a series of meetings involving the

Koreas, all of them historic: the two inter-Korean summits, the Singapore summit between President

Trump and Kim Jong-un, and the North Korean leader's third meeting with Chinese President

Xi Jinping.

One key topic in the South Korea-Russia talks will be, undoubtedly, North Korea, and specifically,

its denuclearization.

One expert says Seoul wants to get Russia involved in the denuclearization talks through

potential economic projects by Moscow and Pyongyang.

"Right now, to handle the North Korea issue, South Korea badly needs outside support.

And one of the goals is get Russia involved in dealing with North Korea.

First of all, economic projects.

I'm pretty sure there will some discussions about railway and gas pipelines.

(cut) These discussions will not yield any significant results.

However, there are other areas, which are of great importance and where progress can

be made."

Though North Korea's trade with Russia is worth just two percent of what it trades with

China, the expert says Russia is still a status quo power and its soft power in North Korea

should not be underestimated.

And, experts say, it's not just Seoul trying to cozy up to Moscow; both sides have an interest

in strengthening their long neglected bilateral ties.

In exchange for support in developments on the Korean Peninsula, Russia wants to bring

in South Korean investment.

"Russia has never requested economic cooperation from China, fearing that Chinese capital and

people flowing into the Far East region could create massive territorial disputes.

That's why Putin agreed to economic cooperation with Prime Minister Abe.

But there could also be territorial issues with Japan in the northern regions, which

is why South Korean investment is politically the most stable for Russia."

Economic cooperation, experts say, will take a long time to bear fruit, but like the Korean

saying, starting is half the task.

Cha Sang-mi, Arirang News.

For more infomation >> President Moon's visit to Russia tied to inter-Korean peace efforts - Duration: 2:38.

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

President Moon kicks off 3-day state visit to Russia, delivers speech at State Duma - Duration: 1:53.

President Moon Jae-in is in Russia for a 3-day visit.

In about half an hour,... he will deliver a speech at the State Duma,... becoming the

first South Korean head of state to do so.

We will bring you live coverage of that historic event as it develops later in our newscast.

First, Hwang Hojun starts things off with the liberal leader's itinerary.

At the invitation of his Russian counterpart, Vladimir Putin,... this is the first time

a sitting South Korean President has made an official state visit to Russia in 19 years.

To kick off his three-day stay, President Moon will deliver a speech before the State

Duma, the lower house of Russia's Federal Assembly.

This will be the first time a sitting South Korean president has done so.

It's been a key diplomatic policy of the Moon administration to expand South Korea's diplomatic

and economic horizons with its Eurasian neighbors,... the "New Northern Policy,"... so observers

expect President Moon will introduce his vision for boosting Seoul-Moscow relations.

In fact, it was in Vladivostok, Russia... that he first introduced the concept... when

he was attending the Eastern Economic Forum last September.

And considering the region's turbulent geopolitical landscape,... it's likely that President Moon

will ask for Russia's active cooperation in the denuclearization of the Korean Peninsula.

After his speech at the Duma, President Moon is set to meet with Russian Prime Minister

Dmitry Medvedev.

On Friday, President Moon will hold a summit with his Russian counterpart, Vladimir Putin,

which will be followed by a state dinner.

He will also meet with South Koreans living in Russia and business representatives from

both countries.

After completing his itinerary in Moscow, President Moon will fly to the southwestern

city of Rostov-On-Don... to cheer on South Korea in their World Cup

match against Mexico.

And that's where he'll wrap up his two-night stay,...

the first official state visit to Russia by a South Korean leader since 1999.

Hwang Hojun, Arirang News.

For more infomation >> President Moon kicks off 3-day state visit to Russia, delivers speech at State Duma - Duration: 1:53.

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

S. Korean delegation leaves for Friday's Red Cross Talks - Duration: 2:04.

Delegations from Seoul and Pyongyang are meeting once again tomorrow for the Red Cross Talks.

The main item on the agenda is the reunions of separated families,... but other humanitarian

issues could be discussed as well.

Oh Jung-hee gets us up to speed with the developments.

The two Koreas are holding Red Cross Talks on Friday at North Korea's Mount Kumgang...

to discuss humanitarian issues including the reunions of families separated by the Korean

War.

South Korea is sending a four-member delegation led by the President of the South Korean Red

Cross, Park Kyung-seo.

North Korea has not yet notified Seoul of its delegates.

The South Korean delegation left Seoul on Thursday afternoon.

They plan to spend the night in Goseong, in the north east of Gangwon-do Province, and

cross the eastern land border early Friday morning.

"I hope to have good discussions with the North on humanitarian issues -- especially

resolving the sorrow of over 57-thousand separated family members in South Korea."

The main agenda on the table is setting the schedules for the family reunions.

The leaders of Seoul and Pyongyang agreed at their summit talks in April to hold reunions

for separated families on around August 15th -- National Liberation Day.

If the reunion event is to take place, this will be the first time in three years since

the last event in October 2015.

Over 132-thousand people are registered as separated from their family members... but

among them, only 56-thousand are still alive... and among those, 85-percent are over 70 years

old.

South Korea is likely to suggest that the North allow separated family members to exchange

letters and visit their hometowns,... but it's unclear whether Pyongyang will accept

the proposal.

Other than the family reunions, some other humanitarian issues could be discussed at

Friday's talks -- like releasing South Korean detainees in the North... and Seoul providing

humanitarian assistance to Pyongyang through the World Food Programme and UNICEF.

Oh Jung-hee, Arirang News.

For more infomation >> S. Korean delegation leaves for Friday's Red Cross Talks - Duration: 2:04.

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

Umbrella suit cutting Simple Frock Umbrella cut gown cutting Steps easy way tutorial - Duration: 10:25.

umbrella suit cutting

For more infomation >> Umbrella suit cutting Simple Frock Umbrella cut gown cutting Steps easy way tutorial - Duration: 10:25.

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

✔✔ 남친이 결혼한다는 사실을 SNS 통해 알았습니다" ♥ 뉴스 속보 - Duration: 3:17.

For more infomation >> ✔✔ 남친이 결혼한다는 사실을 SNS 통해 알았습니다" ♥ 뉴스 속보 - Duration: 3:17.

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

ਨਨਕਾਣਾ Nankana - Official Trailer | Gurdas Maan | Kavita Kaushik | Punjabi Movie 2018 |Trailers 2018 - Duration: 1:15.

Please Don't forget to: LIKE | COMMENT | SHARE | SUBSCRIBE for the latest Movies Trailers.

For more infomation >> ਨਨਕਾਣਾ Nankana - Official Trailer | Gurdas Maan | Kavita Kaushik | Punjabi Movie 2018 |Trailers 2018 - Duration: 1:15.

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

Les zones "blanches" pour Waze, Coyote et consort en vigueur mi-juillet - Leblogauto.com - Duration: 3:01.

 Nous vous l'annoncions au début de l'année, c'est désormais une question de semaines pour que cela entre en vigueur

Les forces de l'ordre pourront imposer le silence aux avertisseurs et ainsi ménager l'effet de surprise d'un contrôle

 Les avertisseurs se sont totalement démocratisés dans les voitures. Avertissant de bouchons, dangers, animaux sur les voies, patrouilleurs en intervention, ces « assistants à la conduite » avertissent surtout des contrôles de police

A peine installés, les pandores sont signalés par la communauté de l'avertisseur en question et il n'y a plus d'effet de surprise

 Il y a 6 mois, a été annoncée l'idée de pouvoir déclarer des « zones blanches » temporaires pour lesquelles les avertisseurs ne doivent pas signaler les contrôles à leur communauté

Après 6 mois à plancher sur le décret, il devrait bientôt être adopté et entrera en vigueur mi-juillet

En revanche, les dangers et bouchons resteront signalés dans ces zones. A priori pas pour les contrôles de vitesse  Citant Emmanuel Barbe, délégué interministériel à la Sécurité Routière, Le Parisien écrit : « Les automobilistes pourront toujours signaler la présence des forces de l'ordre sur leur avertisseur mais l'information ne sera pas répercutée aux autres automobilistes

Cette mesure sera appliquée uniquement lorsque les forces de l'ordre feront des contrôles anticriminalité, d'alcoolémie et de drogue »

 En effet, quel automobiliste bon citoyen ne voudrait pas que les policiers ou les gendarmes arrêtent les criminels, les drogués et les alcoolisés au volant ? Franchement

Emballé c'est pesé, reste le décret à publier ! Vous noterez que les contrôles de vitesse ne sont pour le moment pas cités

A moins que cela ne rentre plus tard dans les contrôles anti-criminalité.  Illustration : Sécurité Routière

1 comment:

  1. very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information.
    Web Designing Company in Bangalore | Web Design Company Bangalore

    ReplyDelete