Library

Video Player is loading.
 
Current Time 0:00
Duration 5:40
Loaded: 0.00%
 

x1.00


Back

Games & Quizzes

Training Mode - Typing
Fill the gaps to the Lyric - Best method
Training Mode - Picking
Pick the correct word to fill in the gap
Fill In The Blank
Find the missing words in a sentence Requires 5 vocabulary annotations
Vocabulary Match
Match the words to the definitions Requires 10 vocabulary annotations

You may need to watch a part of the video to unlock quizzes

Don't forget to Sign In to save your points

Challenge Accomplished

PERFECT HITS +NaN
HITS +NaN
LONGEST STREAK +NaN
TOTAL +
- //

We couldn't find definitions for the word you were looking for.
Or maybe the current language is not supported

  • 00:00

    I can see that this might be useful in a situation where you're dealing
    I can see that this might be useful in a situation where you're dealing

  • 00:05

    with a potential customer, and they want to do some some forecasting, but
    with a potential customer, and they want to do some some forecasting, but

  • 00:11

    their needs aren't exactly what your existing system is.
    their needs aren't exactly what your existing system is.

  • 00:15

    You want to get some idea of how much work it's going to be to
    You want to get some idea of how much work it's going to be to

  • 00:20

    produce a variant for them.
    produce a variant for them.

  • 00:23

    Can we use these specifications to determine that?
    Can we use these specifications to determine that?

  • 00:27

    >> Yeah, indeed you can.
    >> Yeah, indeed you can.

  • 00:29

    And in fact, that
    And in fact, that

  • 00:34

    exact problem is one of the things that motivated us to invest in this approach.
    exact problem is one of the things that motivated us to invest in this approach.

  • 00:40

    So, if you look at the slide, you'll see Hello World and
    So, if you look at the slide, you'll see Hello World and

  • 00:43

    Guten Tag Welt, those two assembly specifications.
    Guten Tag Welt, those two assembly specifications.

  • 00:46

    And you can notice a couple of things.
    And you can notice a couple of things.

  • 00:48

    First off, they have a lot in common.
    First off, they have a lot in common.

  • 00:51

    So, Guten Tag Welt reuses two of Hello World's components, the bFcst And
    So, Guten Tag Welt reuses two of Hello World's components, the bFcst And

  • 00:57

    mults components and it also uses both of its refinements incr and fcst.
    mults components and it also uses both of its refinements incr and fcst.

  • 01:03

    Where they differ is also very clear to see.
    Where they differ is also very clear to see.

  • 01:06

    So the Hello World has this iFcst and this batch component
    So the Hello World has this iFcst and this batch component

  • 01:12

    where as Guten Tag Welt has the diFcst and batchAdj component.
    where as Guten Tag Welt has the diFcst and batchAdj component.

  • 01:16

    And Guten Tag Welt has this mods and overrides.
    And Guten Tag Welt has this mods and overrides.

  • 01:21

    Component interface respectively.
    Component interface respectively.

  • 01:22

    So you can see from this just by comparing exactly
    So you can see from this just by comparing exactly

  • 01:27

    what two variants have in common and exactly how they differ.
    what two variants have in common and exactly how they differ.

  • 01:30

    >> Okay, Kurt can you tell us something about now that you've
    >> Okay, Kurt can you tell us something about now that you've

  • 01:32

    had some experience with using layer blocks over the last year or
    had some experience with using layer blocks over the last year or

  • 01:36

    so about the benefits you've seen from its use?
    so about the benefits you've seen from its use?

  • 01:40

    >> So, there are several benefits that we can get from it;
    >> So, there are several benefits that we can get from it;

  • 01:43

    the most obvious one is that we get a lot of code reviews.
    the most obvious one is that we get a lot of code reviews.

  • 01:47

    I can try to quantify that a little bit.
    I can try to quantify that a little bit.

  • 01:49

    When we had multiple different implementations of these variants and
    When we had multiple different implementations of these variants and

  • 01:54

    we replaced them,
    we replaced them,

  • 01:55

    which is how we originally brought layer blocks into being.
    which is how we originally brought layer blocks into being.

  • 01:58

    We replaced them with with a Layer layer blocks based solution,
    We replaced them with with a Layer layer blocks based solution,

  • 02:02

    we've cut our code footprint by about five times.
    we've cut our code footprint by about five times.

  • 02:04

    So, it was a substantial amount of code reduction that we got in [CROSSTALK].
    So, it was a substantial amount of code reduction that we got in [CROSSTALK].

  • 02:09

    >> You mean 80% in code base?
    >> You mean 80% in code base?

  • 02:11

    >> Yeah, that's right.
    >> Yeah, that's right.

  • 02:12

    >> Fantastic.
    >> Fantastic.

  • 02:13

    >> 80% reduction in code base.
    >> 80% reduction in code base.

  • 02:14

    In addition, the virtue of it is that it's designed to
    In addition, the virtue of it is that it's designed to

  • 02:20

    do programming by generating variance, rather than writing one off programs.
    do programming by generating variance, rather than writing one off programs.

  • 02:24

    And so that approach, and that way of doing engineering
    And so that approach, and that way of doing engineering

  • 02:28

    actually helps the scale much better to building a large complex software.
    actually helps the scale much better to building a large complex software.

  • 02:33

    It just adds a discipline on it.
    It just adds a discipline on it.

  • 02:34

    Now when developers are working on this code base,
    Now when developers are working on this code base,

  • 02:36

    instead of thinking about how to go write the new method or
    instead of thinking about how to go write the new method or

  • 02:42

    make this new tweak, they think, could I or should I make this
    make this new tweak, they think, could I or should I make this

  • 02:46

    a different refinement of an existing interface or different feature.
    a different refinement of an existing interface or different feature.

  • 02:53

    So you get a lot of simplicity in a design by virtue of that.
    So you get a lot of simplicity in a design by virtue of that.

  • 02:57

    The scalability of the whole
    The scalability of the whole

  • 03:02

    approach really owes to this idea of feature refinements being so reusable.
    approach really owes to this idea of feature refinements being so reusable.

  • 03:06

    As you saw in the examples, and there are many more, each of
    As you saw in the examples, and there are many more, each of

  • 03:11

    those little generators gets reused quite a bit.
    those little generators gets reused quite a bit.

  • 03:14

    So you don't need that many of them, and you can build a pretty interesting and
    So you don't need that many of them, and you can build a pretty interesting and

  • 03:19

    rich library of variance.
    rich library of variance.

  • 03:23

    In addition, features, if you design them
    In addition, features, if you design them

  • 03:27

    by doing a feature analysis are very robust abstractions in a domain, and
    by doing a feature analysis are very robust abstractions in a domain, and

  • 03:31

    so they tend to give you the kind of reuse that we get.
    so they tend to give you the kind of reuse that we get.

  • 03:35

    So if you couple a good feature analysis with applying an approach like this,
    So if you couple a good feature analysis with applying an approach like this,

  • 03:40

    you're going to have some
    you're going to have some

  • 03:42

    good idea that you're going to be able to get this kind of reuse in a project.
    good idea that you're going to be able to get this kind of reuse in a project.

  • 03:47

    And then finally, I think maybe the last big benefit is,
    And then finally, I think maybe the last big benefit is,

  • 03:51

    it's really beneficial for understanding and for training.
    it's really beneficial for understanding and for training.

  • 03:54

    So if a new developer has to come onto a project, and
    So if a new developer has to come onto a project, and

  • 03:57

    they've never see a forecaster before.
    they've never see a forecaster before.

  • 03:59

    But they have an assembly spec which is something that's pretty small,
    But they have an assembly spec which is something that's pretty small,

  • 04:03

    just a few lines.
    just a few lines.

  • 04:05

    And particularly if they see two or three of them for different variants.
    And particularly if they see two or three of them for different variants.

  • 04:08

    They can very quickly get an idea of how to do, a sort of,
    They can very quickly get an idea of how to do, a sort of,

  • 04:12

    top down step wise refinement of a variant as
    top down step wise refinement of a variant as

  • 04:18

    a sequence of refinements of a very common easy to understand program.
    a sequence of refinements of a very common easy to understand program.

  • 04:23

    That turns out to have really nice understanding and training benefits.
    That turns out to have really nice understanding and training benefits.

  • 04:31

    >> But historically, in software engineering when a code generation
    >> But historically, in software engineering when a code generation

  • 04:35

    technology or a very general solution to things is proposed, there's often
    technology or a very general solution to things is proposed, there's often

  • 04:40

    a performance hit in the generated code that you have to trade off.
    a performance hit in the generated code that you have to trade off.

  • 04:46

    Has that been your experience here?
    Has that been your experience here?

  • 04:49

    >> So, ironically, it's actually been the opposite.
    >> So, ironically, it's actually been the opposite.

  • 04:52

    Let me try to explain why.
    Let me try to explain why.

  • 04:54

    So we are doing a lot of generation, you're correct.
    So we are doing a lot of generation, you're correct.

  • 05:00

    But in fact,
    But in fact,

  • 05:00

    because we're generating variants that contain really only what's needed.
    because we're generating variants that contain really only what's needed.

  • 05:06

    They contain only those features and
    They contain only those features and

  • 05:08

    only those capabilities that are actually needed for
    only those capabilities that are actually needed for

  • 05:11

    a given variant, and they don't have any extra cruft with them.
    a given variant, and they don't have any extra cruft with them.

  • 05:14

    They have been running more efficiently.
    They have been running more efficiently.

  • 05:16

    In fact, when we replaced these hand written forecasters with ones
    In fact, when we replaced these hand written forecasters with ones

  • 05:21

    we generated from this library, we saw pretty dramatic performance improvements
    we generated from this library, we saw pretty dramatic performance improvements

  • 05:24

    just by reducing the amount of business logic that we had to install into our
    just by reducing the amount of business logic that we had to install into our

  • 05:30

    database, and which of course then had to always be running and calculating.
    database, and which of course then had to always be running and calculating.

  • 05:34

    So in that case, we've actually seen the opposite.
    So in that case, we've actually seen the opposite.

  • 05:38

    >> So win win.
    >> So win win.

  • 05:38

    >> Win win, yeah.
    >> Win win, yeah.

