Flash and JavaScript are required for this feature.
Download the video from iTunes U or the Internet Archive.
Description: To determine whether three blocks form an arch, we use a model which evolves through examples and near misses; this is an example of one-shot learning. We also discuss other aspects of how students learn, and how to package your ideas better.
Instructor: Patrick H. Winston
Lecture 15: Learning: Near ...

Some of you show up once in a while.
The ones of you who show up once in a while happen to be very lucky if you picked today, because what we're going to do today is I'm going to tell you stuff that might make a big difference in your whole life.
Because I'm going to tell you how you can make yourself smarter.
No kidding.
And I'm also going to tell you how you can package your ideas so you'll be the one that's picked instead of some other slug.
So that's what we're going to do today.
It's the most important lecture of the semester.
The sleep lecture is only the second most important.
This is the most important.
Now the vehicle that's going to get us there is a discussion about how it's possible to learn in a way that is a little reminiscent of what we talked about last time.
Because last time we learned something very definite from a small number of examples.
This takes it one step further and shows how it's possible to learn in a human-like way from a single example in one shot.
So it's extremely different, very different from everything you've seen before.
Everything that involves learning from thousands of trials and gazillions of examples and only learning a little tiny bit, if anything, from each of them.
This is going to learn something definite from every example.
So here's the classroom example.
What's this?
It's an arch.
I know the architects are complaining that it's not an arch in architecture land.
It's a post and lintel construction.
But for us today it's going to be an arch.
Now if you were from Mars and didn't know what an arch was, I might present this to you and you'd get a general idea of some things that might be factors, but you'd have no idea what's really important.
So then I would say, that's not an arch.
And you would learn something very definite from that.
And then I would shove these together and put this back on, and I would say, that's not an arch either.
And you'd learn something very definite from that.
And then I could paint the top one blue, and you'd learn something very different from that.
And how can that happen is the question?
How can that happen in detail, and what might it mean for human learning and how you can make yourself smarter?
And that's where we're going to go.
All right?
So how can we make a program that's a smart as a martian about learning things like that?
Well, if you were writing that program, surely the first thing you would do is you'd try to get off the picture as quickly as possible and into symbol land where things are clearer about what the important parts are.
So you'd be presented with an initial example that might look like this.
We'll call that an example.
And it's more than just an example.
It's the initial model.
That's the starting point.
And now we're going to couple that with something that's not actually an arch but looks a whole lot like one, at least on the descriptive level to which we're about to go.
So here's something that's not an arch, but its description doesn't differ from that of an arch very much.
In fact, if we were to draw this out in a kind of network, we would have a description that looks like this, and these relations would be support relations.
And this would be drawn out like so.
And the only difference would be-- the only difference would be that those support relations that we had in the initial model-- the example-- have disappeared down out here in this configuration.
But since it's not very different from the model, we're going to call this a near miss.
And now, you see, we've abstracted away from all the details that don't matter to us.
Last time we talked about a good representation having certain qualities-- qualities like making the right things explicit.
Well, this makes the structure explicit, and it suppresses information about blemishes on the surface.
We don't care much about how tall the objects are.
We don't think it matters what they're made of.
So this is a representation that satisfies the first of the criteria from last time.
It makes the right things explicit.
And by making the right things explicit, it's exposing some constraint here with respect to what it takes to be an arch.
And we see that if those support relations are missing, it's not an arch.
So we ought to be able to learn something from that.
What we're going to do is we're going to put these two things together.
We're going to describe the difference between the two.
And we're going to reach the conclusion that since there's only one difference-- one kind of difference with two manifestations to disappearing support relations, we're going to conclude that those support relations are important.
And we're going to turn them red because they're so important.
And we're going to change the name from "support" to "must support." So this is our new model.
This is an evolving model that now is decorated with information about what's important.
So if you're going to match something against this model, it must be the case that those support relations are there.
If it's not there-- if they're not there, it's not an arch.
All right?
So we've learned something definite from a single example.
This is not 10,000 trials.
This is a teacher presenting something to the student and the student learning something immediately in one step about what's important in an arch.
So let's do it again.
That was so much fun.
Let's do this one.
Same as before except that now when we describe this thing, there are some additional relations-- these relations, and those are touch relations.
So now when we compare that-- is that an arch?
No.
It's a near miss.
When we compare that near miss with our evolving model, we see immediately that once again there's exactly one difference, two manifestations, the touch relations.
So we can immediately conclude that these touch relations are interfering with our belief that this could be an arch.
So what do we do with that?
We put those together again and we build ourselves a new model.
It's much like the old model.
It still has the imperatives up here.
We have to have the support relations.
But now down here-- and we draw not signs through there-- these are must not touch relations.
So now you can't match against that model if those two side supports are touching each other.
So in just two steps, we've learned two important things about what has to be in place in order for this thing to be construed to be an arch.
So our martian is making great progress.
But our martian isn't through, because there's some more things we might want it to know about the nature of arches.
For example, we might present it with this one.
Well, that looks just like our initial example.
It's an example just like our initial example.
But this time the top has been painted red.
And I'm still saying that that's an arch.
So once again, there's only one difference and that difference is that in the description of this object, we have the additional information that the color of the top is red.
And we've been carrying along without saying so, that the color of the top in the evolving model is white.
So now we know that the top doesn't have to be white.
It can be either red or white.
So we'll put those two together and we'll get a new model.
And that new model this time once again will have three parts.
It will have the relations, an imperative form that we've been carrying along now, the must support and the must not touch, but now we're going to turn that color relation itself into an imperative.
And we're going to say that the top has to be either red or white.
So now, once again, in one step we've learned something definite about archness.
Two more steps.
Suppose now we present it with this example.
It's an example.
And this time there's going to be a little paint added here as well.
This time we're going to have the top painted blue like so.
So the description will be like so.
And now we have to somehow put that together with our evolving model to make a new model.
And there's some choices here.
And our choice depends somewhat on the nature of the world that we're working in.
So suppose we're working in flag world.
There are only three colors-- red, white, and blue.
Now we've seen them all.
If we've seen them all, then what we're going to do is we're going to say that the evolving model now is adjusted yet again like so.
Oh-- but those are imperatives still.
Let me carry that along.
At this time, this guy-- the color relation-- goes out here to anything at all.
So we could have just not drawn it at all, but then we would have lost track of the fact that we've actually learned that anything can be there.
So we're going to retain the relation but have it point to the "anything goes" marker.
Well, we're making great progress and I said there's just one more thing to go.
So let me compress that into this area here.
What I'm going to add this time is I'm going to say that the example is like everything you've seen before except that the top is now one of those kinds of child's bricks.
So you have a choice actually about whether this is an arch or not.
But if I say, yeah, it's still an arch, then we'd add a little something to its description.
So this description would look like this.
Same things that we've seen before in terms of support, but now we'd have a relation that says that this top is a wedge.
And over here-- something we've been carrying along but not writing down-- this top is a block.
A brick, I guess in the language of the day.
So if we say that it can be either a wedge or a brick on top, what do we do with that?
Once again, it depends on the nature of representation, but if we say that we have a representation, that has a hierarchy of parts.
So bricks and wedges are both children's blocks and children's box or toys.
Then we can think of drawing in a little bit of that hierarchy right here and saying well, let's see.
Immediately above that we've got the brick or wedge.
And a little bit above that we've got block.
And a little bit above that we've got toy.
And a little bit above that we eventually get to any physical object.
So what does it do in response to that kind of situation?
You have the choice.
But what the program I'm speaking of actually did was to make a conservative generalization up here just to say that it's one of those guys.
So once again it's learned something definite.
Let me see.
Let me count the steps.
One, two, three, four, five.
And I just learned four things.
So the generalization of a color, it took two steps to get all the way up to "don't care." So note how it contrasts with anything you've seen in a neural net.
Or anything you will see downstream in some of the other learning techniques that we'll be talking about that involve using thousands of samples to learn what it is-- to learn whatever it is that is intended to be learned.
Let me show you another example of how these heuristics can be put to work.
So there are two sets of drawings.
We have the upper set and the lower set.
And your task, you smart humans working in vast parallelism, your task is to give me a description of the top trains that distinguishes and separates them from the trains on the bottom.
You got it?
Nobody's got it?
Well, let me try one on you.
The top trains all have a short car with a closed top.
So how is it possible that a computer could have figured that out?
It turns out that it figured it out with much the same apparatus that I've shown you here in connection with the arches, just deployed in a somewhat different manner.
In this particular case, the examples are presented one at a time by a teacher who's eager for the student to learn.
In this case, the examples are presented all at once and the machine is expected to figure out a description that separates the two groups.
And here's how it works.
What you do is you start with one of them.
But you have a lot of them.
You have some examples-- we'll call the examples on top the "plus examples" and the examples on the bottom the "negative examples." So the first thing that you do is you pick one of the positive examples to work with.
Anybody got any good guesses about what we're going to call that?
Yeah, you do.
We're going to call that the seed.
It's just highly reminiscent of what we did last time when we were doing [? phonology ?] but now at a much different level.
We're going to pick one of those guys to be the seed, and then we're going to take these heuristics and we're going to search for one that loosens this description so that it covers more of the positives.
You see, if you have a seed that is exactly a description of a particular thing and you insist that everything be just like that, then nothing will match except itself.
But you can use these heuristics to expand the coverage of the description, to loosen it so that it covers more of the positives.
So in your first step you might cover, for example, that group of objects.
Too bad for your side, you've also in that particular case included a negative example in your description, but perhaps in this next step beyond that you'll get to the point where you've eliminated all of those negative examples and zeroed in on all the positive examples.
So how might a program be constructed that would do that sort of thing?
Well, think about the choices.
The first choice that you have it is to pick a positive example to be the seed.
And once you've picked a particular example to be the seed, then you can apply heuristics, all of them that you have, to make a new description that may cover the data better.
It may have more of the positives and fewer of the negatives than in your previous step.
But this, if you have a lot of heuristics, and these are a lot of heuristics because there's a lot of description in that set of trains, there are lots of possible things that you could do with those heuristics because you could apply them anywhere.
So this tree is extremely large.
So what do you do to keep it under control?
Well, now you have answers to questions like that by knee-jerk, right?
The branching factor is too big.
You want to keep a few solutions going.
You have some way of measuring how well you're doing so you can use a beam search.
This piece here was originally worked out by a friend of mine, now, alas, deceased, [? Rashad ?] [? Malkowski ?] when he was at the University of Illinois.
And of course, he wasn't interested in toy trains, he was just interested in soybean diseases.
And so this exact program was used to build descriptions of soybean diseases.
It turned out to be better than the plant pathology books.
We now have two ways of deploying the same heuristics.
But my vocabulary is in need of enrichment, because I'm talking about "those" heuristics.
And one of the nice things that [? Malkowski ?] did for me a long time ago is give each of them a name.
So here are the names that were developed by [? Malkowski. ?] What's happening here?
You're going from an original model to an understanding-- some things are essential.
So he called this the "require link" heuristic.
And here in the next step, we're forbidding some things from being there.
So [? Malkowski ?] called that heuristic the "forbid link" heuristic.
And in the next step, we're saying it can be either red or white.
So we have a set of colors and we're extending it.
And over here in this heuristic, going from red or white to anything goes, that's essentially forgetting about color altogether, so we're going to call that "drop link" even though for reasons of keeping track, we don't actually get rid of it.
We just have it pointing to the "anything" marker.
And finally, in this last step, what we're doing with this tree of categories is we're climbing up it one step.
So he called that the "climb tree" heuristic.
So now we have a vocabulary of things we can do in the learning process, and having that vocabulary gives us power over it, right?
Because those are names.
We can now say, well, what you need here is the "drop link" heuristic.
And what you need over there is the "extend set" heuristic.
So now I want to back up yet another time and say, well, let's see.
When we were working with that phonology stuff, all I did was generalize.
Are we just generalizing here?
No.
We're both generalizing and specializing.
So when I say that the links over here that are developed in our first step are essential, this is a specialization step.
And when I say they can't be-- they cannot be touch relations, that's a specialization step.
Because we're able to match fewer and fewer things when we say you can't have touch relations.
But over here, when I go here and say, well, it doesn't have to be white.
It can also be red.
That's a generalization.
Now we can match more things.
And when I drop the link altogether, that's a generalization.
And when I climb the tree, that's a generalization.
And that's why when I do this notional picture of what happens when [? Malkowski ?] program does a tree search to find a solution to the train problem, they're both specialization steps which draw in the number of things that can be matched, and generalization steps that make it broader.
So, let's see.
We've also got the notion of near miss.
And we've got the notion of example-- some of these things are examples, some are near misses.
We've got generalization specialization.
Does one go with one or the other, or are they all mixed up in their relationship to each other?
Can you generalize and specialize with near misses?
What do you think?
You think-- you don't think so, [INAUDIBLE]?
What do you think?
STUDENT: [INAUDIBLE] specialization.
PROFESSOR PATRICK WINSTON: [INAUDIBLE] lead to specialization.
Let's see if that's right.
So we've got specialization here, and that's a near miss.
We've got specialization here, and that's a near miss.
We've got generalization here, and that's an example.
And we've got generalization here, and that's an example.
And we've got generalization here, and that's an example.
So [INAUDIBLE] has got that one nailed.
The examples always generalize, and the near misses always specialize.
So we've got apparatuses in place that allow us to both expand what we could match and shrink what we could match.
So what has this got to do anything?
Well, which one of these methods is better, by the way?
This one-- this one requires a teacher to organize everything up.
This one can handle it in batch mode.
This one is the sort of thing you would need to do with a human because we don't have much memory.
That one is the sort of thing that a computer's good at because it has lots of memory.
So which one's better?
Well, it depends on what you're trying to do.
If you're trying to build a machine that analyzes the stock market, you might want to go that way.
Or soybean diseases, or any one of a variety of practical problems.
If you're trying to model people, then maybe this is a way that deserves additional merit.
How do you get all that sorted out?
Well, one way to get it all sorted out is to talk in terms of what are sometimes called "felicity conditions." So when I talk about felicity conditions, I'm talking about a teacher and a student and covenants that hold between them.
So here's the teacher.
That's me.
And here's the student.
That's you.
And the objective of interaction is to transform an initial state of knowledge into a new state of knowledge so that the student is smarter and able to make use of that new knowledge to do things that couldn't be done before by the student.
So the student over here has a learner.
And he has something that uses what is learned.
And the teacher over here has a style.
So if any learning is to take place, one side has to know something about the other side.
For example, it's helpful if the teacher understands the initial state of the student.
And here's one way of thinking about that.
You can think of what you know as forming a kind of network.
So initially, you don't know anything.
But as you learn, you start developing quanta of knowledge.
And these quanta of knowledge are all linked together by prerequisite relationships that might indicate how you get from one quantum to another.
So maybe you have generalization links, maybe you have specialization links, maybe you have combination links, but you can think of what you know as forming this kind of network.
Now your state of knowledge at any particular time can then be viewed as a kind of wavefront in that space.
So if I, the teacher, know where your wavefront is, can I do a better job of teaching you stuff?
Sure, for this reason.
Suppose you make a mistake, m1, that depends on q1.
Way, way behind your wavefront.
What do I do if I know that you made a mistake of that kind?
Oh, I just say, oh, you forgot you need a semicolon after that kind of statement.
I just remind you of something that you certainly know, you just overlooked.
Right?
On the other hand, suppose you make a mistake that depends on a piece of knowledge way out here.
That kind of mistake, m2.
What do I say to you then?
What do you think, Patrick?
What do you think I would say if you made that kind of mistake?
STUDENT: [INAUDIBLE].
PROFESSOR PATRICK WINSTON: No.
That's not what I would say [INAUDIBLE].
STUDENT: You'd tell us that we don't know that yet.
PROFESSOR PATRICK WINSTON: I would say something like that.
What [INAUDIBLE] suggested I would say.
Oh, don't worry about that.
We'll get to it.
We're not ready for it yet.
So in this case, I remind somebody of something they already know.
In this case, I tell them they'll learn about it later.
So what do I do with mistake number three?
That's the learning moment.
That's where I can push the wavefront out.
Because everything's in place to learn the stuff at the next radius.
So if I know that the student has made a mistake on that wavefront, that's when I say, this is the teaching moment.
This is when I explain something.
So that's why it's important for the teacher to have a good model of where the student is in the initial state of knowledge.
Next thing that's important for the teacher to know is the way that the student learns.
Because if the student is a computer, they can handle the stuff in batch.
That's one thing.
If the student is a third grader who has a limited capacity to store stuff, then that makes a difference in how you teach it.
You might teach it that way to the third grader, and that way, buried underneath this board, to a computer.
So you need to understand the way that the learner-- the computational capacity of the learner.
And there's also a need to understand the computational capacity of the user box down there, because sometimes you can be taught stuff that you can't actually use.
So by now, most of you have attempted to read that sentence up there, right?
And it seems screwy, right?
It seems unintelligible, perhaps?
It's a garden path sentence.
It makes perfectly good English, but the way you generally read it, it doesn't, because you have a limited buffer in your language processor.
What does this mean?
You're expecting this to be "to." Question.
But it's actually a command.
Here's the deal.
Somebody's got to give the students their grades.
Well, we can have their parents do it.
Have the grades given to their students by their parents, then.
So it's a command.
And you garden path on it, because you have limited buffer space in your language processor.
So with parentheses you can understand it.
You can learn about it.
You can see that it's good English, but you can't generally process that kind of sentence without going back and starting over.
And what about going the other way?
Are there covenants that we have to have here that involve the student understanding some things about the teacher?
Well, first thing there is is trust.
The student has to presume that the teacher is teaching the student correct information, not lying to student.

