Tuesday, December 4, 2018

Youtube daily report Dec 4 2018

I am the new King

I already beheaded King Luceo

and your Father

Adolfo! You'll pay for this

and your beloved Laura

has agreed to exchange vows with me

Now you're best days are behind you

-(Borj) Let me help you -(Roni) Really?

For more infomation >> G-Mik Season 3: Basty assaults Borj - Duration: 0:50.

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

G-Mik Season 3: Basty and Borj make amends - Duration: 1:21.

You know guys, no matter how long i can endure this

I think I need to talk to both of you

Please, before the play starts, I hope you guys are in good terms by then

You know, Roni that's a piece of cake

I want Basty to know that I have no intentions of hurting Roni

and I'm your friend

You know, dude whoever that may be, I will always be ready to help

I know that I became impulsive

It's nothing Dude

I feel ashamed of what I did to you

I feel ashamed as well

I also made a mistake

I forgot to tell the Director about what you should do

I'm sorry bro

It's ok dude

For more infomation >> G-Mik Season 3: Basty and Borj make amends - Duration: 1:21.

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

G-Mik Season 3: Borj and Roni (#4) - Duration: 0:59.

Did you know that I've been looking for you all over the place

So that we can rehearse

I grabbed some newspapers so that I can help Tonsy with his business

But he got exhausted

Me and Missy also helped Tonsy with his savings

by selling those newspapers

You could've told us about it so we can help you

Don't worry, I have extra money with me so

I'll help you

Really?

Let me bring the bag

Sure thing

Can you carry it?

For more infomation >> G-Mik Season 3: Borj and Roni (#4) - Duration: 0:59.

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

G-Mik Season 3: Basty interrupts the rehearsal - Duration: 1:05.

Ok, Roni this is a scene where Adolfo will take advantage of you

Maybe I can't take it anymore If an evil comes here as well as your family relative and protest

Are you ok with it?

Now do good on this rehearsal

You won't escape this time

No one will hear you scream

You traitor!

You're mine now, Laura!

Let go of me

What are you doing?

You're not even in this scene, what are you doing? Do you even know how to read a script?

You're crazy!

Get down!

I said get down!

What's with you?

Let's rehearse again

For more infomation >> G-Mik Season 3: Basty interrupts the rehearsal - Duration: 1:05.

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

Mazda 3 Skyactive-G 120pk Aut navi/cruise/clima! - Duration: 1:05.

For more infomation >> Mazda 3 Skyactive-G 120pk Aut navi/cruise/clima! - Duration: 1:05.

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

UW Allen School Collquium: Research in Data Management - Duration: 55:40.

DAN SUCIU: Hello.

Welcome everyone to the computer science colloquium.

Today it's my great pleasure to introduce six speakers

from the Database Group who will tell you

about their project in data management.

So in case you haven't noticed this,

big data is changing the world today.

It helps to make scientific discoveries.

It helps cars drive themselves.

It helps save the environment, and it helps make discoveries

in the medical field.

So the students in our group, they

conduct research that address the new challenges in big data

management.

We have a secret sauce, and the secret sauce

that exists in databases and data management in general

is a separation of the what from the how.

What is a declarative level.

This is a logic, theoretical level

where we express how we want the data to be managed and stored

and queried.

The how is a physical systems level, algorithmic level

where we design the effective methods for storing

and managing the big data.

So today you will hear six talks from students and postdocs

in our group.

The first four talks are more at the border

between the what and the how.

This is the beautiful stuff where

the two extremes are combined.

The last two talks are about the what.

They show you the power that we get from a high level

declarative approach to data management.

I should mention that Babak Salimi is--

he had presented a video because he's

stuck in Canada without a visa.

He's waiting for his visa renewal.

And I will also ask you to withhold your questions

until the end of these talks.

So the first talk will be by Brandon Haynes on LightDB.

BRANDON HAYNES: Hey, everyone.

So I'm Brandon Haynes.

Today I'll be talking about LightDB, a data management

system that targets virtual, augmented, and mixed reality

video applications.

This is work in conjunction with Amrita

in the architecture lab, Armin, who's

over at Oculus, along with Magda, Luis, and Alvin

who are all faculty here at CSC.

So you might be wondering why I didn't give a talk at the VR

session a couple of weeks ago.

It's actually not the case that I was kicked out

of the graphics lab, but we conceptualize these sorts

of video applications as being increasingly a data management

problem.

So we're seeing a lot of really exciting things come out

of these communities, and they're actually

being delivered to real users.

So we need to think about things like scaling,

being able to work on heterogeneous hardware,

and other aspects that us in the data management community

are really good at solving.

So there's a whole taxonomy of these sorts of VR and AR style

applications out there.

You know, this is kind of a very rough taxonomy

I have on the screen here where we have--

hopefully you guys are familiar with a couple of these types.

I'll just quickly talk about each one

in a little bit of detail.

So here we have a 360 video.

These are videos that are captured

at a fixed point in space, and then

when you go and view that video you can, of course,

adjust your orientation.

But you can't move away from the point in which that video was

captured.

And you can see here I'm using the mouse

to rotate my orientation, but in the real world,

we would have a headset on which would have tracking software

with it that would adjust our orientation automatically.

So these are all over the place, and these are pretty widely

deployed, even on mobile devices and things like that now.

But far more exciting are these things

called light field videos, a really exciting area

at the cutting edge of VR.

And here, it's a little bit difficult to tell,

but you can actually translate around in space.

And so you can see the user just moved

outside of the area that was captured in this light field

video.

Modern light field video cameras can

capture about a cubic meter of information,

which allows for a good amount of translation in space.

And this greatly increases immersion,

as you might imagine.

You can do things like experience parallax

for distant objects.

Mirrors reflect when you move, and you

can see the reflection adjust.

Iridescent things shine.

Super important for immersion and a really exciting area.

On the AR, MR side--

so here's a prototypical example of a mixed reality video where

we mix synthetic video with real world objects

like a table or a couch.

And then finally, here's kind of a Hello World augmented reality

application where we're in a pet store.

We've captured some kitten videos.

We're running some sort of classifier on top of that video

and overlaying bounding boxes.

So you may notice this is, in fact, not an elephant or a dog.

We in the data management community

consider that to be the ML people's problem and not ours.

So you can talk to them about that.

So as you might imagine, developing applications

of a space is truly terrifying.

So 360 videos are an order of magnitude

larger than their 2D Netflix counterpart

because you have to deliver that entire sphere of video

rather than just the part that you're looking at.

Light field video, another order of magnitude beyond that.

That cubic meter of light field camera I mentioned a moment ago

puts off about a half terabyte of video data

per second, which is a formidable challenge

to keep up with.

This leads to programs that are extremely difficult to program

and optimize.

They can only be developed by domain experts who are hand

crafting optimizations.

And perhaps the most concerning thing

is that as new innovations roll off the research pipeline,

shoehorning them into these giant brittle applications

is a substantial software engineering challenge.

So with that background in mind, we've

introduced a system we call LightDB, a data management

platform for these sorts of virtual, augmented, and mixed

reality video applications.

LightDB is a full stack data management

system where you give the system a declarative program.

You tell us what you want in your application.

And we leave it up to LightDB to figure out

an efficient execution plan to realize that intent,

This leads to programs that are much smaller and simpler

to express.

We'll see an example of that in a moment.

And we think it runs faster than everything except the most

expert programs out there.

And so just to motivate this in the couple of minutes

I have left, let's go back to this Hello World

augmented reality application and think about how

we might develop this.

So in today's world what would we do?

We would open up our favorite editor.

We might decide we want to use something

like FFmpeg, which is a popular video processing framework.

And we start writing some code.

And we start writing more code, and more code, and more code.

And this is the reality of these applications today.

And this is a minimal viable example

we're seeing scroll by here.

On the other hand, in LightDB you'd

write something that looks about like this,

well, actually, looks exactly like that.

Where it-- this is almost a one-to-one correspondence

between how we might describe solving the problem

and solving it, where we decode some inputs

from a remote source or from on disk.

We apply some sort of detection algorithm on top of it.

We union the resulting bounding boxes with the original input

video, and then we write it to disk or send it to a client.

Very succinct program, especially

compared to the imperative version.

And LightDB is able to actually efficiently execute this.

So compared to the version you guys see in the left,

is you get about a 3x performance benefit

relative to what we can get out of LightDB.

And you get all that for free by letting LightDB

convert this declarative program into an optimized execution

plan.

So how does LightDB perform that conversion?

Here is kind of a Hello World virtual reality

application I'm going to use to go through that

at a very high level.

And so here what we're doing is we're taking a 360 video,

overlaying a watermark, converting to grayscale,

and then writing to disk.

What LightDB does is it converts this

into a logical execution plan drawn from it's rather

modest set of operators.

And here there's a one-to-one correspondence

between the invocation and the declarative version

and the logical plan, but that's not always the case.

And it does what you'd expect, decode some input videos,

scan the watermark from disk-- it's a little bit hard to see

there--

union them together, transform it to grayscale, and encode it.

And now LightDB is going to take this logical version

and convert-- and explore a space of physical execution

plans and hopefully choose the most efficient one.

And so here's one potential execution plan

it could choose where it moves everything over to a GPU,

decodes everything in a GPU, runs some CUDA kernels,

and then re-encodes.

And that's a reasonable plan.

And that, in fact, this is exactly what FFmpeg does.

On the other hand, LightDB can explore a much richer space

of potential plan, such as this one, which I'm not going

to go over in great detail.

But the idea here is that if this Sharks video has

a temporal index associated with it, which is almost universally

the case, what we can do is we can

take small pieces of that video and shuffle it

to multiple GPUs, and then essentially run

a similar pipeline in parallel where we decode,

we run a CUDA kernel, and we re-encode.

On the other hand, the watermark is super tiny.

It's the same frame extended over an infinite time span.

So what we can do is we can just broadcast that to all the GPUs

and bring those things together.

In fact, we do that at the top were

we can catenate the resulting chunks together.

The performance of this-- so double the GPUs, we actually

get double the performance out of it

by allowing LightDB to explore this space of plans

relative to not using the index or using FFmpeg.

So I only have a few seconds left.

The architecture of LightDB is a rather straightforward data

management system.

I'm just going to highlight a couple of things.

So of course, we know we have this planner that

converts the logical plans to physical execution plans.

We know we have an optimizer that

draws from a rich set of physical operators

that target various hardware, et cetera.

And we have a storage manager that I don't have time

to talk about today that achieves

a considerable compression ratio for stored videos.

So just to summarize--

OK, so this has been LightDB, a data management

system for virtual, augmented, mixed reality videos.

Smaller declarative programs, free optimization,

more efficient execution than the state of the art

programs out there.

Thanks for listening.

DAN SUCIU: The next speaker Cong Yan.

She will tell us why the internet is slow,

and what you can do about it.

CONG YAN: Thanks for the introduction, Dan.

Hi, I'm Cong, and I work with Alvin Cheung.

So today I'm going to talk about designing in-memory data

storage for web applications.

So we use web applications every day.

We read news online and work with other people online.

But don't you hate them when it takes forever

to load, like this?

So this web application is slow, not because of a network.

Network is usually fast.

They are slow because they're allowed the interaction

with the database.

So the web app usually uses three tier architecture.

The front end is usually a web browser that--

it uses an HTTP request to the application server,

the middle tier.

And the back end is a database that

stores the data persistently.

Since the application logic is often

developed using object oriented language like Python or Java,

it often used an object relational mapping framework,

the OIM framework, to generate SQL queries

and translate relational data back to objects.

We performed 12 open source web applications--

we profiled 12 open source applications

to see how well they perform.

So these applications are popular with many Github stars.

Some of them are pretty well known

like GitLab and OpenStreetMap.

So for this applications, even with a small amount of data

less than one gigabyte, over three pages

takes more than two seconds to load.

And for these slow pages, they spend

over 80% on the application server, especially the OIM

framework and also the back end database.

Then we look into why this is slow.

So there are two major causes.

The first is how the queries are written because these RM

frameworks usually provide similar APIs with very

different performance.

For example, here, this is a foreign application

developed using Ruby on Rails.

It wants to show a list of certain stories

and then calculates a count of the stores.

So it first issues a SQL query to retrieve the stories

and then store them in this favorable s.

Then, if the application writes s.size,

the count of the stories is computed

using in-memory objects.

However, if the application writes s.count,

it performs the same thing, but the count

is done by you showing a count query to the database.

So these two APIs have the same functionality,

but the count is less efficient than size because

of this extra query issued.

So these APIs are usually very confusing

and they result in inefficient queries.

The second reason is how the data is stored.

For example, if the app wants to show a list of users

and each containing its stories.

So to answer this query, the back-end stores two tables,

the user table and the story table.

To answer this query it first performs

a join on these two tables.

And then converts this relational result

into nested objects.

So if there are a large number of users and stories,

both the join and the deserialization

can be very slow.

So if we can precompute and restore

this join without in-memory, we save the time to do the join.

And further, if we can store this nested object

theoretically, we save the time to de-serialize.

However these nested objects may not

be optimal for all the queries in the application, for example

a query that select the stories.

So it is challenging to figure out the best storage model

for the whole application.

To solve this challenge we built Chestnut, an in-memory storage

designer to optimize the overall query performance

subject to a memory bound.

Instead of the low level, inefficient interaction

used by today's OIM, Chestnut proposed a new language.

This declarative language is designed

to cleanly and easily express common object queries.

The query result are directly objects

instead of relational data.

Even better, this language can be used to optimize.

It can be used to leverage, to customize in-memory storage.

And the interaction with the database

is more efficient because the read queries can

be answered using this in-memory storage,

while only the write queries go to the back-end database.

This optimization is challenging because you

need to design a new search space and a new search

algorithm.

Chestnut proposed a new search space that includes--

that explores both relational and non-relational storage

options.

So it considers using normalized table and indexes

in the relational world, and the nested objects and the pointers

in the non-relational world.

It devises a new search algorithm

that use bounded verification to find out

the storage for each individual query,

and then formulates into the ILP to find out the sharing of data

structures among queries.

To use Chestnut, a developer simply

needs to provide classes and queries declared

using Chestnut language as well as a memory bound.

And Chestnut will generate C++ code for both the storage

and the queries.

We evaluated Chestnut on three open source applications

originally built with Ruby on Rails,

and used MySQL as a back-end.

These applications include Kandan, a HipChat-like chatting

application, Redmine, GitHub-like project management

application, and Lobsters, A Hackernews-like foreign

application.

For this reapplication-- this figure

shows the average time of these applications.

The query time is composed of the time

to retrieve the data for the query,

and the time to deserialize that data into Ruby objects.

So as we can see from this figure,

Chestnut is able to speed up the query up to 26 sects.

And it's faster in both the query answering

and the deserialization.

And for all of these applications,

it takes less than an hour to find out the best storage.

Next I'll show an example of what

data structures Chestnut is able to find

for an individual query.

So this is a query that shows a list of tags

and then counts the number of stories

written by a particular user for each tag.

To enter this query, the original application

needs to join three tables, the tag table, the mapping

table that says which story has reached tag, and then

the story table.

And then it performs an aggregation and--

performs a group and then an aggregation.

It takes 0.8 seconds to finish this query.

Instead, Chestnut stores only the active tags.

And inside each tag it stores the user ID and the story count

of that user.

So to answer this query it only needs to scan the tags

and then do a binary search on the story

ID to figure out the story count.

And it only takes seven milliseconds to finish.

So to conclude, we show that many web applications

have performance issues due to the mismatch between object

and relational data model.

So we built Chestnut, an in-memory storage designer.

Chestnut has a new declarative language,

and uses a new search algorithm to explore both relational

and non-relational storage options.

And it is able to significantly improve the query performance.

Thanks.

DAN SUCIU: Thank you, Cong.

The next speaker is Maaz Ahmad.

He will tell us how to generate automatically

very difficult programs on distributed data.

MAAZ AHMAD: Thank you, Dan.

Hi everyone.

So I'm Maaz.

I also work with Alvin.

And the problem that I want to talk about today

is-- basically, the high level problem that we want to fix

is that we have all these new data processing frameworks

and DSLs being developed for new hardware or new abstractions,

and we want people to be able to update or adapt

these systems more easily.

In specific, I'm going to be talking about Casper, which

is a tool for generating MapReduce applications

from sequential Java implementations.

So the first question is, why do we even

want to do this sort of translation?

So imagine if you have a sequential application

or legacy application that exists,

and you use this application to do some data processing,

maybe build some visualizations.

Now as the amount of data increases,

that application might become too slow or might stop working.

Of course, you can scale your application

by running it in a parallel and distributed setting.

The good news is the database community

has built a lot of tools that can run your applications

in this struserberg setting.

The problem is, for your sequential application

to leverage these optimizations, it

must be rewritten using the framework's provided API.

So in order to use these frameworks,

you then have to rewrite your applications.

The first option, of course, is that you could manually

sit down and rewrite all of your code.

This is, of course, time consuming.

It's tedious.

It requires expertise not only to understand the input code

but also the target frameworks that you want to use.

And of course, you could introduce bugs into your system

when you do this sort of translation.

So what we want to do is we want to just completely automate

this process by building a compiler that

does this translation for you.

Why is it difficult to build compilers in this manner?

So traditionally, whenever we're building compilers,

we use syntax directed rules.

What this means is the compiler will scan the input code

looking for code patterns.

For example, here's a code pattern that might look for.

And every time it finds a code pattern that

syntactically matches this--

a good parent that matches syntactically this parent

that you have, it will just simply rewrite

it using some operators from the target language.

So for example, in Spark, it will use filter and the union

operators.

For good fragments that are simple, it's easy.

However, as the data processing algorithms get really, really

large and they get more complex, the set

of rules that you need to do the translation become unobvious

and in fact reasoning about these rules

becomes almost impossible.

So the reason we believe It's hard to use re-write rules

to do this translation, is that the code that you

want to generate, the specifications for that code

are provided to you in terms of legacy code, which

is written in low-level, messy languages that

are very complex.

What if, instead of the specifications

were provided in this low-level language, what

if they were provided in a cleaner, high-level simpler

language?

For example, if the specification for the programs

provided in a functional language

that just had map and reduce of primitives.

Now generating the Spark code or Hadoop

or Flink code from this specification

is much, much easier.

However, we don't have the specification in that cleaner

form.

So essentially, what we need is a way

to convert the legacy programs and extract the specifications

out of them.

And the way we want to do this is by using program synthesis.

So a quick primer on what program synthesis is, so

if you have some piece of code and you

want to use program synthesis to do to the translation, the idea

is to consider the space of all possible MapReduce programs.

So say this shape represents all possible programs

or specifications that you can write

using MapReduce primitives.

And within this space maybe there

is a few programs that actually produce the same outputs given

the same inputs for all inputs.

In program synthesis, we simply search for these programs

that have the same outputs.

If you can find these programs, and if he

can verify that for all inputs they produce the same output,

we can essentially treat those programs

as a translation of the input code.

So the big question with this sort of approach is,

how can we make this scale?

Of course, the size of the search space that you are

considering is extremely large.

So how can you actually do this in a reasonable amount of time?

So I'm just going to show some quick high level

ideas for how you might make the search manageable.

The first and probably the most important idea

is to design, very carefully, an API for expressing

the specifications.

Since we're doing the search, you

can imagine doing the search directly

in the target framework's API.

So for example, if you to generate Spark code,

you could synthesize the program or search for the program

written in that API.

However, those APIs were not designed

with synthesis in mind.

So for example, Spark has over 80 high-level operators,

and searching in them is very expensive.

In this instance, for example, we

were able to design an API that could

capture the same semantics using only three operators.

And that reduces the search space significantly.

Secondly, you want to use some static program analysis.

What essentially this means is you look at the program code

automatically, and you try to generate heuristics about it.

So you might specialize the search

by saying that if the input type of the program

is a list of integers, you don't want

to consider any MapReduce program that

operates on a different type.

Similarly, you might want to specialize a search

or like bias a search by saying that only search for programs

or search for those programs first that

use the same operators like Edition.

Third, you can use incremental search.

And the idea here is to, instead of searching

for the entire space at the same time, you break this space down

and you search incrementally.

And this becomes really powerful when you

introduce cost-based pruning.

And the idea here is that you order these subspaces

by the cost of the programs that they generate.

So you can then search for more efficient programs first.

And if you can find one of those,

you can just prune away the rest of the search space.

So this idea or this technique that I've explained so far,

we actually implemented this in a tool called Casper.

Casper takes as input unannotated

Java sequential code and generates--

and is able to generate code in three MapReduced frameworks,

Spark, Hadoop, and Flink.

For evaluation, we accumulated a bunch of benchmarks, about 55,

from prior works and open source implementations

of different algorithms.

These include common statistical and mathematical functions,

as well as big data workloads that are popular.

Within these 55 benchmarks, about 100 code fragments

were found that were doing data processing.

And from those 100, about 82 Casper

was able to translate completely automatically.

The ones that failed were either because it was taking too long

to search or because the API that we had

was not expressive enough.

So the first evaluation that we did

was, of course, to compare with a rule-based compiler.

This is a prior work compiler called MOLD.

On the x-axis, as you can see, a subset

of the benchmarks that we've picked.

And on the y-axis you see the improvement

after compiling the code using Casper or the MOLD compiler.

The first thing you'll notice is that Casper,

which is in yellow, can translate

way more benchmarks than the rule-based compiler can.

This is not very surprising.

What's more interesting is that even for the benchmarks that

MOLD can compile, Casper finds more efficient implementations.

However, the ultimate sort of benchmark that we want to test

is against a human.

So how does Casper compare against a human?

We hired online developers through a freelancing platform.

We had them manually rewrite these applications.

And then we compared the performance

of the handwritten implementations

versus what we generated.

As you can see, in most cases the performance

was extremely competitive.

There were a few cases like the 3D histogram

where the user or the manual developer

exploited some domain specific knowledge to optimize

the program better than what Casper could do.

It takes Casper about 10 minutes on average

to translate one code fragment.

And the median time is even lower.

So for really simple programs, it can actually translate them

really, really fast.

And this does not count any of the overhead involved

in hiring these developers and making sure

that they do the work on time.

So the key takeaways are, you can actually

use compilers to do this sort of high-level transformations.

And with the speedup of about 16x,

Casper is even competitive with hand-written translations.

So here's a link if you want to read the paper or use the demo.

I'll take your questions at the end.

Thank you for listening.

DAN SUCIU: Thanks, Maaz.

The next speaker is Jennifer Ortiz.

She looks at the very difficult question,

how to convert from the what to how using deep learning.

JENNIFER ORTIZ: Thanks, Dan.

So today I'll be presenting a project called DeepQuery,

where we're learning subquery representations

for query optimization.

And this is joint work with my advisor Magda Ballazinska

Johannes Gehrke, and Sathiya Keerthi.

So generally, whenever we have questions about our data

we rely on our database systems to help answer these questions.

And these systems help us store, maintain, and manage our data.

But the setup of systems are generally

constrained by allocated resources.

And with this limitation, the database system

must come up with what we call an optimal query plan.

And you can think of this query plan

as essentially a program that is able to efficiently fetch data,

run computations on the data, before providing

the final result.

So just as a quick example, say we have,

for example, three relations, the Customers, Orders,

and Regions table.

We have this query where we, say,

we want to fetch all the customers

from Arizona that have orders within the last 10 years.

Now, to run this type of query, we

would need to join across all of these three relations.

And when the optimizer looks at this query plan,

it needs to consider, well, in what order should I actually

be running this join?

For example, we can first join the Customers and Orders table,

which will get us some intermediate result,

and follow that with a join with the Regions table.

Or we could first join the Customers and Regions table,

which could give us a smaller intermediate result,

and then follow that with a join with the Orders table.

As you can imagine, depending on your query or the number

of relations that you have in your data set,

you can have really complex query plans,

which makes it even harder for the optimizer

to come up with an efficient plan.

And essentially, the idea of query optimization

has been a core problem in the database community

for several years.

And this is especially hard because these optimizers

have to come up with these good plans with really

limited understanding about the underlying data.

And these plans need to be efficient with respect

to the resource consumption and also the runtime.

And essentially-- this problem essentially

boils down to what we call the Cardinality Estimation

Problem, where the cardinality estimation is

the process of estimating the number of rows

that are returned by a query.

And this is essential for producing

these optimal join orders.

And, unfortunately, because the optimizer needs to be efficient

it makes really simplifying assumptions about the data.

So for example, if we have this query where

we're joining across all these three relations

and we're filtering the Customers and Regions table,

it might make some assumptions about the correlations

of these columns in these relations, which

results in some inaccurate cardinality estimation for some

of the intermediate results, which then provides us

with a suboptimal query plan.

So there must be some other approach

that we can use to solve this problem.

So I likely don't need to motivate why deep learning has

been useful, but we've seen how it's been successful

in various applications such as image processing and also

natural language processing.

So in this work in particular, we

want to look at, well, what can deep learning do

but in the context of data management.

So our vision in this work is to say,

can we rethink about query optimization

but in the context of deep learning?

So say we have as input some data set and some query that we

want to run, can we use a model to describe

different properties of the query?

For example, can we have the model give us an optimal query

plan, describe the resource consumption of the query,

or estimate the query's cardinality?

Now, as a first step in this project,

we're just focusing on estimating

the cardinality of the query.

And one thing that we want to consider

is, well, how do we encode our inputs?

How can we encode the data and the query?

So for these models, essentially, the input

is this-- you can think of it as a long vector where

we can encode information about our inputs.

In this case we have our data in our query.

One approach to encode the data would

be to provide the model with really basic statistics

about the data.

For example, we can provide the model

with simple one dimensional histograms

across some of the columns that exist in our data.

And now for the query, one way we

can encode this would be to provide

the model with all possible--

some possible join predicates or possible selections that

could exist on this data set.

Now the problem with this approach

is that these vectors need to be really

long to encode all possible queries that we

could write on this data set.

So essentially what we need is a model

that will give us this ability to encode all possible queries

that we can run on this data.

So the intuition behind our approach

is to, instead, view this query plan

as a sequence of operations.

So for example, we can first filter the Customers relation

followed by a filter with the Region,

and then combine this to do a join, and so on.

And we can iterate through all the operations

until we've completed the query plan.

So essentially what we want to do

is to learn what we call these subquery representations where

we still want to use deep learning,

but we want to use it to describe specific properties

of these intermediate results.

So just as a really quick example,

say we have this query where we're joining tables a and b,

and we have two operations.

We have a join and a selection.

So the idea is that we can start with an encoding that

shows basically a representation over our data set

and one of the operations, in this case a selection.

Now given these inputs, we can use a deep learning model

to come up with a representation of the following intermediate

results.

So in this case, we applied a filter

and now we have some encoding of this subquery.

Now from this representation we can

extract information such as the distribution of the data

at that subquery or even the cardinality.

Now given this representation we can chain another operation,

in this case a join, and still use our deep learning function

to come up with a subsequent representation

of that subquery.

So essentially what we're learning is this risk recursive

function that takes us input some encoding

or some subquery representation along with a query operation

to come up with the representation

of the following result. But just to give you

a sense of what these models can do, we wanted to experiment

and see how well these models are

able to estimate the cardinalities compared

to a commercial database engine.

And for these experiments we use the IMDB data set,

which has some interesting correlations

across these columns.

So here, for example, in this graph,

we're showing the percentage error

in terms of cardinality on the y-axis.

And on the x-axis we're showing the database system

compared to the neural network.

For these queries, we only varied the selection predicate

for one of the columns on one of the relations.

So you can see that the database system generally

does pretty well, but our neural network is

able to get slightly more accurate cardinality estimation

results.

Now if we make this problem a little bit harder where we're

now selecting across several more of these columns,

in this case, we actually need to have the model learn

about the distribution and correlations

across these columns, it's harder for the network

and also for the database system.

But in the cases now where we're starting to chain more

of these representations together, for example,

in this case we are applying selections

on two different tables and also tying that with a join,

it becomes a lot harder for the system

and also for the network itself.

So what we're experimenting now is

thinking about what it actually means to do--

actually, to improve these results,

we want to see what it means to chain

and tie these representations together along

with these complex query operations.

So just to conclude, we've talked

about why cardinality estimation is a difficult problem

and how we should start looking at other new approaches.

And so in this work we propose this model

of learning these subquery representations

through a recursive function by using one of the deep learning

networks.

DAN SUCIU: Thanks, Jennifer.

So the next talk is by Babak Salimi.

He is in Vancouver.

He's waiting for his Visa.

He sent us a video of his talk.

He also has a cool demo.

It's about how to understand when your queries are not

returning what you thinking you are there returning,

and how to fix them.

BABAK SALIMI: Hi, everyone.

I'm Babak.

Today I'll be talking about bias in the context of decision

support SQL queries.

Decision support SQL queries are used today by knowledge workers

to make better and faster decisions.

However, inexperienced workers can easily

write SQL queries that are biased for decision making,

unless they're trained as statisticians, which

is typically not the case.

As we will see throughout this talk,

biased SQL queries can lead to wrong business decisions.

Let's go through a multi-weighting example.

Suppose a company has many business travels from four

particular airports and would like

to choose between business travel programs offered

by either American or United Airline,

depending on which one has a better performance in terms

of on time flight.

To find out, the knowledge worker

does some simple data analysis and writes

a SQL query that computes the average delay once for American

and once for United Airline.

The bar diagram on the left shows the result of this query.

You may acknowledge that this scenario is repeated over

and over in industry today.

Users write declarative queries, explore the results,

and make decisions based on the insights obtained

from these results.

In our example, the knowledge worker looks at the bar

and observed that American looks significantly better,

so she decides to contract with American.

However, any trained statisticians

would recognize that to make decisions regarding

the performance of the two airlines,

one needs to look into potential confounding

factors such as how frequently these airlines operate

at different airports.

Simply because one airline may have several flights

from an airport which has a high rate of weather-related flight

delays.

This clearly makes the comparison

between the two airlines with that SQL query

biased and unfair.

This is actually the case in our example.

Once we break down the delay by each airport,

it turns out that in each of the airports

it is actually United Airlines that has a better performance.

This trend reversal is known as Simpson's paradox in statistics

and happens because of overlooking the confounding

variables.

In this case, what the company really wants

is the causal effect of choosing American or United Airlines

on the delay of its travelers.

But the simple SQL query fails to answer that question

because it is biased.

Similar to the other projects that we have seen in this talk

so far, we leverage the declarative nature of SQL

and perform this complex causal analysis automatically

on top of the structure of the query.

Specifically, we propose HypDB, the first database

system which detects, explains, and removes bias

from SQL queries.

Instead of discussing the technical contribution,

I will demonstrate HypDB with two examples.

OK, so HypDB accepts as input a SQL group by query

and assumes that the query is being

used for making decisions.

Here with the simple group by query,

the goal is to find out the effect

of choosing one of the two carriers or airlines

on flight delays.

As we have discussed, the answers to this query,

they suggested American Airline performed significantly better.

However, HypDB takes advantage of the declarative nature

of SQL and performs some deep analysis on the SQL query

and automatically detects confounding factors

that are detected today only by trained statisticians.

These confounding factors make the query

biased for decision making.

Specifically, first HypDB warns the user

that they're grouping by some of the confounding factors, which

radically changes the insight obtained by the original SQL

query.

As you see in this case, HypDB automatically

identified origin airport as a confounding factor,

such that further grouping by origin

totally reverses the trend obtained by the original query.

The next step is to remove the bias from query.

HypDB does this by rewriting the query

to control for the confounding variables.

The query shown right here in this box

is the rewritten query associated to the group

by query we started with.

Please refer to the paper for more details

about this query rewriting, but for the moment note

that under certain assumptions the insight obtained

from the answer to this rewritten query

are unbiased and support decision making.

The bar diagram here shows the answers

to the rewritten query right here on the left.

The answers reveal that it is actually

United Airline which performs better than American Airline.

So there is no Simpson's Paradox anymore.

Finally, HypDB generates two kinds of explanations

for the biased query.

We argue that these explanations are crucial for decision making

and reveal illuminating insight about the domain and the data

collection process.

HypDB generates coarse grain explanations

by ranking the detected confounding factors

in terms of their responsibility for making the query biased.

In this case, as you observe here,

origin airport has the highest responsibility.

And the fine grain explanation generated by HypDB TB

is essentially a ranking system which

derails down into a particular confounding factor

and explain how the interaction of the ground

levels of the attributes involved in a SQL query

contribute to the bias.

In this case, the top floor of fine grain explanations

for origin airport indicate that United Airline frequently

flies from airports such as Rochester airport

that has a lot of weather-related flight delay.

Whereas American Airline frequently

flies from airports such as McAllen Miller,

that has fewer delay.

And this simply explains why the initial SQL

query that we started with was biased

toward American Airlines.

OK, for the second example I'm going

to use the famous adult income data set from the UCI Machine

Learning Repository.

Actually using this data set, several prior works

on discrimination discovery and fairness

have reported gender discrimination

in favor of males.

To replicate these experiments, let's use

HypDB to compute the effect of gender

on income with this sample group by query, which essentially

computes the average of males and females with high income.

As you see right here the results of this SQL query,

indeed, suggest a strong disparity with respect

to females' income.

However, not surprisingly, HypDB detects

that this query is biased and identifies

attributes such as marital status

as confounding variables.

To remove the bias from the initial SQL query,

HypDB rewrites the query to control for the confounding

variables.

Here you see the routine query associated with the net one

that you started with.

In this bar diagram you see the answers to this routine query.

As you observe the routine query answers,

they suggest that the disparity between males and females

is not nearly as drastic as suggested by the naive SQL

query.

To see what's going on here, let's check out

the explanations generated by HypDB.

the coarse grained explanation, they

showed that marital status accounted for most of the bias,

followed by the occupation.

Let's take a deeper look into marital status

and see why it makes the query biased.

The top four fine grained explanations

reveal a surprising fact.

They say there are more married males

in adult data than married females,

and marriage has a strong positive association

with high income.

To understand why this is actually

the case in adult data, we check the provenance of this data

set, and it turns out that the adult income attribute

in adult data--

it reports the adjusted gross income

as indicated in the individual's tax forms,

which depends on filing status.

It could be actually household income.

Therefore adult data is essentially inconsistent.

And should not be used for investigating

gender discrimination.

With this I will conclude.

We have shown that SQL queries can be biased and misleading.

We've proposed HypDB as a system to detect, explain, or resolve

bias from SQL queries.

We've shown that HypDB is useful for making

causal analysis accessible for nonstatisticians,

avoiding false discoveries, and detecting

errors in data collection.

Thank you for listening, and I hope

to see you soon in Seattle.

DAN SUCIU: And I thank Babak.

He's online watching and he can take questions at the end.

The last talk is by Shumo Chu, who's

going to tell us how to check if two SQL queries are equivalent,

a fundamental task in grid optimization.

SHUMO CHU: Hello everyone.

My name is Shumo, and today I'm going

to talk about automated reasoning of database queries.

And this is joint work with a few folks from our Database

Group and PL Group.

So first I will show you a figure.

So this is a survey by Stack Overflow

that shows language popularity.

Actually it tells you JavaScript is the best programming

language in the world, while SQL is the second.

And so is PHP is far behind.

So talking about the actual stuff,

I mean SQL is really a popular language that's

supported by all the relational database systems

and now supported by almost all the big data systems.

While SQL is great, because this is actually

a restricted abstraction, enabling

powerful optimizations.

The database community spent almost like more than 30 years

to develop many powerful optimizations

based on the semantic equivalent of SQL rewrites.

The problem here is that we are really

lacking tools that can actually reason about SQL equivalence.

So here I will use a self-driving car analogy.

It's really embarrassing that we have

self-driving car right now, we don't have a automated solver

for SQL.

And what is a automated solver for SQL?

It means that for any possible input can

we actually check whether those two SQL queries are

semantically equivalent.

And this has many applications.

For example, it can be used to verify

the correctness of a query rewrite

to make your query optimizer more reliable.

It can also be used to build a semantic caching

layer for big data systems.

And what's more, it can be used for automated grading of SQL

assignment to SCALES' MOOC.

Well apparently this is a very challenging problem.

First, from a theoretical result 50 years ago deciding

two relational queries are equivalent are actually

undecidable.

In addition, if you think about SQL,

you might think just select from where,

but actually SQL has rich language features.

So you have aggregation and grouping.

You have index and integrity constraints,

and you can write like correlated subqueries

like exist.

So how can we solve this problem?

Well, we have two lights we can't shed on.

So from a gogus result, while a problem is undecidable,

it doesn't mean there is no proof.

And in fact, you can use an interactive theorem

prover that--

you can use it to validate mechanized proofs.

And second observation we can find

is that the model of inequivalent SQL queries

are usually not very large.

And in fact this is known to the formal massive community.

And this partially explains why the constraint solver nowadays

are extremely fast.

So we can use constraint solver to model checking SQL.

So based on these two observations

we built Cosette, the first automated solver for SQL,

by combining interactive theorem proving and constraint solving.

While it takes me almost three years to build this tool,

it can be concluded in these simple slides.

So for a given pair of SQL queries, we did two things.

First, we compiled the SQL queries

to propositions that can be checked

by the interactive theorem prover.

And then we developed a proof search, or automated proof

generation procedure inside of the theorem prover

to try to find a mechanized proof for these equivalences.

And secondly, we compiled these SQL queries

to constraint solver and built a model checker

to check in order to find counterexamples

to inventing these SQL queries.

Without actually showing the code,

I will actually show you a demo.

So this is the tool that we built for checking equivalents

of SQL queries.

So you can see you can specify a schema for the table.

And then you basically right two SQL queries.

While you can see the first SQL query

joins the employee and payroll using the employee ID.

Well, the second query here we do kind of similar stuff,

but there is another join.

And there is two employee table.

So I mean I know it's really tricky to say whether--

it is really tricky to reason about whether it is equivalent.

So that's why we need our tool.

The solving takes some time, but this is really

the formal method researcher's fault.

So you can see that this two SQL query indeed equivalent.

It's hard to explain exactly why,

but intuitively it's that there is

a join in the second query that's kind of redundant.

So let's show you another example.

So in this example, similarly, you

can see there are two SQL queries.

It's kind of like a super lasting because there is join,

there is group by, and there is subqueries.

So whether these two SQL queries are equivalent.

Well it actually not, and returns a counter example.

If you actually ran this two SQL query

using this counter example, you will find exactly why.

But to give you a short story, this is actually--

people actually installed this two SQL query equivalent

and they published a paper in the top database journal

in 1982.

And after three years people find

this is actually incorrect.

And of course they published another paper to say,

this is incorrect.

But the high level idea is that the second career actually

ignores the extremely colored case when the group is empty.

So it takes three years for the database's researcher

to find this, but it takes our tool less than 10 seconds.

To conclude, I show you that SQL is the best programming

language next to JavaScript, and we

built Cosette, the first practical SQL

server based on the integration of interactive serum proving

and constraint solving techniques.

And I would say automated reasoning brought

by the integration of formal methods

and domain specific semantics, will

lead two more reliable and more optimized

future database systems.

DAN SUCIU: OK.

So let's thank Shumo.

And I would like to ask all the five

speakers to come to the front, and we have

like two minutes for questions.

So any questions?

Yes, please.

AUDIENCE: I had a question for Cong.

Really cool talk.

I'm curious, you mentioned that only rights end up

having to go to the database for a web application.

I know some web applications, multiple people

may be writing it at once.

Is there some easy mechanism for knowing when somebody else has

done something?

Or is that sort of out of scope here?

CONG YAN: Yeah, so basically the write

query both updates the in-memory storage

and the back-end database.

So the back-end database has a lot

of mechanics to handle concurrent write basically

using transactions.

And similarly like in our model, even

though I haven't implemented it yet,

we can use similar algorithms to use in-memory transaction

processing to make sure the update on the all the data

structures are automatic.

So when different people are doing different writes

on different data structures, I make

sure that they're not interweaving all of them.

DAN SUCIU: Yes, one more?

AUDIENCE: I have a question for Brandon.

So you have-- there's this--

you were talking about all these new methods

for capturing video in different ways from 360 or these cubes.

And I was wondering, are the like standards

for how to store--

the exact file formats, are they standardized at this point?

Are they changing?

Is your tool like designed to change with file formats?

Or is it pretty specific to one type?

BRANDON HAYNES: Right.

So that's a really good question.

So for anybody that didn't hear.

So the comment was that there's many, many formats

and projections, and all sorts of different VR and AR things

out there.

There's a giant zoo.

And are there standards?

Or how quickly is that changing?

And how do we handle that?

So when you run a SQL query you don't think about

whether your relation is stored as a B-tree, or as a heap,

or a flat file.

You let the database engine figure out how to manage it.

And so we do the same thing in LightDB.

So there is, as you suggested, a very large set

of formats and video codecs and for end

and 360 videos versus live fields,

and all sorts of ways to store these data.

And they're constantly evolving.

And some are more efficient for some types

of queries than others.

And we do our best a, to abstract

that so the user doesn't ever have to think about it.

So you don't worry about whether you're video is H264 encoded.

You just load it from the catalog.

And we'll actually make modifications as necessary

to minimize the storage footprint,

if you store it later on.

And if you run subsequent queries

it may run faster with those conversions.

So we try to pay attention to that.

I mean, of course, we don't at this time

cover every possible video codec, for example.

But the idea is that we could extend

that to support whatever is out there, if there's

a user demand for it.

It's a really good question.

DAN SUCIU: OK, so I think this is all the time we have.

So let's thank the speakers again.

And thanks, everyone, for coming.

For more infomation >> UW Allen School Collquium: Research in Data Management - Duration: 55:40.

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

UW Allen School Colloquium: UW Reality Lab - Duration: 47:01.

BRIAN CURLESS: Welcome, everybody,

so-- to our next installment of the CSe fall colloquium

where we're bringing to you research talks from groups

across the department.

So today the UW Reality Lab gets to own the colloquium.

So what is the reality lab?

We just launched this year, in January,

with a focus on doing research and teaching

in augmented and virtual reality.

We have a web page.

We exist.

So, basically, the goals of the lab

are to create the technologies to power the future of AR

and VR to do the things that are beyond what the companies are

doing for maybe the shorter term bottom lines to do the longer

range research for this, and to educate

the future researchers, who are going to be faculty, basically,

doing research and teaching AR and VR,

as well as developers who are going to go out

into industry to a lot of these companies

and creators for making, sort of, artistic products that

will fit into AR and VR.

So we're currently funded by Facebook, Google, and Huawei.

So this is an industry-funded effort.

It makes a lot of sense to do this in Seattle.

We're kind of-- I hate to use this word--

the epicenter of AR and VR.

With Facebook has Oculus, but Oculus research,

now Facebook Reality Labs--

coincidentally, we got there first with the name,

by the way--

is in Redmond.

Google has a major presence in AR and VR in Seattle.

Hewie has a research group in Bellevue

with-- doing a lot of work in the kind of AR,

VR space for mobile, in particular.

But, also, Microsoft HoloLens was done here.

Valve Vive was done here in the Seattle area.

Magic Leap has a big presence here.

Anyway, this is really a great place

to be doing this kind of research.

So the leadership of the lab is myself, Professor Ira

Kemmelmacher, and Professor Steve Seitz.

So we're the co-directors of this lab.

We, also, have our core members, Barbara Mones, is--

she's been leading the effort for animation production

for years, and now she is the director

of the reality studio-- bringing that kind of storytelling

into VR.

And it's a great challenge and she's

producing already exciting films in this space.

And our director of research in education

is our very own Aditya Sankar, who may or may not be here.

Anyway, so Aditya is leading a-- particularly,

a lot of the efforts for undergrad education

and research.

And our program manager is David Kessler,

who is also the general manager for-- so he kind of keeps

everything working for the lab.

And he's also the general manager for the Ig--

Ig Nobels, which is kind of-- anyway,

you should check that out if you haven't already, it's

kind of, you know, sort of Nobels for interesting research

that is kind of off the beaten track, often very humorous.

We, also, have an advisory board from all of the companies--

really, luminaries in the fields of computer graphics, vision,

virtual reality.

We're doing a lot of research.

We're rolling out courses at Capstone that Aditya is

teaching right now is ongoing.

Barbara's Reality Studio, creating films

in virtual reality.

We have a lecture series.

You're probably getting a lot of e-mails about that.

But we can bring in really world-class thinkers,

researchers, visionaries, to come teach us

all about what's going on in AR and VR

and what the future looks like.

And, finally, an incubator for undergrads

to kind of go beyond a class and develop

ideas that could be-- it can be prototyped and put out

in the wild, released through Steam and so on.

So, finally, getting to the research,

we actually are funding research with a bunch of groups, not

just our own group.

So we had a call for proposals, and 20 proposals

came into the lab for research.

And we've managed to fund 15 of them.

14 different faculty are currently funded students.

So their students are currently funded to do research

for the reality lab.

And the board, basically, helped make

us-- helped us to make those decisions.

So, today, you're going to see six different projects

from a variety of different groups.

Some of them were kind of foundational projects

that, basically, raised our profile

and helped establish the reality lab

and got the sponsors excited about what we were doing.

And some of them are stuff that was just funded in March,

basically, is when we launched the funding process.

And you'll get to hear kind of the latest,

greatest from a bunch of CSC postdocs and students,

and one EE student, as well.

That EE student is up right now.

ELYAS BAYATI: Hello, everyone.

My name is Elyas Bayati.

I'm a PhD student from EC department

and Arco [INAUDIBLE] Lab.

Today, we proposed to design the next generation of visors,

which can open a new window to optical advancements

in this field.

Near-eye visors are one of the most vital component

of head mounted displays, as we can see.

And people were designing these near-eye visors use free

from optics and waveguide-based optics.

However, as you can see, these structures

are bulky, complex, heavy, and even their field of view

is limited when we place them close to eye.

And this came from this fact that people

relies on geometric reflections and refraction problem.

So to bend the light and-- too close to eyes.

So what you want to do is we want to make this AR

visors smaller, lighter, and if you

want to make them close to eye, you still

want to have large field of view, like in ordinary glasses.

So we develop a new type of visors, which combination

of reflective visors and waveguide-based [INAUDIBLE],,

and visors which use the nano-scatterers.

So these nano-scatterers are cylinders,

as you can see, between the dimension of 100 times thinner

than human hair.

So we can change their diameter, thickness, and even

their periodicity in a square lattice.

Their material is silicone, which is like glass,

we can see through them, and they are transparent.

And we can change their diameter.

So we can get the different phase and amplitude response.

So using this technique, we can convert any optical freeform

shape, or any phase distribution,

to the group of nano-scatterers, as you can see,

in a-- like a flat surface.

We call these flat surfaces metasurfaces.

As you can see, they are really small

and we can fabricate them.

So, usually, we fabricate them in the smaller size.

But, similarly, we could fabricate them

in large area and larger scale.

As you can see, their size is compatible with our hands.

So we can fabricate them for AR glasses

or even for ordinary glasses.

So last year we develop first metasurface-based visors.

Using metasurface, we could never get light from display

to eye with a large bending angle.

So these features help us to get larger field of view.

So the field of view that they could get

is comparable with HoloLens One or Magic Leap One,

is like current famous AR visors.

So we could get around 77 degrees by simulations.

We designed these wave visors by numerical simulations

and reality simulations.

This is the phase value, or phase max,

that we could get it--

this visor.

And that-- using the same technology,

we can convert them to the group of nano-scatterers.

So the problem that we get with this visors

is the see-through quality.

Because we use just one single metasurface,

the see-through quality that we get is not that good.

So, currently, people use another prism

to solve the see-through quality problem.

We want to able to view the environment

as we would with the regular protective goggles.

So this requires imaging raised comes from infinity to our eye

without any distortion and [INAUDIBLE] or power loss.

We kind of use a similar idea to solve the see-through quality

problem.

We use another metasurface to correct any distortion caused

by first metasurface.

So when I say metasurface, I mean, group of nano-scatterers

that I mentioned before.

So we proposed a stack of metasurface

to solve this problem.

And for designing the phase of the second metasurface,

we used the same idea, numerical simulation,

and ray optic simulation and optimization

to get the better see-through quality.

As you can see here, this is the phase of second metasurface.

For comparison, we do the simulations

with wavefront error.

So we used wavefront error because we

can see how much our imaging ray is

different from ideal case, which is-- here

is a parallel case, as you can see.

The RMS data we could get for metasurface was--

is around three times of the current visors, which

is not that bad, but we are currently working on it.

And as it is-- an ideal imaging Res system is around quarter

of [INAUDIBLE], which is--

I mean, we are trying to get it better.

But, currently, we are working to optimizing this phase.

However, what-- all we have done is a single color.

So one of the longest standing problem,

which refractive offtake of metasurface has,

is chromatic aberration problem.

So-- which is famous with rainbow effect.

It means that optics behave differently

for different colors.

So here I bring an example for you.

We use metasurface lens to do the imaging for this image.

As you can see, we got different focus for different colors.

We have the same problem with AR visors using metasurface.

As you can see, the design AR visors for green light and--

the visors bend light differently for red and blue.

So, fortunately, there are some solutions

for that in metasurface field.

One of them is dispersion engineering.

It means that we can change the diameter

of these nano-scatterers in a way

to get the kind of similar phase profile,

or desired phase profile, for different colors--

red, green, and blue.

So we want to use this idea as a future work for our AR visors.

So if you use this sim--

dispersion engineering, we can bend light

in a similar fashion for three different wavelengths.

However, this is not our ideal case.

We want to do the full color operation and broadband.

So-- because for this-- if you use the dispersion engineering,

our display should work just for three discrete wavelength.

So, recently, our group demonstrated

the first full color imaging using

metasurface and combination of that we accomplish on imaging.

The idea was this--

instead of using the lens to focus in a single plane views,

type of metasurface lens which focus along optical axis.

And we do that for three different colors

and find the same overlap for different colors,

and do the computational imaging and reconstruction convolution.

So as you can see, the result is kind of better,

and we kind of solved the aberration problem

for metasurface.

We're going to use the same idea for AR visors in the future.

And this is our future work.

That concludes my talk, and I would be happy

if I answer any question.

The time was limited so--

thanks.

EDWARD ZHANG: Right.

Hi, everyone.

I'm Edward, and I'm going to talk to you about the work

that we presented at SIGGRAPH Asia almost two years ago.

And it's called emptying, refurnishing and relighting

indoor spaces.

The idea with this work--

I'm just going to set up like a theoretical example.

Let's say you wanted to rent an apartment.

So, usually, what you do is you would go visit it,

and it would probably be filled with its current tenant's

furniture.

But the point of you visiting isn't

to see what the current tenant's,

you know, bed looks like.

It's-- you know, you want to be there to imagine what it would

be like for you to live there.

So, you know, you have your desk in the corner,

your Mona Lisa on the wall, your shelf in the corner.

You might want to say, OK, if I change the decor, or would--

how would it look?

Or, you know, you're visiting in the morning but, you know,

it's got a west-facing window.

How would it look in the evening?

So, more concretely, what we want to do

is, say, take an image, or several images, of a scene.

So this image over here.

And then be able to make modifications

to it for the purpose of visualizing what would it

be like for you to physically, actually move this bed out

and put in your couch over there.

So how do you do this?

So your first thought might be, OK, I've

heard of this tool called Photoshop.

It's got this great content to where it fills stuff.

I can download some images of furniture from Google.

So that's what this poor misguided real estate

agent did.

This is pulled from some-- like BuzzFeed list

of 20 worst real estate photos.

Anyway, so you can tell there--

so what happened here is this is like an empty house

and they decided, oh, you know, we

want to make it look more attractive

so we're going to Photoshop stuff in.

And it doesn't look realistic at all.

So, in contrast, we want really visual realism

in the scene edits.

So like the reason is-- you know, it's pretty obvious.

The whole point of this kind of application

is for aesthetic evaluation of, you know,

what it would be like for you to live there.

And so if you want to think about what is it

that makes this Photoshop unrealistic

compared with good scene editing.

And to answer that question, we have

to think about for realism, it's really about,

as I said before, it--

if you actually physically made the changes to the room,

what would it look like?

And so that kind of points to, you know, how do we physically

see things?

So brief overview, you know, you're

going to have a light emitter, because we're

talking about light rays.

So the light emitter has some color, some intensity.

It's going to shoot out some light rays.

All those light rays are going to bounce off of an object.

They might get scattered by other objects.

And, finally, those light rays will hit your eye.

So with that very brief description,

we can kind of identify four elements

that are important for the physical reason why

you perceive things.

The first one is the light emitter properties itself.

So where does the light come from?

What directions is it going?

How bright is it?

What colors?

There is the 3D geometry.

So where do these light rays bounce off of surfaces?

Where are the surfaces?

One really important one is the materials.

What are the surface scattering problem--

properties of the surfaces that they hit?

So, you know, when a light-- when a photon hits an object,

it will get absorbed, and then probably re-emitted,

maybe at a different wavelength, in some particular direction.

And then, finally, there's the properties of the viewer.

Where is the viewer?

What light rays do they perceive to make up

the images that we're going to be producing?

How sensitive are they to particular wavelengths,

and so on.

So with these four elements in mind,

I can talk a little bit about how this works.

The first thing that happens is that we

take an RGBD scan of the room.

So this is a Google Tango sensor.

And then from that we perform a bit

of processing to get this whole 3D model of the room.

So this has the phi geometry of the entire room and, also,

the appearance of the room in high dynamic range.

And this is really important, because in a single camera

image, if you took a picture of outside the window,

either the window would be blown out

or, you know, the area under your desk

would be completely dark and you couldn't see anything.

So you really need this high dynamic range.

From this model, then we can do some simple geometric

processing to get semantic scene geometry.

So what does the empty room look like?

Where are the walls or ceiling?

Where is the window?

And where are the doors?

And then, finally, we also care about the materials,

as I mentioned before, and the light emitters.

So I won't go into too much detail about how we did this.

But I will focus on the fact that the realistic lighting--

light modeling is maybe the most important part of this work.

In particular, it differentiates it

from a lot of the previous image manipulation types

of works in the literature.

So traditional graphics lighting models

are these simple idealized models

like, you know, perfect, you know,

rectangular area emitters, or spotlights or point lights.

But if you think about real light sources,

they're a lot more varied and complicated, particularly,

in their angular distribution, as you

can see in this large set of examples over here.

In our work, we set out to be able to model these

in a realistic way, such that they could represent accurately

the appearance of light sources that we'd

see in real world scenes.

So, for example, we can model point lights

that have varying directional distribution.

So in this example-- so on the left

is one of the original input images.

On the right is our reconstructed empty room

version of the scene.

And you can see that this standing

light shoots most of its light upwards

but a little bit downwards.

And we've managed to capture that, as well, in this image.

Similarly, with line lights like the fluorescent tube lights

like, you know, these lights up here, they're lines,

they're not just points.

But, similarly, they also have directional distribution.

So, again, a lot of lights throw most of their light upwards.

In fact, if you look at the lights in this room,

they do that.

And the room is actually lit by the reflection of that light

off of the ceiling.

And then, finally, you also have things

like windows and aerial lights.

So in order to do all this modeling,

we're not actually taking a camera,

sticking it on top of the light and measuring how much light

there is coming off there.

We're actually looking at all of the indirect reflections that

are going around in the scene.

And it's, basically, a large non-linear optimization problem

to figure out the distributions and the properties

of these light sources.

So I'm just going to show you a few more results now.

So these are the original input images

from four different scenes.

And now from the same camera angle, empty room version.

I'll just flip back and forth one more time.

So it's, obviously, not exactly the same,

but it captures most of the feel of being in that room.

And, you know, you can stick in whatever furniture or spheres

or graphics models.

You can do other things than just modifying

the geometry, of course.

You can change the materials, you

can change where the light sources are

and their properties, because we have

the full 3D model of the room.

I'll just show you one more example

of one of these fade in, fade out sequences.

And I think these really highlight

the strength of our method in the aesthetic sense,

despite all of these changes they make in the room.

It really feels like you're sitting in the same room.

And then, finally, just to say something about the camera

angle thing, since we were constructing a full 3D model,

we're not constrained to the original input images.

So you could do something like visualize this in AR.

So walk around this empty room in augmented reality sense,

or a refurnished version of it.

BRIAN CURLESS: Thanks.

JEONG JOON PARK: Hi.

I'm Jeong Joon Park, and I'm excited to present

our project, Surface Light Field Fusion,

was recently published at 3Db 2018,

and was worked with Richard Newcombe and Steve Seitz.

We present the surface light field fusion

that can produce photorealistic appearance reconstruction

from a hand-held commodity RGB-D sensor.

This video does synthetic rendering accurately models

the high quality textures, spectral highlights,

and even interreflections and shadows that induce

by global illumination effects.

Our system takes input as RGB-D and IR video

streams, and outputs an appearance model of the scene.

Our goal is realistic reconstruction

of target scenes.

And besides from sharp textures and nice spectral highlights,

we try to achieve global illumination effects.

Which is such as the interreflections

where the white paper appears reddish because of the object,

and the soft and sharp shadows highlighted with green circles.

Although, these global effects are

critical to the perceptual realism, modeling

them has been traditionally been very difficult.

Our key idea is that unlike traditional BRDF methods that

enable scenery lighting, we can trade off

the real lighting for the ability

to capture diffused global elimination effects.

And we achieve this by posing the appearance reconstruction

as surface light field as emission problem.

Prior works on appearance modeling

can be split into two categories.

One is parametric BRDF estimation.

And the other one is nonparametric image-based

methods.

Each of them with pros and cons.

The model-based methods involves modeling

the complex global light transport.

And because inverting the global lighting

is extremely difficult, most previous works

simply ignore these effects.

On the other side of the spectrum,

image-based representation naturally

incorporates the global effects, but it requires dense view

sampling on the hemisphere, which is

unsuitable for casual scanning.

In contrast, surface-like field fusion

is located in the middle of the spectrum,

combining the benefits of both model-based and image-based

methods.

Specifically, we achieve this by considering the factorization

of the surface light field into view independent

and wavelength independent components.

And we modeled the components with image-base and

model-based, respectively.

Please refer to our paper published at 3Db

for further details.

And the resulting system reconstructs the surface light

field without the dense view sampling, while capturing

the global effects.

We note that, however, because we do not recover the full

BRDF, our captured models cannot be rendered under new lighting.

We now go over the implementation of our theory.

Our system gets RGB-D input stream

and reconstructed geometry using KinectFusion,

and the high resolution texture is then fused in real time.

Next, our system segments the scene into regions

with similar materials.

And for each material segments, surface particularities

are measured in IR channel.

Finally, with captured environment lighting,

a realistic novel view of the scene

can be synthetically generated.

To estimate the material properties of the scene,

our systems start with segmenting the scene

into regions with shared reflectance properties using

deep convolutional neural networks.

The material segmentation is necessary

because it is invisible to recover

BRDF for every single surface points.

Given material segmentation, and estimated camera pose,

we use the IR projector and camera

attached to the depth camera.

And given the light source model and IR intensity images,

we optimize for BRDF parameters.

The estimation works robustly in practice

for a wide variety of surfaces.

For example, for brush metal surface in the image,

the right image shows the IR image.

And we can see the specular highlight from the projector.

The specular highlights in the IR image is vertically

elongated due to NS choppy.

And we can fit a reflectance model from the IR signal,

and our fitting is quite close to the ground truth.

And same for the wooden surface in the-- in the bottom--

bottom row where we can accurately model the specular

highlights.

And rendering the recovered material clearly

shows the vertically elongated specular

highlights that characterizes the appearance of brush metals.

Our final scene is one with multiple objects.

Our surface light field renderings of the scene

is virtually indistinguishable from the ground truth.

Notice how our system captures the rich global light transport

effects, including the soft shadows and occlusions,

which cannot be muddled with other pure BRDF-based methods.

So we introduced the first capsule surface

like field fusion reconstruction framework.

Our system effectively captures global illumination effects

and specular highlights.

And we show that by factoring the surface light

field into view independent and wavelength independent

components, we arrive at a representation that

can be robustly estimated within RGBD camera,

and achieves high quality results

across wide variety of scenes.

Thank you very much, and that's it.

JUNHA ROH: Hello, I'm Junha Roh.

And I'm working with Andrzej Pronobis, and Ali Farhadi,

and Dieter Fox.

The title of the project is Two-player Game

for Real-time Natural Human-Robot Communication.

So what we are trying to do is to train a robot, which follows

a human speech direction like, go straight, turn

left, and the car should follow that direction.

So in order to achieve this, we will

like to have set up two-player game of driving, which

requires collaborative manipulation and navigation

through two players.

And we thought the virtual reality

is a good environment for natural interaction

to extract some information.

So this is a demo video of actual game.

So we asked two people to play a driving game.

While the one-- one peop-- one person will do the operator,

who can--

who can see the view and to drive the car in the VR,

while the other person do the commander.

So he can see the whole view of the operator's view

and, also, the entire map and the specific target.

So he can send some like speech--

some command to operator, and the operator

will react to that speech signal.

So from this game we would like to collect some control

signal and the speech signal.

And before moving on the real game,

we will build a simple environment with a maze.

So this is 2D maze simulation, and the input

was simulated 1D laser sensor.

And the output is actual the velocity, linear

and angular velocity.

And we refined the dimension, like command, complex delta

command to three--

three types.

Two types turn left and turn right.

So we analyzed the structure of the maze

and randomly start the engine.

And we tested on the maze environment,

and also on the real scan data of CSE building.

So we find the-- our agent navigated it well.

So we build a new city environment for a longer driv--

driving sequences.

And, also, we had a gaming will and the power

for a realistic experience.

So in the middle of the screen, you

can see the actual instance of driving game.

I don't think you can listen to the actual voice,

but currently people-- one of people

saying like some commands.

And I manually annotated these into straight, left, right

cases for labeling.

And this is current result train on this environment.

So it's a little bit noisy, but it follows some directions

as we change some labels.

So you can see some labels in the upper left side

of the video.

So, currently, we are working on language input.

So instead of using the direct speech signal,

we transcribed the speech signal into sentences.

And we-- so we give a stream of words,

like, turn left, and some pauses, and we transfer

our network to sequence to sequence model

to react properly.

So thank you.

CHUNG-VI-WENG: Hey.

Hello, everyone.

I'm Chung-Vi-Weng, a PhD student in [INAUDIBLE] and reality lab.

I'm excited to here-- to be here to present my research

work called Photo Wake-Up 3D Character

Animation from a Single Photo.

The work was done by co-working with Professor Brian Curless

and Ira Kemelmacher.

So let's start.

OK.

So this is Stephen Curry.

People know that.

And-- yeah, actually, the image captured the moment

when Stephen Curry made an important three point shot.

And time was frozen when the image was captured.

And our goal is that we want to work out a photo

to bring this different Curry to life again

by animating his body.

So here's the result. So quite fun.

And, actually, our technique can be applied

to a large variety of photos.

So this is a [INAUDIBLE] graffiti

we download from our internet.

And this is our result.

OK.

So another case.

Will call people know that a cartoon character

in comics Dragon Bow, and this is an image.

And this is our result. OK.

So the last one is one of my favorites.

This is a Picasso painting.

And we can date that.

So check out this.

This is our result. So this is one of my favorite.

OK.

So because behind the technology,

we actually rebuilt a 3D human model of that character.

So if we have some augmented reality device,

like HoloLens, we can in some way

bring the character into real 3D world.

So I demonstrate in this video.

So here I virtually hand up the painting

in-- on the wall of the building and bring it to this--

the real city world.

So, actually, to rephrase the goal, in order

to work out a photo, our goal is given that photo,

we hope we can rebuild a 3D model of that human character.

And, also, we want to make it animatable because it

is imposing our scenario.

So the high level idea is that we leverage the multiple body

model, which is trained by lots of real bodies

scans and allow user to control the shape and the pose

with parameters, which is good in our scenario.

But, unfortunately, morphable body model is naked.

So to tackle the problem, we propose

a 2-step to solve the problem.

First, we fit the body model based on body

pose to get approximate body model.

Then we warp the mesh, the body mesh,

to match the body silhouette.

And, hopefully, we hope after warping we still

keep a reasonable mesh geometry and skinning weights, which

will be used for animation.

So here we go through our pipeline a very high level

concept.

Given a single image, this is our input

with the tech to the posts and segment the human mask.

Then this onto the pose, we regress

the perimeter of multiple body model

to get approximate body mesh.

Then we extract the skinny mat and the desk

mat from the body mesh.

And that's map represent a mesh geometry.

And skinny map represent any measure information,

which tell us how to move the vertex on the mesh

when the post was changed.

Then we wobble both maps to match the segmented human mask

to get a new maps.

Then we rebuild our mesh, the front part of our mesh,

by combining these two maps.

And, also, we repeat the same process

to rebuild a back part of our mesh,

by virtually rendering the back view over the body model.

Then, finally, we rebuild the texture

and we input the acuity part of the background image

and put the mesh on the background.

Then apply the motion sequence in our database,

like running, to finish the wake-up illusion.

So here we want to see more results.

So LeBron James, Messi, and unknown girls.

So this is a movie poster.

And Beatles.

And [INAUDIBLE].

And we can take you back to the time to-- back to the moon,

have a moonwalk.

The same, Wukong.

And Iron Man.

Oh, sorry.

Another paintings.

And we can also do something like this.

Last one we saw is about augmented reality result.

We can see some of the result. This is-- was a--

download a video from HoloLens.

This is Beatles' album, "Help."

And this is a Picasso painting.

Here we demonstrate we start a motion,

then look around a mesh, and later we will make a run again.

This is the CSU building.

I think people know that.

OK.

So that's all.

Thank you.

KONSTANTINOS REMATAS: Hello, everyone.

I'm Konstantinos Rematas, and I'm a postdoc

at [INAUDIBLE] UW Reality Lab.

And today I will talk about our project,

Watching Soccer in Augmented Reality.

And this project is together with Ira, Brian, and Steve.

So the goal of this idea behind this project

is to take the experience of watching

a soccer game live in a stadium and bring it

in our living room.

And we proposed to do it with augmented reality.

So, now, we want to take the whole experience of the game

and put it in our space.

And so the game is represented as a hologram where

we can watch it with an augmented reality device,

such as HoloLens or Magic Leap, or any of these.

And, traditionally, the way of capturing sports

is done by going in the stadium, and then

you can put cameras around, then you

have to synchronize them because you need some frame accuracy

for the reconstruction.

And you will fit all this data from all these cameras

to a cluster where you estimate the whole metric representation

of the game.

However, this is very expensive.

And it's also very difficult to have a setup like this,

or getting data from other companies that did

do something similar.

And then we thought that can we just do it from a single video?

How we can achieve a holographic representation

of a soccer game but--

by just looking at a single video?

And, in fact, this is what we did

is that we have enabled a YouTube video--

a single YouTube video, and this is the actual hologram

of the game that we see through a HoloLens.

Back to our approach, our goal is

to have a video compression to 3D,

so as I said before, our input is just a single YouTube video.

And on the right, you can see the reconstruction

that we have from that video.

We want to have a land-based approach since we

have a limited amount of input.

And so for a land-based approach, we need data.

And we found out that it's very difficult to acquire real data,

but it's very easy to have data from video games.

So we had to play, and if you pass through [INAUDIBLE]

and you see us playing, just is for science,

so it's not for fun.

And, yeah, essentially, the game gives us

texture and the depth buffer.

So it means that for every player,

we know how it looks like, but also

what is the depth of this particular player.

And we can use it for us 3D save representation.

Essentially, we have a press of images in play--

of players images and the depth.

And knowing the camera parameters,

we can convert the depth maps into many scenes.

So we have about 12,000 of those prints.

So the first thing that comes to your mind

is, of course, training a deep neural network.

And we did that.

We used a stacked hourglass module that takes us

and input the RGB mesh and the mask of their player,

and outputs its depth.

So the depth is represented as an offset with respect

to a player that is passing through the middle

of the player, which pretty much says that the darker--

the darker the pixels, the further away from the camera,

and the brighter, closer to-- the pixel

is closer to the camera.

Now, since we have a method for estimating a 3D shape from--

for the player, it's--

we have to go back to the YouTube videos

and have a big pipeline of actually finding out

which pixels correspond to every player.

So we started with an input frame.

And with me the camera parameters for that

would take advantage of the known dimensions of the soccer

field.

We prefer player detection and pose estimation,

and also, we track the players

Additionally, we have an instant segmentation

for separating the players from the background,

but also from each other.

And then we are able to use our network

for estimating the depth for every player

and for every frame.

So, now, we have a 3D mesh for--

for our video-- from our YouTube video.

And we take, also, the pictures that we come directly

from the video and we apply it as textures.

And here are some results.

So on the bottom right, you can see the input-- original input

video from YouTube.

And it's the actual construction from our system.

Like it was accepted at CVPR, otherwise, we

would have to read and it with different banners in the--

in the background.

So, yeah, this paper appeared on CVPR this year,

and we have also code and network models on GitHub.

So you can try it for your favorite team.

So, yeah.

Now, I would like to talk a little bit

about work in progress.

And what I have been--

what we have been working right now.

So here you can see our construction is pretty nice,

but something is missing.

So where is the ball?

And this is, actually, a difficult problem.

Because in the beginning, we're thinking that, OK, just--

just track the ball.

And, again, there.

So people are playing like they are state-of-the-art ball

detector, where we have something like this.

So the ball sometimes is occluded,

sometimes we miss the textures.

So it's not very accurate and we cannot really rely on detection

systems.

But even if we say that I will go

and I will manually annotate every frame, where is the ball?

Essentially, I have something like this,

which doesn't tell us much about where is the ball.

Because the-- unlike the players, for the players

we made the assumption they are always on the ground.

But for the ball, we cannot make the same assumption,

because you have [INAUDIBLE],, you have long [INAUDIBLE]..

So it is part of the action and is important to model, also,

when the ball is in the air.

So the main problem is that you have this ambiguity.

So, for example, these two trajectories, the red

and the blue trajectories, they are different in 3D.

But once you project it in the image,

they have the same 2D trajectory.

So there is an ambiguity over there.

However, we can use physics for estimating a more reliable

trajectory in 3D.

So pretty much what we want to do

is that we want to find the point that we know the 3D

location.

For example, when the ball is on the ground,

or when it is being kicked.

And then we can connect these two points

by just using physics.

So we can use projectile or linear motion

for connected points for short or longer shots.

And how we going to estimate this critical point?

So we have-- if we have some trajectory like this,

you may think that we can just use similar heuristics

for finding where the velocity change,

and try to fit parabola in between them.

And this is true when the data is very clear, but when it's--

you have millions of observations,

then this thing doesn't apply anymore.

So we experiment and we found that it

wasn't very reliable for having such a heuristics

for [INAUDIBLE].

However, we found out that we are

able to use image trajectories.

So pretty much we generate an image

of how the trajectory would look over time.

So you imagine of it as a long exposure of the ball

trajectory, and we can use color to incorporate time.

And then we formulated actual localization problem.

So we want to know where a force is being applied

in a particular trajectory.

And we're trying a network for this.

And the written data came from a game engine,

so we used the physics engine from unity,

and we had set up like a box where the ball is

being applied random forces.

So we're having all the necessary 2D and 3D information

and forces for training such a system.

And, actually, then we manage to get something like this.

So now we're able to have the ball and, of course,

there are some smaller problems that needs to be addressed.

For example, I can play again, and you

will see that for the second bounce,

the player is far away from the ball.

But this is something that you can

use the [INAUDIBLE] information for associating

the critical points with the correct place in space.

And another-- and, finally, another aspect of our original

system is that it was very slow.

So now we're working on having a real time

version of this system.

So we hope that we'll achieve real time performance

by just scaling to many--

many cores and many GPUs.

And this can be done fairly easily by just writing--

by using Scanner, which is a program from Stanford.

And it enables to generate the computational graph of them--

part of your program and run it in multiple machines and cores.

So, yeah, this from my side.

And, yeah, thank you.

BRIAN CURLESS: So I guess that kind of wraps up--

were there any questions about any of the projects?

Kind of saved it for the end.

I tell you what-- oh, yeah, go ahead.

AUDIENCE: [INAUDIBLE] from his word

when he [INAUDIBLE] because of the image

going out of the [INAUDIBLE] house, back over construction?

PRESENTER: Just depends on background.

I mean, [INAUDIBLE]

BRIAN CURLESS: Well, I think you can keep the speakers

around for a few more minutes so you can come and ask them

more questions.

But for now, let's thank them for all their work.

For more infomation >> UW Allen School Colloquium: UW Reality Lab - Duration: 47:01.

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

Mazda MX-5 2.0 Skyactiv-G 160pk i-ELOOP GT-M - Duration: 1:07.

For more infomation >> Mazda MX-5 2.0 Skyactiv-G 160pk i-ELOOP GT-M - Duration: 1:07.

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

Tiên Tri SÁO Dự Đoán Kết Quả Việt Nam Vs Philippines, Bán Kết AFF Cup 2018 Lượt Về Tại Mỹ Đình !!! - Duration: 10:45.

For more infomation >> Tiên Tri SÁO Dự Đoán Kết Quả Việt Nam Vs Philippines, Bán Kết AFF Cup 2018 Lượt Về Tại Mỹ Đình !!! - Duration: 10:45.

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

SignalBooster.com = Clear Cell Phone Calls + Fast Mobile Internet (Indoors and in Vehicles)

For more infomation >> SignalBooster.com = Clear Cell Phone Calls + Fast Mobile Internet (Indoors and in Vehicles)

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

MLB BASEBALLS SUCK! - Baseballs from every level! (MLB, MiLB, D1, JUCO, HS, TRAVEL, LITTLE LEAGUE) - Duration: 6:05.

What's going on guys?

Coach Madden, YouGoProBaseball.com and we're talking baseballs today.

I've got baseballs from Major League, Minor League, Division 1 College, Junior College,

Summer League College, High School, Travel Baseball, Little League, I think that's it,

I don't know.

But let's start with Little League and we'll work our way up to the Big Leagues and we'll

talk about what's different and kind of how you have to transition through each ball as

you move up from level to level because the balls are very very different and it's crazy

when you get to the Major Leagues you're going to see the ball here that we used and it's

a totally different ball than what you're used to using.

So first off I've got a Little League ball here you can see.

Little League, and I thought I was going to be the man so I threw my autograph on there.

But you can see these laces are real high.

This ball is definitely not real leather.

It feels kind of hard in there but it's also deformed a little bit.

The laces are pretty high here.

Obviously not the best ball in the world.

You guys know what Little League baseballs are.

This is a USSSA baseball so if you guys play travel baseball, you probably use a ball similar

to this.

This is definitely better quality.

It says it's cushioned cork center wool wound core.

You know, this is a better ball.

It feels, I don't know if this is real leather or not but it feels pretty good.

It looks like it would hold up pretty well.

It definitely held up better than that Little League ball.

Now this is a ball that I used in a high school game.

I threw a shut out, 12 K's, my bad!

But this doesn't even have any markings.

No markings at all.

I guess we were just using whatever the hell we could find.

But the ball held up actually not too bad.

It feels smaller for some reason than the other baseballs.

It's pretty hard, laces are pretty tight, but overall not a horrible ball.

Now when we get into college, this is a Junior College baseball.

Junior College baseball right here.

The laces on this ball is a lot more raised, they're a lot thicker, I feel like I can get

a much better grip.

This is definitely leather.

You can see there are some scuffs on this one.

This one has been used in a game.

Obviously it looks like I gave up a hit...garbage.

It's a Rawlings ball but now we're starting to get into the better quality but the laces

again, the laces are the main difference.

The laces are really high on this one, you can really get a good grip, you can feel it

off of your fingers.

Now as we go forward, this is a Virginia Valley League baseball.

So I played in the Virginia Valley League.

It's a summer collegiate baseball league.

It's kind of like Cape Cod just not as high of a level.

It's a pretty good ball here, again, leather ball.

The laces on this one are much flatter.

Look at the difference in these two.

So if you look here, I don't know if you can tell that but the laces here are much flatter

against the ball than these here.

Let's see if I can get a good camera angle.

I don't know if you can really tell but it's a big difference.

There's a big difference right here on these laces.

So that's a big difference there.

Now as we get into the SEC ball, these laces are kind of back raised up again.

So these are a little bit higher laces, much better grip on here.

It's a Rawlings baseball.

This is what we used when I played at Auburn University, SEC.

Actually I think this was when we went to the regionals.

So we didn't use these all year but the NCAA ball is kind of what we used I think.

Actually no, this is an ACC ball.

So we must have been playing Georgia Tech or something or whoever the hell was in the

ACC back then.

It's a Rawlings ball.

Kind of the same deal as the other one and then you've got your minor league ball.

Now, here's where another difference is, laces again, a lot tighter to the ball.

This is a Northwest League baseball.

This was when I was in Triple A, I believe with the Padres.

A Rawlings ball.

Great leather.

Obviously stitched up really nice.

But again it's a lot smoother, the ball is a lot smoother which I didn't like.

I like the collegiate balls a lot better than the pro baseballs.

And then you've got your Major League ball which is the worst of them all in my opinion.

It's so tight.

The laces are so smooth to the ball.

There's not much friction that you get.

So if you're gripping your slider here there's not a lot to grip with and the ball is so

smooth.

It's very very high quality, no doubt.

I think if you were going to buy these they are like $20 a pop just for one ball, you

know.

So they are very high quality don't get me wrong.

It's just pitching wise I would much rather pitch with the ball we used in the SEC.

Let me show you the difference.

Look at the difference in the laces here.

Now that you can see, right?

These are so much more, the college baseball, the laces stick out so much more.

They're thicker, they're higher.

This is like smooth, like there's not, look at that, let me see if I can get this ball

like that.

See the difference there?

Such a big difference.

So that's the biggest difference between a Major League Baseball, a College Baseball,

and then obviously going down the chain.

Let's get a thumbnail in real quick.

That thumbnail is getting us millions of views!

If you guys like this video, leave a thumbs up down below.

Leave me a comment if you want to see some other videos, I'll make other videos, whatever

you want.

I'm at like 115,000 subscribers right now.

I appreciate all your love and support.

Again, leave me a comment down below and let me know.

If you're not subscribed, get subscribed!

Check out some of the other videos!

I'll talk to you guys there!

For more infomation >> MLB BASEBALLS SUCK! - Baseballs from every level! (MLB, MiLB, D1, JUCO, HS, TRAVEL, LITTLE LEAGUE) - Duration: 6:05.

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

How to Install New Software on Continuum Systems - Duration: 2:42.

For more infomation >> How to Install New Software on Continuum Systems - Duration: 2:42.

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

Amazing Beautiful Manufactured Home Creekside Manor 6622L from Champion Homes - Duration: 3:30.

Amazing Beautiful Manufactured Home Creekside Manor 6622L from Champion Homes

For more infomation >> Amazing Beautiful Manufactured Home Creekside Manor 6622L from Champion Homes - Duration: 3:30.

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

Teach Your Dog This Trick! | Kritter Klub - Duration: 1:00.

Good job!

(The one trick you can try at home.. If you have a pet..)

Good job!

(slo-mo)

(now with a cracker)

I was watching videos of owner overseas

I thought it would be hard, but it wasn't

Good job!

(full of encouragement)

(Yes, we're being extra with the slo-mo)

(What a precious dog^^)

(Time to teach my dog that trick)

For more infomation >> Teach Your Dog This Trick! | Kritter Klub - Duration: 1:00.

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

not everyone is going to like you || 12 days of Vlogmas || mermaidqueenjude [CC] - Duration: 6:03.

hi mermaids welcome back to my channel if you're new here my name is Jude, hello

if you hear that my voice is gross sorry I might be getting sick,

all right, again I'm not doing a full vlogmas this year but I am trying to do 12

videos this month so we'll see how that goes

what we're talking about today is

the idea that everybody has to like you

not everyone has to like you this is a

lesson that was really hard for me to learn as I know it was hard for many

others to learn and it's because we are I guess grown up with this ideal that if

someone doesn't like you it means you're a bad person and that's entirely not

true I think that as I've gotten older it's gotten easier for me to be like oh

they don't like me okay cool but I think that still somewhere in the back of my

mind I still think that someone not liking me equals me being a bad person

and I just have to unpack that that's something that I have to unpack

for myself why I think that way why I feel that way

it's unrealistic for me to

believe that everyone is going to like me considering the work that I do

my work is not for everyone I'm not for all markets and that's okay that's

completely fine for me not to be for all markets and I just have to accept that

the work that I do sometimes makes people feel a certain way because they

haven't dealt with the demons in their own life and unfortunately I don't know

how to perform an exorcism and I can't expel those demons for them right so

it's not my job to make everyone like me that's not my job

my job is to educate

and to make people feel better about themselves when they are typically

marginalized that's my job, my job is to make fat people feel good about

expelling diet culture, my job is to help people who've had eating disorders,

my job is to make sure that we all have the same language in order to communicate

and advocate for ourselves those are my jobs

making sure that people like me is not my job not everyone's gonna like you and that's

fine this was something that I learned in high school because one of my

teachers had said to me for every three people that like something that you're

doing there's going to be one person who doesn't like what you're doing and

they're going to say really mean hurtful things about it and so I think that that

message has kind of stayed with me so I wanted to impart that wisdom on to you

I'm just trying my best to make sure

that we can all advocate for ourselves in the way that we need to advocate for

ourselves in a society that doesn't care about us

you know what I mean? it's just

something that's been on my mind lately because the more that I become ingrained

in Fat activism and the more that I become ingrained in the fat positivity

movement the more hate that I get, the more times I say that diets aren't real

I'm met with so much hostility because of people's unresolved demons which I'm

gonna go into it in another video I'm gonna actually make another video this

month about unresolved pain and how that manifests itself on the Internet

I think that it's important especially if you're doing this kind of work to realize that

not everyone is going to like you and that's completely okay I think that when

people try to make themselves liked by all people that is then when they become

disingenuous or false I've never been the one to kiss people's asses and

pretend that I like them

That's not me I've also never been the person to put

my moral values on the back burner because I want someone to like me or

because I want to advance my career in some way that's just not me and I think

that those were very important lessons for me to learn and those are very

important facets of my personality to understand that I had

because of the work that I do, I think that moving forward especially in 2019 I'm going to

continue to think about the way that I'm still holding these unhealthy notions of

everybody has to like me and examining them and I guess I don't know, like I was

listening to no lies detected and if you haven't heard no lies detected go

listen to no lies detected, it's a podcast with Mishal Moore and Meghan Tonjes

where they answer questions for people and I think it was Mishal who

said something about you're not gonna be for all people or not all people are

gonna be for you or something like that and that's stuck with me because I am

someone who's very selective with the people that I chose to have in my

life and I think that my personality can come off as abrasive and that's

off-putting to some people but I'm tired of apologizing for it I'm tired of

making myself smaller in order to make other people comfortable I've made a

video about this it's called taking up space I'll put a card up here I have

always been abrasive I was voted the most opinionated in high school like

I've always been this way

I think that it's unfair that I have to play this

everyone has to like me game in order for me to succeed because that's just

not a fun game to play and I refuse to play it

I have people my life who love me and appreciate me and I have people on here

and on Twitter and on Instagram that are appreciating me and my work and my work

is helping them and you know what that's enough for me if my work has touched you

or helped you get to a different point or helped you unpack your internalized

fatphobia then my job is done, I've done what I needed to do and so I don't need

everyone to like me in order to accomplish what I'm meaning to

accomplish and all of this circles back into what we think success is which is

probably another video that I'm going to make but success for me is being able to

support myself financially just doing this or doing acting or doing

photography and also changing people's lives like those are those are the

things that I want and so for me I'm already partially successful because of

the conversations that I've been having on the internet for the past six months

not everyone's gonna like you and that's okay that's fine you don't have to be

liked by everyone in order to accomplish what you need to accomplish not everyone

is for you and people drift away, people come into your life and you like them

for a little bit and then you realize that you don't-- you're not actually

compatible and then you guys split ways and that's okay too

if you want to join the mermaid kingdom, there are social links down in the description

please follow me on other social media so that you have a say in

what I'm doing over here on this channel

if you want to subscribe there's a button down below

if you want to ring the notification bell to know whenever I upload, that's also down below

if you want to give a like to this video go

ahead and give it a thumbs up I really appreciate it, if you have anything you

want to share in the comments go ahead and do so down below I think that's

everything I'm probably forgetting something but that's okay all right

just keep swimming, sigue nadando, I will see you sometime later this week bye

No comments:

Post a Comment