All verb-ing
dealing
/ˈdēliNG/

word

To give (something bad) to

Product Lines

73 views

Video Language:

  • English

Caption Language:

  • English (en)

Accent:

  • English (US)

Speech Time:

95%
  • 5:25 / 5:40

Speech Rate:

  • 162 wpm - Fast

Category:

  • Education

Tags :

Intro:

I can see that this might be useful in a situation where you're dealing
with a potential customer, and they want to do some some forecasting, but
their needs aren't exactly what your existing system is.
You want to get some idea of how much work it's going to be to
produce a variant for them.. Can we use these specifications to determine that?. >> Yeah, indeed you can.. And in fact, that. exact problem is one of the things that motivated us to invest in this approach.
So, if you look at the slide, you'll see Hello World and
Guten Tag Welt, those two assembly specifications.. And you can notice a couple of things.. First off, they have a lot in common.. So, Guten Tag Welt reuses two of Hello World's components, the bFcst And
mults components and it also uses both of its refinements incr and fcst.
Where they differ is also very clear to see.. So the Hello World has this iFcst and this batch component
where as Guten Tag Welt has the diFcst and batchAdj component.
And Guten Tag Welt has this mods and overrides.. Component interface respectively..

Video Vocabulary

/əˈsemblē/

noun

Process of putting the parts of something together.