There's also this sort of thing down here.
Understanding of the teacher's style.
So you might say, well, professor x, all he does is read slides to us in class, so why go?
You wouldn't be entirely misadvised.
That's an understanding of one kind of style.
Or you can say, well, old Winston, he tries to tell us something definite and convey a family of powerful ideas in every class.
So maybe it's worth dragging yourself out of bed at 10 o'clock in the morning.
Those are style issues, and those are things that the student uses to determine how to match the student's style against that of the instructor.
So that helps us to interpret or think about differences in style so that we can appreciate whether we ought to be learning that way, where that way is the way that's underneath down here, the way you would teach a computer, the way [? Malkowski ?] taught a computer about soybean diseases.
We can do it that way, or we can do it this way with a teacher who deliberately organizes and shapes the learning sequence for the benefit of a student who has a limited processing capability.
Now you're humans, right?
So think about what the machine has to do here.
The machine-- in order to learn anything definite in each of those steps, the machine has to build a description.
So it has to describe the examples to itself.
That's unquestioned, right?
Because what it's doing is looking at the differences.
So it can't look at the differences unless it's got descriptions of things.
So if you're like the machine, then you can't learn anything unless you build descriptions.
Unless you talk to yourself.
And if you talk to yourself, you're building the kind of descriptions that make it possible for you to do the learning.
And you say to me, I'm an MIT student.
I want to see the numbers.
So let me show you the numbers.
And when I'm going to show numbers-- the numbers that I'm going to show you show you the virtues of talking to yourself.
So here's the experiment.
The experiment was done by a friend of mine, Michelene Chi.
Always seems to go by the name Mickey Chi.
There he is.
So here's the deal.
The students that she worked with were expected to learn about elementary physics.
801 type stuff.
And she took eight subjects, and she had them-- she took them through a bunch of examples and then she gave them an examination.
So eight subjects, and so they divide into two groups.
The bottom half and the top half.
The ones who did better than average and the ones who did worse than average.
So then you can say, well, OK, what did that mean?
You can say, how much did they talk to themselves?
Well, that was measured by having them talk out loud as they solved the problems on an examination.
So we could ask how much self explanation was done by the smart ones versus the less smart ones?
And here are the results.
The worst ones-- the worst four said about 10 things to themselves.
The best four said about 35 things to themselves.
That's a pretty dramatic difference.
Here's the data in a more straightforward form.
This, by the way, points out that the smart ones scored twice as high as the less smart ones.
And when we look at the number of explanations they gave themselves in two categories, smart ones said three times as much stuff to themselves as the less smart ones.
So, as you can see, the explanations break down into two groups.
Some have to do with monitoring and not with physics at all.
They're things like, oh hell, I'm stuck.
Or, I don't know what to do.
And the others have to do with physics.
Things like, well, maybe I should draw a force diagram.
Or let me write down f equals ma, or something like that, as physics knowledge.
I think it's interesting that this average score is different by a factor of two, and the average talking to oneself differed by a factor of three.
Now this isn't quite there, because what's not clear is if you encourage somebody to talk to themself, and they talk to themselves more than they would have ordinarily, does that make them score better?
All we know is that the ones who talk to themselves more do score better.
But anecdotally, talking to some veterans of 6.034, they've started talking to themselves more when they solve problems, and they think that it makes them smarter.
Now I would caution you not to do this too much in public.
Because people can get the wrong idea if you talk to yourself too much.
But it does seem-- it does, in fact, seem to help.

What I'm telling you now is how to make yourself smarter.
And I want to conclude this hour by telling you about how you can package your ideas so that they have greater impact.
So I guess I could have said, how to make yourself more famous, but I've limited myself to saying how to package your ideas better.
And the reason you want to package your ideas better is because if you package your ideas better than the next slug, then you're going to get the faculty position and they're not.
If you say to me, I'm going to be an entrepreneur, same thing.
You're going to get the venture capitalist money and the next slug won't if you package your ideas better.
So this little piece of work on the arch business got a whole lot more famous than I ever expected.
I did it when I was young and stupid, and didn't have any idea what qualities might emerge from a piece of work that would make it well known.
I only figured it out much later.
But in retrospect, it has five qualities that you can think about when you're deciding whether your packaging of your idea is in a form that will lead to that idea becoming well known.
And since there are five of them, it's convenient to put them all on the points of a star like so.
So quality number one.
I've made these all into s-words just to make them easier to remember.
Quality number one is that there's some kind of symbol associated with a work.
Some kind of visual handle that people will use to remember your idea.
So what's the visual symbol here?
Well, that's astonishingly easy to figure out, right?
That's the arch.
For years without my intending it, this was called arch learning.
So you need a symbol.
Then you also need a slogan.
That's a kind of verbal handle.
It doesn't explain the idea, but it's enough of a handle to, as Minsky would say, put you back in the mental state you were in when you understood the idea in the first place.
So what is the slogan for this work?
Anybody have any ideas?
Pretty obvious.
What's essential to this process working?
The ability to present an example is very similar [INAUDIBLE], that constitutes a model but isn't one of those.
STUDENT: [INAUDIBLE].
PROFESSOR PATRICK WINSTON: So it's a near miss.
The next thing you need if your work is going to become well known is a surprise.
What's the surprise with this stuff?
Well, the surprise-- everything that had been done in artificial intelligence having to do with learning before this time was precursors to neural nets.
Thousands of examples to learn anything.
So the big surprise was that it was possible for a machine to learn something definite from each of the examples.
So that now goes by the name of one shot learning.
That was the surprise, that a computer could learn something definite from a single example.
So let's see.
We've almost completed our star.
But there are more points on it.
So this point is the salient.
What's a salient-- what's a salient idea?
Jose, do you know what a salient idea is?
He's too shy to tell me.
What's a salient idea?
Ah, who said important?
Wrong answer, but very good.
You're not shy.
So what does it really mean?
Yes.
STUDENT: Relative to what somebody's already thinking about?
PROFESSOR PATRICK WINSTON: Relative to what somebody's thinking about.
Not quite.
If you have a-- if you're an expert in-- yes?
STUDENT: [INAUDIBLE].
PROFESSOR PATRICK WINSTON: Really close.
We're getting closer.
[INAUDIBLE].
Yes?
STUDENT: Maybe an idea that wasn't obviously apparent, but becomes apparent gradually as somebody starts to understand?
PROFESSOR PATRICK WINSTON: We're zeroing-- we're circling the wagons here and zeroing in on it.
Yes?
STUDENT: If I'm preempting what you're about to say, it has sort of a doorway of how you can understand the idea.
PROFESSOR PATRICK WINSTON: It's what?
Sorry.
STUDENT: It's sort of like a doorway of how you can grasp the idea.
PROFESSOR PATRICK WINSTON: That's sort if it, too, but if you study military history, what's the salient on a fort?
Well, this is a good word to have in your vocabulary because it sort of means all of those things, but what it really means is something that sticks out.
So on a fort, if this were a fort, these would all be salients because they stick out.
So the salient idea is usually important because it sticks out.
But it's not-- the meaning is not "important," the meaning is "stick out." So a piece of work becomes more famous if it has something that sticks out.
It's interesting.
There are theses that have been written at MIT that have too many good ideas.
And how can have too many good ideas?
Well, you can have too many good ideas if no one idea rises above and becomes the idea that people think about when they think about you.
We have people on the faculty who would have been more famous if their theses had fewer ideas.
It's amazing.
So this piece of work did have a salient.
And the salient idea was that you could get one shot learning via the use of near misses.
That was the salient idea.
The fifth thing, ah.
Talk more about this in my "How to Speak" lecture in January.
The fifth thing I like people to try to incorporate into their presentations is a story.
Because we humans somehow love stories.
We love people to tell us stories.
We love things to be packaged in stories.
And believe me, I think all of education is essentially about storytelling and story understanding.
So if you want your idea to be sold to the venture capitalist, if you want to get the faculty job, if you want to get your book sold to a publisher, if you want to sell something to a customer, ask yourself if your presentation has these qualities in it.
And if it has all of those things, it's a lot more likely to be effective than it doesn't.
And you'll end up being famous.
Now you say to me, well, being famous-- that sounds like the Sloan School type of concept.
Isn't it immoral to want to be famous?
Maybe that's a decision you can make.
But whenever I think about the question, I somehow think of the idea that your ideas are like your children.
You want to be sure that they have the best life possible.
So if they're not packaged well, they won't.
I'm also reminded of an evening I spent at a soiree with Julia Child.
Julia, and there's me.
And I have no idea how come I got to sit next to Julia Child.
I think they thought I was one of the rich Winstons.
The Winston flowers, or the Harry Winston diamonds or something like that.
There I was, sitting next to Julia Child.
And the interesting thing-- by the way, did you notice I'm now telling a story?
The interesting thing about this experience was that there was a constant flow of people-- happened to be all women-- people going past Ms. Child saying how wonderful she was to have made such an enormous change in their life.
Must have been 10 of them.
It was amazing.
Just steady flow.
So eventually I leaned over to her and I said, Ms. Child, is it fun to be famous?
And she thought about it a second and said, you get used to it.
And that had a profound effect on me, because you always say, well, what's the opposite like?
Is it fun to be ignored?
And the answer is, no, it's not much fun to be ignored.
So yeah, it's something you can get used to, but you can never get used to having your stuff ignored, especially if it's good stuff.
So that's why I commend to you this business about packaging ideas.
And now you see that 6034 is not just about AI.
It's about how to do good science.
It's how to make yourself smarter, and how to make yourself more famous.


You will have to re-initialize the widget if you want to see it again.