/ˈsəmˌTHiNG/

adverb pronoun

used for emphasis with following adjective functioning as adverb. thing that is unspecified or unknown.

/ˌikˈspirēəns/

noun verb

An event at which you learned something. To gain knowledge by doing things.

/kəmˈpōnənt/

noun other

part or element of larger whole. Parts that some things are made up of.

/ˌspesəfəˈkāSH(ə)n/

noun other

act of describing or identifying something precisely or of stating precise requirement. Descriptions of the design to make some things.

/ˈpräbləm/

adjective noun

Causing trouble. unwelcome or harmful matter.

/iɡˈzak(t)lē/

adverb

used to emphasize accuracy of figure or description.

/ˈmōdəˌvāt/

adjective verb

Being enthusiastic to do something. To give someone a reason, the will to do something.

/dəˈtərmən/

verb

To control exactly how something will be or act.

/rəˈfīnmənt/

noun other

process of removing impurities or unwanted elements from substance. Small but meaningful improvements to make very good.

noun verb

Fresh foods such as fruits and vegetables. To grow something naturally.

/ˌsiCHəˈwāSH(ə)n/

noun

Circumstance or condition surrounding an event.

/ˈbenəfit/

noun other verb

advantage or profit gained. Good results or effects, something advantageous. profit.

/kəmˈper/

verb

To consider how similar and different things are.