Pixel Assistant
Restore
IN+
Conversion
Conversion
Visualzation
PixelToSize
Conversion
Select your font size
Conversions based on 16px browser default size
Pixels
EMs
Percent
Points
Your conversions
Conversions based on your body font size
Pixels
EMs
Percent
Points
Custom conversion
Here’s a calculator for your custom EM needs
1. Enter a base pixel size
px
2. Convert
PX to EM
px
or
EM to PX
em
Convert
3. Result


Go to the source code of this file.
◆ DebugFP
Global FP for Debug output.
Global FILE * for debug output
it's standard error unless it gets as part of the command line (-d option)
Definition at line 45 of file globals.c.
◆ DebugLevel
Global debug level.
0 - OFF 1 - INFO 2 - DETAILED
Global debug level
DEBUG_OFF, DEBUG_INFO, DEBUG_DETAIL
Definition at line 40 of file globals.c.
◆ HostInfo
network connection for incoming camera messages
Network connectivity information
addresses, ports, socket, etc.
Definition at line 26 of file globals.c.
◆ MyName
program name (set directly from argv[0])
Program name
argv[0] in Linux terms
Used as part of error and warning messages to identify the program which generate the message in case you are looking at multiple debug or log files
Definition at line 21 of file globals.c.
◆ Ttl
time-to-live for camera messages
Time to Live
How long any sensor data records are kept around before being purged
Who cares what was seen 30 seconds ago?
Typical values are in the low integer number of seconds
Definition at line 35 of file globals.c.


| Package | Description |
|---|---|
| com.risk.team.controller | |
| com.risk.team.model | |
| com.risk.team.services | |
| com.risk.team.services.gameplay | |
| com.risk.team.strategy |
| Modifier and Type | Field and Description |
|---|---|
private javafx.scene.control.ListView<Country> |
GamePhaseController.adjacentCountryList
Adjacent Countries ListView provides scrollable list of items
|
private static java.util.HashSet<Country> |
GamePhaseController.allAdjacentCountries
HashSet to storing adjacent countries
|
private javafx.scene.control.ListView<Country> |
GamePhaseController.selectedCountryList
Selected Countries ListView provides scrollable list of items
|
private static java.util.HashMap<Country,java.lang.Boolean> |
GamePhaseController.visited
HashMap to store visited country
|
| Modifier and Type | Method and Description |
|---|---|
private void |
GamePhaseController.findAdjacentCountriesFortification(Country country) |
private void |
GamePhaseController.findAdjacentCountriesOtherPlayers(Country country) |
private void |
GamePhaseController.moveToAdjacentCountry(Country country)
Method to get the adjacent country.
|
private void |
GamePhaseController.moveToAdjacentCountryFortification(Country country)
Method to get the adjacent country.
|
| Modifier and Type | Field and Description |
|---|---|
private Country |
Dice.attackingCountry
Country which is attacking the defending country,
adjacent to it.
|
private Country |
DiceTest.attackingCountry
Object for Country class for attacking country
|
private Country |
PlayerTest.attackingCountry
Object for Country Class
|
private Country |
Card.country
Object of country, which is the on the card
|
private Country |
CountryTest.country
Objects for Country Class
|
private Country |
PlayerTest.country |
private Country |
PlayerTest.country1
Object for Country Class
|
private Country |
ContinentTest.country1
Objects for Country Class
|
private Country |
PlayerWorldDominationTest.country1
Object for Country class
|
private Country |
PlayerTest.country2
Object for Country Class
|
private Country |
ContinentTest.country2
Objects for Country Class
|
private Country |
PlayerWorldDominationTest.country2
Object for Country class
|
private Country |
ContinentTest.country3
Objects for Country Class
|
private Country |
PlayerWorldDominationTest.country3
Object for Country class
|
private Country |
PlayerWorldDominationTest.country4
Object for Country class
|
private Country |
Dice.defendingCountry
Country is is under attack
|
private Country |
DiceTest.defendingCountry
Object for Country class for defending country
|
private Country |
PlayerTest.defendingCountry
Object for Country Class
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.ArrayList<Country> |
Country.adjacentCountries
Adjacent Country holder
|
private java.util.HashMap<java.lang.String,Country> |
PlayerTest.allCountries
HashMap of all countries in the graph
|
private java.util.ArrayList<Country> |
PlayerTest.continentListOfCountries |
private java.util.HashMap<java.lang.String,Country> |
TournamentModelTest.countrySet
object for countrySet
|
private java.util.ArrayList<Country> |
Continent.listOfCountries
List of countries in the continent.
|
private java.util.ArrayList<Country> |
ContinentTest.listOfCountries
ArrayList to store list of countries
|
private java.util.ArrayList<Country> |
PlayerWorldDominationTest.listOfCountries1
ArrayList for list of countries
|
private java.util.ArrayList<Country> |
PlayerWorldDominationTest.listOfCountries2
ArrayList for list of countries
|
private java.util.ArrayList<Country> |
PlayerWorldDominationTest.listOfCountries3
ArrayList for list of countries
|
private java.util.ArrayList<Country> |
PlayerTest.myCountries
ArrayList to hold list of countries
|
private java.util.ArrayList<Country> |
TournamentModelTest.myCountries1
object for countries
|
private java.util.ArrayList<Country> |
TournamentModelTest.myCountries2
object for countries
|
private java.util.ArrayList<Country> |
TournamentModelTest.myCountries3
object for countries
|
private java.util.ArrayList<Country> |
PlayerTest.playercountries
ArrayList to hold list of countries
|
private java.util.ArrayList<Country> |
Player.playerCountries
Player countries
|
private java.util.ArrayList<Country> |
DiceTest.playerCountries
ArrayList to hold list of players countries
|
private java.util.ArrayList<Country> |
DiceTest.playerCountries1 |
private java.util.ArrayList<Country> |
PlayerTest.playerOwnedCountries |
| Modifier and Type | Method and Description |
|---|---|
Country |
Dice.getAttackingCountry()
Getter for the attacking Country.
|
Country |
Card.getCountry()
get Country of the card
|
Country |
Dice.getDefendingCountry()
Getter for the defending Country.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.ArrayList<Country> |
Country.getAdjacentCountries()
Method to get the list of Adjacent countries.
|
java.util.ArrayList<Country> |
Continent.getListOfCountries()
Method to get the list of countries held by the continent.
|
java.util.ArrayList<Country> |
Player.getPlayerCountries()
Getter for list of player's armies.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Player.addArmiesToCountry(Country country,
int numberOfArmies)
Method for adding armies to a country
|
void |
Player.addCountry(Country country)
Method to add a country to the player's country list
|
void |
Continent.addCountry(Country country)
Method to add a country to the list of countries in the continent
|
void |
Continent.deleteCountry(Country country)
Method to remove country from the list of countires in the continent.
|
boolean |
Player.isAttackMoveValid(Country attacking,
Country defending)
Method to check if the attack move is valid or not
|
void |
Player.reinforcementPhase(javafx.collections.ObservableList<Country> countries,
Country country,
java.util.List<Player> playerList)
Method governing the reinforcement phase.
|
void |
Dice.setAttackingCountry(Country attackingCountry)
Setter for attacking country
|
void |
Card.setCountry(Country country)
Set Country
|
void |
Dice.setDefendingCountry(Country defendingCountry)
Setter for defending dice values.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Player.attackPhase(javafx.scene.control.ListView<Country> attackingCountries,
javafx.scene.control.ListView<Country> defendingCountries,
java.util.List<Player> playerList)
Method governing the attack phase
|
void |
Player.attackPhase(javafx.scene.control.ListView<Country> attackingCountries,
javafx.scene.control.ListView<Country> defendingCountries,
java.util.List<Player> playerList)
Method governing the attack phase
|
void |
Player.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountries,
javafx.scene.control.ListView<Country> adjCountries,
java.util.List<Player> playerList)
Method governing the fortification phase
|
void |
Player.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountries,
javafx.scene.control.ListView<Country> adjCountries,
java.util.List<Player> playerList)
Method governing the fortification phase
|
void |
Player.placeArmyOnCountry(javafx.scene.control.ListView<Country> selectedCountryList,
java.util.List<Player> gamePlayerList)
Method for placing armies on the countries during the startup phase.
|
boolean |
Player.playerCanAttack(javafx.scene.control.ListView<Country> attackingCountries)
Method to check if the player can attack or not.
|
void |
Player.reinforcementPhase(javafx.collections.ObservableList<Country> countries,
Country country,
java.util.List<Player> playerList)
Method governing the reinforcement phase.
|
void |
Country.setAdjacentCountries(java.util.ArrayList<Country> adjacentCountries)
Method to set the adjacent countries.
|
void |
Continent.setListOfCountries(java.util.ArrayList<Country> listOfCountries)
Set the list of countries.
|
void |
Player.setPlayerCountries(java.util.ArrayList<Country> playerCountries)
Setter for list of player's armies.
|
| Constructor and Description |
|---|
Dice(Country attackingCountry,
Country defendingCountry)
Constructor for the dice class.
|
| Modifier and Type | Field and Description |
|---|---|
private Country |
RiskMapGraphTest.country
Object for Country class
|
private Country |
RiskConnectedGraphTest.country0
Objects for Country Class
|
private Country |
RiskMapEditTest.country1
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country1
Objects for Country Class
|
private Country |
RiskLaunchPhaseTest.country1
Object for Country Class
|
private Country |
RiskMapGraphTest.country2 |
private Country |
RiskMapEditTest.country2
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country2
Objects for Country Class
|
private Country |
RiskLaunchPhaseTest.country2
Object for Country CLass
|
private Country |
RiskMapGraphTest.country3 |
private Country |
RiskMapEditTest.country3
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country3
Objects for Country Class
|
private Country |
RiskMapGraphTest.country4 |
private Country |
RiskMapEditTest.country4
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country4
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country5
Objects for Country Class
|
private Country |
RiskConnectedGraphTest.country6
Objects for Country Class
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraphTest.adCountryList
Adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraphTest.adCountryList
Adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraph.adjacentCountries
HashMap to store the list of adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraph.adjacentCountries
HashMap to store the list of adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapVerify.adjacentCountries
Containing set of all the adjacent countries to a particular country
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapVerify.adjacentCountries
Containing set of all the adjacent countries to a particular country
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraphTest.adjacentCountries
Adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraphTest.adjacentCountries
Adjacent countries
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapEditTest.adjacentCountries
HashMap to store adjacent counties
|
private java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapEditTest.adjacentCountries
HashMap to store adjacent counties
|
private java.util.ArrayList<Country> |
RiskConnectedGraphTest.adjacentCountries0
ArrayList to store adjacent countries
|
private java.util.ArrayList<Country> |
RiskConnectedGraphTest.adjacentCountries1 |
private java.util.ArrayList<Country> |
RiskConnectedGraphTest.adjacentCountries2 |
private java.util.ArrayList<Country> |
RiskConnectedGraphTest.adjacentCountries3 |
private java.util.HashMap<java.lang.String,Country> |
RiskMapGraph.allCountries
HashMap for set of countries
|
private java.util.HashMap<java.lang.String,Country> |
RiskMapGraphTest.allCountries
List of all countries in the graph
|
private java.util.List<Country> |
RiskLaunchPhaseTest.allCountries
ArrayList to hold list of all Countries in the graph
|
private java.util.HashSet<Country> |
RiskMapEditTest.countries
HashSet to store unique Countries
|
private java.util.HashMap<Continent,java.util.HashSet<Country>> |
RiskMapVerify.countriesInContinent
HashMap containing continent as key and countries belonging to continent
as value
|
private java.util.HashMap<Continent,java.util.HashSet<Country>> |
RiskMapEditTest.countriesInContinent
HashMap to store counties in a continent
|
private java.util.ArrayList<Country> |
RiskMapGraphTest.countryList
List of countries
|
(package private) java.util.HashMap<java.lang.String,Country> |
RiskLaunchPhaseTest.countryList
HashMap of all the Countries
|
private java.util.HashMap<java.lang.String,Country> |
RiskMapVerify.countrySet
Containing set of all the countries
|
private java.util.Set<Country> |
RiskGraphConnected.countrySet
Set containing countries
|
private java.util.Set<Country> |
RiskConnectedGraphTest.countrySet
Set to store countries
|
private java.util.Set<Country> |
RiskConnectedGraphTest.countrySet1
Set to store countries
|
private java.util.Set<Country> |
RiskConnectedGraphTest.countrySet2
Set to store countries
|
private java.util.ArrayList<Country> |
RiskMapEditTest.listOfCountries
ArrayList to store list of countries
|
private java.util.ArrayList<Country> |
RiskLaunchPhaseTest.listOfCountries
ArrayList to hold list of Countries
|
private java.util.ArrayList<Country> |
RiskMapEditTest.listOfCountries2
ArrayList to store list of countries
|
private java.util.ArrayList<Country> |
RiskConnectedGraphTest.playerOwnedCountries
ArrayList for countries owned by player
|
private java.util.HashSet<Country> |
RiskConnectedGraphTest.playerOwnedCountriesSet
HashSet for countries owned by player
|
private java.util.HashMap<Country,java.lang.Boolean> |
RiskGraphConnected.visitedcountries
HashMap for marking a country as visited or not
|
| Modifier and Type | Method and Description |
|---|---|
java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraph.getAdjacentCountries()
Method to get the list of adjacent countries.
|
java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapGraph.getAdjacentCountries()
Method to get the list of adjacent countries.
|
java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapVerify.getAdjacentCountries()
Method to get adjacent countries to a country.
|
java.util.HashMap<Country,java.util.ArrayList<Country>> |
RiskMapVerify.getAdjacentCountries()
Method to get adjacent countries to a country.
|
java.util.HashMap<java.lang.String,Country> |
RiskMapGraph.getAllCountries()
Method to get the countries from a set
|
java.util.HashSet<Country> |
RiskMapVerify.getCountriesFromContinent(java.lang.String continent,
java.util.HashMap<Continent,java.util.HashSet<Country>> countriesInAContinent)
Method for getting countries corresponding to a country.
|
java.util.HashMap<Continent,java.util.HashSet<Country>> |
RiskMapVerify.getCountriesInContinent()
Method to get countries in a continent.
|
java.util.HashMap<java.lang.String,Country> |
RiskMapVerify.getCountrySet()
Method for getting all the countries in the country set.
|
| Modifier and Type | Method and Description |
|---|---|
void |
RiskMapGraph.addCountry(Country country)
Method to add a country to the Graph
|
void |
RiskMapGraph.addLinkBetweenCountries(Country source,
Country destination)
Method to add an edge between countries.
|
boolean |
RiskMapGraph.checkAdjacencyOfCountries(Country country1,
Country country2)
Method to check if there exists an adjace ncy between two countries
|
void |
RiskMapGraph.deleteLinkBetweenCountries(Country source,
Country destination)
Method to delete an edge between countries
|
private void |
RiskGraphConnected.depthFirstTraversal(Country startCountry)
Method for traversing the graph for depth first traversal.
|
private void |
RiskGraphConnected.depthFirstTraversalSubGraph(Country startCountry)
Method to traverse subGraph in depth first pattern.
|
private void |
RiskGraphConnected.dfsTraversal2(Country s_country,
Country d_country,
java.util.Set playerowncountries) |
boolean |
RiskGraphConnected.ifPathExists(Country fromCountry,
Country toCountry,
java.util.Set playerowncountries) |
boolean |
RiskMapGraph.removeCountry(Country country)
Method to remove a country
|
| Modifier and Type | Method and Description |
|---|---|
java.util.HashSet<Country> |
RiskMapVerify.getCountriesFromContinent(java.lang.String continent,
java.util.HashMap<Continent,java.util.HashSet<Country>> countriesInAContinent)
Method for getting countries corresponding to a country.
|
void |
RiskMapGraph.setAdjacentCountries(java.util.HashMap<Country,java.util.ArrayList<Country>> adjacentCountries)
Method to set the adjacent countries
|
void |
RiskMapGraph.setAdjacentCountries(java.util.HashMap<Country,java.util.ArrayList<Country>> adjacentCountries)
Method to set the adjacent countries
|
void |
RiskMapGraph.setAllCountries(java.util.HashMap<java.lang.String,Country> allCountries)
Method to the set the country in a set.
|
| Constructor and Description |
|---|
RiskGraphConnected(java.util.Set<Country> countrySet)
Constructor for ConnectedGraph class, which sets initial data for the
class.
|
| Modifier and Type | Field and Description |
|---|---|
(package private) java.util.ArrayList<Country> |
ReinforcementPhase.countriesInContient |
(package private) java.util.ArrayList<Country> |
ReinforcementPhase.playerOwnedContries |
| Modifier and Type | Method and Description |
|---|---|
void |
FortificationPhase.moveArmies(Country country1,
Country country2,
int armiesCount)
Method to move armies between countries owned by the player.
|
| Modifier and Type | Field and Description |
|---|---|
private Country |
BenevolentTest.adjCountry1
Object for Country class
|
private Country |
BenevolentTest.adjCountry2
Object for Country class
|
private Country |
HumanTest.attacking
Object for Country class
|
private Country |
BenevolentTest.country
Object for Country class
|
(package private) Country |
CheaterTest.country1
Object for Country Class
|
(package private) Country |
AggressiveTest.country1
Object for Country Class
|
(package private) Country |
CheaterTest.country2
Object for Country Class
|
(package private) Country |
AggressiveTest.country2
Object for Country Class
|
(package private) Country |
CheaterTest.country3
Object for Country Class
|
(package private) Country |
AggressiveTest.country3
Object for Country Class
|
private Country |
HumanTest.defending
Object for Country class
|
private Country |
Aggressive.strongestCountry
Object of country, which is the strongest country.
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.ArrayList<Country> |
BenevolentTest.adjacentCountries
ArrayList to hold adjacent countries
|
private java.util.ArrayList<Country> |
CheaterTest.adjacentCountries
ArrayList of adjacent countries
|
private java.util.ArrayList<Country> |
AggressiveTest.adjacentCountries
ArrayList of adjacent countries
|
javafx.collections.ObservableList<Country> |
Cheater.attackerCountryList
Object of ObservableList.
|
private java.util.List<Country> |
CheaterTest.attackerCountryList
Object of ObservableList.
|
private java.util.List<Country> |
BenevolentTest.list |
private java.util.List<Country> |
CheaterTest.list
List of countries
|
(package private) java.util.List<Country> |
AggressiveTest.list
List of countries
|
private java.util.ArrayList<Country> |
CheaterTest.playerCountries1
ArrayList of countries owned by player
|
private java.util.ArrayList<Country> |
AggressiveTest.playerCountries1
ArrayList of countries owned by player
|
private java.util.ArrayList<Country> |
CheaterTest.playerCountries2
ArrayList of countries owned by player
|
private java.util.ArrayList<Country> |
AggressiveTest.playerCountries2
ArrayList of countries owned by player
|
| Modifier and Type | Method and Description |
|---|---|
Country |
Aggressive.checkAndFindStrongestIfNoAdjacentCountryToAttack(java.util.List<Country> list)
Method to check and find the strongest country if
no adjacent country to attack.
|
Country |
Benevolent.checkAndFindWeakestIfNoAdjacentCountryToFortify(java.util.List<Country> list)
Method to check and find the weakest country if
no adjacent country to fortify.
|
Country |
Aggressive.findStrongestCountryForReinforcement(java.util.List<Country> list)
Method to find the strongest country for reinforcement.
|
Country |
Benevolent.getStrongestAdjacentCountry(Country country)
Method to find the strongest adjacent country.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Country> |
Random.getAdjacentOwnedCountryList(Country attackingCountry)
Method to get list of adjacent countries owned.
|
java.util.List<Country> |
PlayerBehavior.getDefendingCountryList(Country attackingCountry)
Method to get list of defending countries.
|
java.util.List<Country> |
Benevolent.sortCountryListByArmyCount(java.util.List<Country> list)
Method to sort country list by army count.
|
java.util.List<Country> |
Aggressive.sortCountryListByArmyCount(java.util.List<Country> list)
Method to sort country list by army count.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
Aggressive.attack(Country attacking,
Country defending,
Player player)
Method for Aggressive class for attack.
|
private void |
Random.attack(Country attacking,
Country defending,
Player currentPlayer)
Method for Random class for attack.
|
java.util.List<Country> |
Random.getAdjacentOwnedCountryList(Country attackingCountry)
Method to get list of adjacent countries owned.
|
java.util.List<Country> |
PlayerBehavior.getDefendingCountryList(Country attackingCountry)
Method to get list of defending countries.
|
Country |
Benevolent.getStrongestAdjacentCountry(Country country)
Method to find the strongest adjacent country.
|
boolean |
Human.isAttackMoveValid(Country attacking,
Country defending)
Method to check if the attack move is valid or not.
|
void |
Benevolent.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Benevolent class for reinforcement phase.
|
abstract void |
PlayerBehavior.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for reinforcement phase.
|
void |
Aggressive.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Aggressive class for reinforcement phase.
|
void |
Cheater.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Cheater class for reinforcement phase.
|
void |
Human.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Human class for reinforcement phase.
|
void |
Random.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Random class for reinforcement phase.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Benevolent.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player gamePhase)
Method for Benevolent class for attack phase.
|
void |
Benevolent.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player gamePhase)
Method for Benevolent class for attack phase.
|
abstract void |
PlayerBehavior.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for attack phase.
|
abstract void |
PlayerBehavior.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for attack phase.
|
void |
Aggressive.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Aggressive class for attack phase.
|
void |
Aggressive.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Aggressive class for attack phase.
|
void |
Cheater.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Cheater class for attack phase.
|
void |
Cheater.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Cheater class for attack phase.
|
void |
Human.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Human class for attack phase.
|
void |
Human.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Human class for attack phase.
|
void |
Random.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Random class for attack phase.
|
void |
Random.attackPhase(javafx.scene.control.ListView<Country> attackingCountryList,
javafx.scene.control.ListView<Country> defendingCountryList,
Player currentPlayer)
Method for Random class for attack phase.
|
Country |
Aggressive.checkAndFindStrongestIfNoAdjacentCountryToAttack(java.util.List<Country> list)
Method to check and find the strongest country if
no adjacent country to attack.
|
Country |
Benevolent.checkAndFindWeakestIfNoAdjacentCountryToFortify(java.util.List<Country> list)
Method to check and find the weakest country if
no adjacent country to fortify.
|
Country |
Aggressive.findStrongestCountryForReinforcement(java.util.List<Country> list)
Method to find the strongest country for reinforcement.
|
boolean |
Benevolent.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountry,
Player currentPlayer)
Method for Benevolent class for fortification phase.
|
boolean |
Benevolent.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountry,
Player currentPlayer)
Method for Benevolent class for fortification phase.
|
abstract boolean |
PlayerBehavior.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountry,
javafx.scene.control.ListView<Country> adjCountry,
Player playerPlaying)
Method for fortification phase.
|
abstract boolean |
PlayerBehavior.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountry,
javafx.scene.control.ListView<Country> adjCountry,
Player playerPlaying)
Method for fortification phase.
|
boolean |
Aggressive.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Aggressive class for fortification phase.
|
boolean |
Aggressive.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Aggressive class for fortification phase.
|
boolean |
Cheater.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Cheater class for fortification phase.
|
boolean |
Cheater.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Cheater class for fortification phase.
|
boolean |
Human.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player playerPlaying)
Method for Human class for fortification phase.
|
boolean |
Human.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player playerPlaying)
Method for Human class for fortification phase.
|
boolean |
Random.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Random class for fortification phase.
|
boolean |
Random.fortificationPhase(javafx.scene.control.ListView<Country> selectedCountryList,
javafx.scene.control.ListView<Country> adjCountryList,
Player currentPlayer)
Method for Random class for fortification phase.
|
boolean |
Benevolent.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method for Benevolent class for if player can attack.
|
abstract boolean |
PlayerBehavior.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method for if player can attack.
|
boolean |
Aggressive.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method for Aggressive class for if player can attack.
|
boolean |
Cheater.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method for Cheater class for if player can attack.
|
boolean |
Human.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method to check if the player can attack or not.
|
boolean |
Random.playerCanAttack(javafx.scene.control.ListView<Country> countries)
Method for Random class for if player can attack.
|
void |
Benevolent.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Benevolent class for reinforcement phase.
|
abstract void |
PlayerBehavior.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for reinforcement phase.
|
void |
Aggressive.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Aggressive class for reinforcement phase.
|
void |
Cheater.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Cheater class for reinforcement phase.
|
void |
Human.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Human class for reinforcement phase.
|
void |
Random.reinforcementPhase(javafx.collections.ObservableList<Country> countryList,
Country country,
Player currentPlayer)
Method for Random class for reinforcement phase.
|
java.util.List<Country> |
Benevolent.sortCountryListByArmyCount(java.util.List<Country> list)
Method to sort country list by army count.
|
java.util.List<Country> |
Aggressive.sortCountryListByArmyCount(java.util.List<Country> list)
Method to sort country list by army count.
|


{% extends 'layout.html' %} {% block content %}
Route /get-example
signs and sends a GET
request
to /api/get-example
, which validates the request signature and responds
with a famous mangled phrase.
{{ request|trim }}
{{ response|trim }}{% endblock %}


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Immersion Canada Corporation
Mailing Address:
1105-4200 Saint-Laurent BlvdMONTRÉAL, Quebec
H2W 2R2
Location Address:
1105-4200 Saint-Laurent BlvdMONTRÉAL, Quebec
H2W 2R2
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Founded in 1993, Immersion Corporation is a recognized leader in developing, licensing, and marketing digital touch technology and products. Using Immersions advanced touch feedback technology, electronic user interfaces can be made more productive, compelling, entertaining, or safer. Immersions technology is deployed across automotive, entertainment, industrial controls, medical training, mobility, and three-dimensional simulation markets. Immersions patent portfolio includes over 700 issued or pending patents in the U.S. and other countries.
Immersion develops, licenses, and markets haptic technologies that bring the sense of touch to the digital world. We help to create levels of realism that allow training environments, digital controls, gaming, and virtual interaction to be more engaging, intuitive, entertaining, or productive.
Full profile
Full profile
Contact information
Company description
334512 - Measuring, Medical and Controlling Devices Manufacturing
Product / Service / Licensing
www.immersion.com/touchscreen/
Two or more Impulse Engines can be interfaced within a single system to create exciting multiuser force feedback experiences from games to group participation in simulated surgeries.
- Richer, and even more realistic and complex force feedback effects. This is possible by supplying a much broader frequency range and by exerting more precise control over the vibration actuator. Easy-to-use authoring tools allow developers to fully take advantage of these capabilities.
- Faster response/lower latency for a tighter synchronization with onscreen graphic and audio events.
- Lower battery consumption for equivalent sized motors; less weight (a convenience for implementing motion control); and deployment in the same or less space.
- Backward compatibility for tactile effects in games designed for current dual-motor systems.
- No increase in cost, and in many cases, lower cost, by reducing two motors to only one actuator.
The CyberGrasp device is a lightweight, force-reflecting exoskeleton that fits over a CyberGlove(R) data glove (wired version) and adds resistive force feedback to each finger. With the CyberGrasp force feedback system, users are able to feel the size and shape of computer-generated 3D objects in a simulated virtual world. More at http://www.immersion.com/3d/products/cyber_grasp.php
5930-Switches
5963-Electronic Modules
6515-Medical and Surgical Instruments, Equipment, and Supplies
6910-Training Aids
6930-Operation Training Devices
AZ00-Other Research and Development
Technology profile
Sector information
Key / Major clients:
Immersion develops business relationships to support enhanced user experiences for a very broad range of industries. These relationships vary, and include our establishing connections through industry alliance programs and through marketing, supply, or license agreements.See http://www.immersion.com/corporate/partners/ for an up-to-date list of major partners.
Success stories:
BMW iDrive controllerLeading auto manufacturer, BMW, has licensed Immersion's TouchSense technology to create the automotive industry's first intuitive information and control system called iDrive. This system allows drivers to access numerous operations such as climate, entertainment, and navigation with a single control. ALPS Electric, the world's largest electronics components supplier, manufactures the iDrive Controller and is a preferred supplier of TouchSense-enabled controls.
Vascular Access Medical Training Simulator
The CathSim® AccuTouch® System was introduced in 1998 and over 700 systems have been installed worldwide since that time. Customers report the system supplies a highly realistic learning environment that teaches the proper technique and sequencing for IV access. It exposes students to a wide variety of cases, and in that way, improves student confidence and understanding. In addition, the system has brought cost savings, due to less need for supplies, and instructor time savings, because more independent learning is possible. Case studies detailing use of the system at the following organizations can be found at www.immersion.com/medical/products/vascular/case_studies.php:
- Children's Hospital of Pittsburgh
- Indiana University School of Medicine
- Madisonville Community College
- Montgomery County, Maryland Fire Department
- University of Medicine and Dentistry of New Jersey
Bronchoscopy Medical Traning Simulator
The Endoscopy AccuTouch® System with bronchoscopy modules was introduced in 1999, and since that time hundreds of customers have installed the system into their training programs. They report that the system provides faster learning and more realistic experiences, no-risk training, and therefore improved patient safety, increased student satisfaction, and the ability to act as a qualification tool for clinical procedures. Some of their experiences can be found at www.immersion.com/medical/products/endoscopy/bronch/case_studies.php, including from:
- Northwestern University
- Beth Israel Deaconess Medical Center
- University of Chicago Hospitals
Lower GI Medical Training Simulator
The Endoscopy AccuTouch® System with lower GI modules was introduced in 1999, and since that time, hundreds of customers have integrated the system into their training programs. They report that the systems force feedback action (haptics) makes the procedures feel real, and that its realistic learning environment helps reduce the time needed for residents to gain proficiency. The system allows independent learning in nonthreatening situations, and promotes patient safety through developing the skills needed to perform colonoscopies faster. Some of our customers experiences are documented at www.immersion.com/medical/products/endoscopy/lgi/case_studies.php, including those from:
- Philadelphia Gastroenterology Training Group
- Rush University Medical Center
- Ft. Wayne Medical Education Program
- University of Aberdeen
Endovascular Medical Trainint Simulator
Users of the Endovascular AccuTouch® System report that the system provides a very safe, controlled environment in which criterion-based training can be established to control the learning process. They further believe that the system helps reduce the learning curve and could minimize complications and the costs associated with them. The systems cases progressively increase in difficulty to expand learning and help transfer good technique to real procedures. Two doctors who used the system in a training program hosted by Medtronic, a co-developer of the system, have reported on their experiences, which can be found at www.immersion.com/medical/products/endovascular/case_studies.php:
- Dr. Alan Yeung, Stanford University
- Dr. Campbell Rogers, Brigham & Womens Hospital
Hysteroscopy Medical Training Simulator
The Hysteroscopy AccuTouch® System was introduced in 2004 and is the first virtual reality trainer of its kind. The System uses actual instruments augmented with force feeback to navigate within a 3D virtual model. Early reports indicate that it will become a welcome addition to gynecological training programs. Read the experiences of two users of the system at www.immersion.com/medical/products/hysteroscopy/case_studies.php:
- Banner Good Samaritan Medical Center
- Dr. Malcolm G. Munro
3D Interaction Products
Users of Immersion's 3D interaction products have contributed numerous case studies, which can be found at www.immersion.com/3d/case_study_gallery/
MicroScribe Case Studies
Read MicroScribe® case studies noted here:
- How users quickly and easily produce realistic computer models for graphic arts applications at www.immersion.com/digitizer/applications/graphic-arts/case-studies/
-How MicroScribe® portable CMMs have helped users complete manufacturing and reverse engineering projects at www.immersion.com/digitizer/applications/reverse-engineering/case-studies/
- How users produce highly precise and accurate computer models for medical and scientific applications with the MicroScribe System here: www.immersion.com/digitizer/applications/medical/case-studies/index.php
- And how MicroScribe portable CMMs have been used to inspect and measure parts with exacting specifications here: www.immersion.com/digitizer/applications/metrology/case-studies/index.php
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
334512 - Measuring, Medical and Controlling Devices Manufacturing
Products, services and licensing
Product / Service / Licensing
www.immersion.com/touchscreen/
Two or more Impulse Engines can be interfaced within a single system to create exciting multiuser force feedback experiences from games to group participation in simulated surgeries.
- Richer, and even more realistic and complex force feedback effects. This is possible by supplying a much broader frequency range and by exerting more precise control over the vibration actuator. Easy-to-use authoring tools allow developers to fully take advantage of these capabilities.
- Faster response/lower latency for a tighter synchronization with onscreen graphic and audio events.
- Lower battery consumption for equivalent sized motors; less weight (a convenience for implementing motion control); and deployment in the same or less space.
- Backward compatibility for tactile effects in games designed for current dual-motor systems.
- No increase in cost, and in many cases, lower cost, by reducing two motors to only one actuator.
The CyberGrasp device is a lightweight, force-reflecting exoskeleton that fits over a CyberGlove(R) data glove (wired version) and adds resistive force feedback to each finger. With the CyberGrasp force feedback system, users are able to feel the size and shape of computer-generated 3D objects in a simulated virtual world. More at http://www.immersion.com/3d/products/cyber_grasp.php
5930-Switches
5963-Electronic Modules
6515-Medical and Surgical Instruments, Equipment, and Supplies
6910-Training Aids
6930-Operation Training Devices
AZ00-Other Research and Development
Technology
Technology profile
Sector
Sector information
Key / Major clients:
Immersion develops business relationships to support enhanced user experiences for a very broad range of industries. These relationships vary, and include our establishing connections through industry alliance programs and through marketing, supply, or license agreements.See http://www.immersion.com/corporate/partners/ for an up-to-date list of major partners.
Success stories:
BMW iDrive controllerLeading auto manufacturer, BMW, has licensed Immersion's TouchSense technology to create the automotive industry's first intuitive information and control system called iDrive. This system allows drivers to access numerous operations such as climate, entertainment, and navigation with a single control. ALPS Electric, the world's largest electronics components supplier, manufactures the iDrive Controller and is a preferred supplier of TouchSense-enabled controls.
Vascular Access Medical Training Simulator
The CathSim® AccuTouch® System was introduced in 1998 and over 700 systems have been installed worldwide since that time. Customers report the system supplies a highly realistic learning environment that teaches the proper technique and sequencing for IV access. It exposes students to a wide variety of cases, and in that way, improves student confidence and understanding. In addition, the system has brought cost savings, due to less need for supplies, and instructor time savings, because more independent learning is possible. Case studies detailing use of the system at the following organizations can be found at www.immersion.com/medical/products/vascular/case_studies.php:
- Children's Hospital of Pittsburgh
- Indiana University School of Medicine
- Madisonville Community College
- Montgomery County, Maryland Fire Department
- University of Medicine and Dentistry of New Jersey
Bronchoscopy Medical Traning Simulator
The Endoscopy AccuTouch® System with bronchoscopy modules was introduced in 1999, and since that time hundreds of customers have installed the system into their training programs. They report that the system provides faster learning and more realistic experiences, no-risk training, and therefore improved patient safety, increased student satisfaction, and the ability to act as a qualification tool for clinical procedures. Some of their experiences can be found at www.immersion.com/medical/products/endoscopy/bronch/case_studies.php, including from:
- Northwestern University
- Beth Israel Deaconess Medical Center
- University of Chicago Hospitals
Lower GI Medical Training Simulator
The Endoscopy AccuTouch® System with lower GI modules was introduced in 1999, and since that time, hundreds of customers have integrated the system into their training programs. They report that the systems force feedback action (haptics) makes the procedures feel real, and that its realistic learning environment helps reduce the time needed for residents to gain proficiency. The system allows independent learning in nonthreatening situations, and promotes patient safety through developing the skills needed to perform colonoscopies faster. Some of our customers experiences are documented at www.immersion.com/medical/products/endoscopy/lgi/case_studies.php, including those from:
- Philadelphia Gastroenterology Training Group
- Rush University Medical Center
- Ft. Wayne Medical Education Program
- University of Aberdeen
Endovascular Medical Trainint Simulator
Users of the Endovascular AccuTouch® System report that the system provides a very safe, controlled environment in which criterion-based training can be established to control the learning process. They further believe that the system helps reduce the learning curve and could minimize complications and the costs associated with them. The systems cases progressively increase in difficulty to expand learning and help transfer good technique to real procedures. Two doctors who used the system in a training program hosted by Medtronic, a co-developer of the system, have reported on their experiences, which can be found at www.immersion.com/medical/products/endovascular/case_studies.php:
- Dr. Alan Yeung, Stanford University
- Dr. Campbell Rogers, Brigham & Womens Hospital
Hysteroscopy Medical Training Simulator
The Hysteroscopy AccuTouch® System was introduced in 2004 and is the first virtual reality trainer of its kind. The System uses actual instruments augmented with force feeback to navigate within a 3D virtual model. Early reports indicate that it will become a welcome addition to gynecological training programs. Read the experiences of two users of the system at www.immersion.com/medical/products/hysteroscopy/case_studies.php:
- Banner Good Samaritan Medical Center
- Dr. Malcolm G. Munro
3D Interaction Products
Users of Immersion's 3D interaction products have contributed numerous case studies, which can be found at www.immersion.com/3d/case_study_gallery/
MicroScribe Case Studies
Read MicroScribe® case studies noted here:
- How users quickly and easily produce realistic computer models for graphic arts applications at www.immersion.com/digitizer/applications/graphic-arts/case-studies/
-How MicroScribe® portable CMMs have helped users complete manufacturing and reverse engineering projects at www.immersion.com/digitizer/applications/reverse-engineering/case-studies/
- How users produce highly precise and accurate computer models for medical and scientific applications with the MicroScribe System here: www.immersion.com/digitizer/applications/medical/case-studies/index.php
- And how MicroScribe portable CMMs have been used to inspect and measure parts with exacting specifications here: www.immersion.com/digitizer/applications/metrology/case-studies/index.php


Finished Chores
Unsatisfied
Satisfied
{{$index + 1}}.
{{task.f_name}} {{task.l_name}}
Satisfy
Unsatisfy
There are currently no finished chores
No Search Results Found


I try to keep up with all the articles on Fangraphs every day. But some days, I don’t have time to read read everything.
For these days, I created an automated script to scrape all the articles on Fangraphs and send an email attachment containing the articles.
Cron and BeautifulSoup
To scrape the articles, I used the package BeautifulSoup.
This is the workflow:
One of the challenges with parsing and writing the articles was handling non-utf-8 symbols in the articles. To handle this, I used the string function
.encode('utf-8')
to get rid of all the extra symbols.
To send the email, I used the email library.
I had to enable Less secure app access on my gmail account for the script to work.
I used the software utility cron to run the script daily.
# scrape fangraphs articles daily at 11 pm
0 23 * * * . $HOME/.bash_profile; /Users/eric/anaconda/envs/python3.6/bin/python /Users/eric/ds/fangraphs/scripts/c_run_all.py >> /Users/eric/ds/fangraphs/scripts/fangraphs.log 2>&1
I since I used environment variables and a conda virtual enviornment in the script, I had to prepend the following the following commands to my Python script call:
# activate enviornment variables
. $HOME/.bash_profile
# use a conda virtual environment to run the script
/Users/eric/anaconda/envs/python3.6/bin/python
I created an automated process to run daily that scrapes all Fangraphs articles, write them to a file, and send an email attachement with the articles.
The code for the project can be found on my Github.


This aspp let you merge various ical documents (.ics) into one. Upon submission of your documents, the server will automatically send you back the merge ical for download.
Select from your computer
Or fetch from URL


Coacal151.github.io
Juki LK-1903B Juki Industrial Sewing Machines. View and Download JUKI LK-1903B instruction manual online. LK-1903B Sewing Machine pdf manual download. Also for: Lk-1903br35. JUKI MS-3580 Series – Find Sewing Machine. Computer-controlled, High-speed, Lockstitch, Button Sewing. This Juki MS-3580 Series demonstrates increased feed efficiency to handle extra heavy weight JUKI LK-1903B Computer-controlled, High-speed. MF7500 P8 J - JUKI Mind Technology. Juki Bedienungsanleitungen – Busche. Juki Überdeck Maschinen Juki Kettenstich Maschinen Juki CNC Nähfeldautomaten. LK1910_1920.pdf 4.5 M LK_1930.pdf 6.5 M AMS-210E-de.pdf Higher productivity The Juki LK-1903B achieves sewing speed of 2,700sti/min. The machine’s starting, stopping, thread-trimming and automatic presser. Button Stitching Machine JUKI LK-1903B,reliable quality.
JUKI LK-1903B INSTRUCTION MANUAL Pdf Download. Juki LK-1903B Rigo Group. Loading. Unsubscribe from Rigo Group? Juki - LK-1903BBS301 Industrial Button Sewing Machine - Duration:. Computer-controlled, High-speed, Lockstitch, Button Sewing Machine LK-1903A-SS-301 (Table stand is optionally available.) LK-1903A LK-1903A/BR35. LK-1903B Series Computer-controlled, High-speed, Lockstitch, Button Sewing Machine Higher productivity. Excellent seam quality. LK-1903B Series.  They are ready to use.used sewing machine dealers in China ,stock. Description Computer-controlled, High-speed, Lockstitch, Button Sewing Machine. Higher productivity The Juki LK-1903B achieves sewing speed of 2,700sti/min. JUKI LK-1903B – Find Sewing Machine.


Graphene Modal
A simple, lightweight modal / modal window. Built for performance.
Auto Modal Example
Ajax Form Modal Example
Cookie Modal Example
Image Modal Example


Options
- A
- C
- G
- U
To add a hydrogen bond, first press "N". Then click on the nucleotides from which to which you want to create the bond.
The Dot-Bracket Notation will be changed to fit the new structure automatically.
Color of selected nucleic acids


3
3
E-Commerce
Template
Logo
Log In / Sign Up
About
Contact
Home
Log Out
John Smith
Help
About
Contact
Home
Category
Image
Damesfietsen
De heren fiets is een geliefd product!
Meer
Image
Damesfiets
De dames fiets is een geliefd product!
Meer
Image
Kinder fiets
De kinder fiets is een geliefd product!
Meer
Image
Electrische dames fiets
De Electrische heren fiets is een geliefd product!


{% extends "_layout.html" %} {% set active_page = "index" %} {% block title %}Index{% endblock %} {% block content %}
This site, created in 48 hours during GovHack 2014, aims to help you discover the artwork that's all around you.
Artifacts is an ambient information display, designed to be presented on large displays in public locations around Canberra.
A list of public art in Canberra is available from the ACT government, but many people don't know that it exists.
By making it accessible via Twitter, we aim to raise awareness of the art in the region.
Created with love (and caffeine) by the @makehackvoid team in Canberra, Australia
Show Me!


WVLT News Crews share their secrets to the perfect turkey
by Megan SadlerKNOXVILLE, Tenn. (WVLT) — What's your secret to the perfect turkey? The WVLT News crew is spilling the beans on their secret recipes for a delicious bird.
- Executive producer
Dave says a little seasoned butter under the skin helps keep the turkey moist and flavorful.
Britanny Tarwater - WVLT News Anchor
Brittany says her family is planning to deep fry the turkey this year.
Chris Milano - WLVT News reporter and producer
"Microwave it."
Megan Sadler - Digital Producer
Brining the turkey in a salt bath with aromatic spices before baking helps keep the turkey moist and full of flavor. You can find instructions on how to complete this process here.
Tony Budnick - WVLT News at 4 producer
"I've never made a turkey, but the only way to eat it is by covering it with my homemade cranberry sauce."
Heather Haley - Chief Meteorologist
For a small gathering, turkey and stuffing in a slow cooker!
A small turkey (generally around 3 pounds, depending on the size of your slow cooker), plus a box of stuffing mix, half a cup of chicken broth, and 2 tablespoons of butter.
Put your turkey, then spread out your boxed stuffing mix around the turkey. Pour your half cup of chicken broth on top and melted butter. Cook on High for 4 hours, and check to make sure your turkey has reached 165° internal temperature before serving.
Ted Hall - WVLT News Anchor
"We do it as a family, my wife Lesa does most of it starting very early in the morning.
We help by saying, mmmmmm that smells good and eating.
Actually she does the most but our kids and I do chip in where we can (trying not to get in the way).
We always start playing Christmas music that morning while watching the parade and setting the table.
The must haves, turkey, sweet potatoes with marshmallows, mashed potatoes, green bean casserole, gravy and plenty of pumpkin pie.
We always go around the table (usually some guests join us) and say something we're thankful for.
After lunch, football, board games and cards then end Thanksgiving by watching Elf.
One of our favorite days every year!
Kayla Fuller Photojournalist
"Here's how I do it: I make any side dish and then drive to my grandparents, and the turkey will be sitting on the table ready to eat! It's amazing how that works!"
Tell us your best secrets and upload a photo of your family's Thanksgiving feast below.