\usepackage[vmargin=1in,hmargin=1in]{geometry}
taxize
is a taxonomic toolbelt for R. taxize
wraps APIs for a large suite of taxonomic databases availab on the web.
taxize
First, install and load taxize
into the R session.
install.packages("taxize")
library(taxize)
##
##
## New to taxize? Tutorial at http://ropensci.org/tutorials/taxize_tutorial.html
## citation(package='taxize') for the citation for this package
## API key names have changed. Use tropicosApiKey, eolApiKey, ubioApiKey, and pmApiKey in your .Rprofile file.
## Use suppressPackageStartupMessages() to suppress these startup messages in the future
Advanced users can also download and install the latest development copy from GitHub.
This is a common task in biology. We often have a list of species names and we want to know a) if we have the most up to date names, b) if our names are spelled correctly, and c) the scientific name for a common name. One way to resolve names is via the Global Names Resolver (GNR) service provided by the Encyclopedia of Life. Here, we are searching for two misspelled names:
temp <- gnr_resolve(names = c("Helianthos annus", "Homo saapiens"))
## Loading required package: rjson
temp[, -c(1, 4)]
## matched_name data_source_title
## 1 Helianthus annuus L. Catalogue of Life
## 2 Helianthus annus L. EOL
## 3 Helianthus annus EOL
## 4 Helianthus annus uBio NameBank
## 5 Homo sapiens Linnaeus, 1758 Catalogue of Life
The correct spellings are Helianthus annuus and Homo sapiens. Another approach uses the Taxonomic Name Resolution Service via the Taxosaurus API developed by iPLant and the Phylotastic organization. In this example, we provide a list of species names, some of which are misspelled, and we'll call the API with the tnrs function.
mynames <- c("Helianthus annuus", "Pinus contort", "Poa anua", "Abis magnifica",
"Rosa california", "Festuca arundinace", "Sorbus occidentalos", "Madia sateva")
tnrs(query = mynames, source = "iPlant_TNRS")[, -c(5:7)]
## Calling http://taxosaurus.org/retrieve/14512c6611cb44a5c4992ac72df8f75f
## submittedname acceptedname sourceid score
## 7 Helianthus annuus Helianthus annuus iPlant_TNRS 1
## 4 Pinus contort Pinus contorta iPlant_TNRS 0.98
## 5 Poa anua Poa annua iPlant_TNRS 0.96
## 3 Abis magnifica Abies magnifica iPlant_TNRS 0.96
## 8 Rosa california Rosa californica iPlant_TNRS 0.99
## 2 Festuca arundinace Festuca arundinacea iPlant_TNRS 0.99
## 1 Sorbus occidentalos Sorbus occidentalis iPlant_TNRS 0.99
## 6 Madia sateva Madia sativa iPlant_TNRS 0.97
It turns out there are a few corrections: e.g., Madia sateva should be Madia sativa, and Rosa california should be Rosa californica. Note that this search worked because fuzzy matching was employed to retrieve names that were close, but not exact matches. Fuzzy matching is only available for plants in the TNRS service, so we advise using EOL's Global Names Resolver if you need to resolve animal names.
taxize takes the approach that the user should be able to make decisions about what resource to trust, rather than making the decision. Both the EOL GNR and the TNRS services provide data from a variety of data sources. The user may trust a specific data source, thus may want to use the names from that data source. In the future, we may provide the ability for taxize to suggest the best match from a variety of sources.
Another common use case is when there are many synonyms for a species. In this example, we have three synonyms of the currently accepted name for a species.
mynames <- c("Helianthus annuus ssp. jaegeri", "Helianthus annuus ssp. lenticularis",
"Helianthus annuus ssp. texanus")
tsn <- get_tsn(mynames)
library(plyr)
ldply(tsn, itis_acceptname)
submittedtsn acceptedname acceptedtsn
1 525928 Helianthus annuus 36616
2 525929 Helianthus annuus 36616
3 525930 Helianthus annuus 36616
Another task biologists often face is getting higher taxonomic names for a taxa list. Having the higher taxonomy allows you to put into context the relationships of your species list. For example, you may find out that species A and species B are in Family C, which may lead to some interesting insight, as opposed to not knowing that Species A and B are closely related. This also makes it easy to aggregate/standardize data to a specific taxonomic level (e.g., family level) or to match data to other databases with different taxonomic resolution (e.g., trait databases).
A number of data sources in taxize provide the capability to retrieve higher taxonomic names, but we will highlight two of the more useful ones: Integrated Taxonomic Information System (ITIS) and National Center for Biotechnology Information (NCBI). First, we'll search for two species, Abies procera} and Pinus contorta* within ITIS.
specieslist <- c("Abies procera", "Pinus contorta")
classification(specieslist, db = "itis")
##
## Retrieving data for taxon 'Abies procera'
##
##
## Retrieving data for taxon 'Pinus contorta'
## $`Abies procera`
## name rank
## 1 Plantae Kingdom
## 2 Viridaeplantae Subkingdom
## 3 Streptophyta Infrakingdom
## 4 Tracheophyta Division
## 5 Spermatophytina Subdivision
## 6 Gymnospermae Infradivision
## 7 Pinopsida Class
## 8 Pinales Order
## 9 Pinaceae Family
## 10 Abies Genus
## 11 Abies procera Species
##
## $`Pinus contorta`
## name rank
## 1 Plantae Kingdom
## 2 Viridaeplantae Subkingdom
## 3 Streptophyta Infrakingdom
## 4 Tracheophyta Division
## 5 Spermatophytina Subdivision
## 6 Gymnospermae Infradivision
## 7 Pinopsida Class
## 8 Pinales Order
## 9 Pinaceae Family
## 10 Pinus Genus
## 11 Pinus contorta Species
##
## attr(,"class")
## [1] "classification"
## attr(,"db")
## [1] "itis"
It turns out both species are in the family Pinaceae. You can also get this type of information from the NCBI by doing classification(specieslist, db = 'ncbi')
.
Instead of a full classification, you may only want a single name, say a family name for your species of interest. The function *tax_name} is built just for this purpose. As with the classification
function you can specify the data source with the db
argument, either ITIS or NCBI.
tax_name(query = "Helianthus annuus", get = "family", db = "ncbi")
##
## Retrieving data for taxon 'Helianthus annuus'
## family
## 1 Asteraceae
I may happen that a data source does not provide information on the queried species, than one could take the result from another source and union the results from the different sources.
As mentioned most databases use a numeric code to reference a species. A general workflow in taxize is: Retrieve Code for the queried species and then use this code to query more data/information.
Below are a few examples. When you run these examples in R, you are presented with a command prompt asking for the row that contains the name you would like back; that output is not printed below for brevity. In this example, the search term has many matches. The function returns a data.frame of the matches, and asks for the user to input what row number to accept.
get_tsn(searchterm = "Heliastes", searchtype = "sciname")
##
## Retrieving data for taxon 'Heliastes'
## target tsn
## 1 Heliastes bicolor 615238
## 2 Heliastes chrysurus 615250
## 3 Heliastes cinctus 615573
## 4 Heliastes dimidiatus 615257
## 5 Heliastes hypsilepis 615273
## 6 Heliastes immaculatus 615639
## 7 Heliastes opercularis 615300
## 8 Heliastes ovalis 615301
##
## More than one TSN found for taxon 'Heliastes'!
##
## Enter rownumber of taxon (other inputs will return 'NA'):
##
## Input accepted, took taxon 'Heliastes bicolor'.
## [1] "615238"
## attr(,"match")
## [1] "found"
## attr(,"class")
## [1] "tsn"
In another example, you can pass in a long character vector of taxonomic names:
splist <- c("annona cherimola", "annona muricata", "quercus robur")
get_tsn(searchterm = splist, searchtype = "sciname")
##
## Retrieving data for taxon 'annona cherimola'
##
##
## Retrieving data for taxon 'annona muricata'
##
##
## Retrieving data for taxon 'quercus robur'
## [1] "506198" "18098" "19405"
## attr(,"match")
## [1] "found" "found" "found"
## attr(,"class")
## [1] "tsn"
If someone is not a taxonomic specialist on a particular taxon he likely does not know what children taxa are within a family, or within a genus. This task becomes especially unwieldy when there are a large number of taxa downstream. You can of course go to a website like Wikispecies or Encyclopedia of Life to get downstream names. However, taxize provides an easy way to programatically search for downstream taxa, both for the Catalogue of Life (CoL) and the Integrated Taxonomic Information System. Here is a short example using the CoL in which we want to find all the species within the genus Apis (honey bees).
col_downstream(name = "Apis", downto = "Species")[[1]]
##
## childtaxa_id childtaxa_name childtaxa_rank
## 1 6971712 Apis andreniformis Species
## 2 6971713 Apis cerana Species
## 3 6971714 Apis dorsata Species
## 4 6971715 Apis florea Species
## 5 6971716 Apis koschevnikovi Species
## 6 6845885 Apis mellifera Species
## 7 6971717 Apis nigrocincta Species
The result from the above call to col_downstream()
is a data.frame that gives a number of columns of different information.
Biologist often need to match different sets of data tied to species. For example, trait-based approaches are a promising tool in ecology. One problem is that abundance data must be matched with trait databases. These two data tables may contain species information on different taxonomic levels and possibly data must be aggregated to a joint taxonomic level, so that the data can be merged. taxize can help in this data-cleaning step, providing a reproducible workflow:
We can use the mentioned classification
-function to retrieve the taxonomic hierarchy and then search the hierarchies up- and downwards for matches. Here is an example to match a species with names on three different taxonomic levels.
A <- "gammarus roeseli"
B1 <- "gammarus roeseli"
B2 <- "gammarus"
B3 <- "gammaridae"
A_clas <- classification(A, db = 'ncbi')
##
## Retrieving data for taxon 'gammarus roeseli'
B1_clas <- classification(B1, db = 'ncbi')
##
## Retrieving data for taxon 'gammarus roeseli'
B2_clas <- classification(B2, db = 'ncbi')
##
## Retrieving data for taxon 'gammarus'
B3_clas <- classification(B3, db = 'ncbi')
##
## Retrieving data for taxon 'gammaridae'
B1[match(A, B1)]
## [1] "gammarus roeseli"
A_clas[[1]]$Rank[tolower(A_clas[[1]]$ScientificName) %in% B2]
## NULL
A_clas[[1]]$Rank[tolower(A_clas[[1]]$ScientificName) %in% B3]
## NULL
If we find a direct match (here Gammarus roeseli), we are lucky. But we can also match Gammaridae with Gammarus roeseli, but on a lower taxonomic level. A more comprehensive and realistic example (matching a trait table with an abundance table) is given in the vignette on matching.


foo
foo
foo
| test emphasis (span) |
| test emphasis (span) |
|
test emphasis (block) |
| * this is not a list item |
| * this is not a list item |
|
This text is no code block: if it was, the
closing <div>
would be too and the HTML block
would be invalid.
Markdown content in HTML blocks is assumed to be indented the same as the block opening tag.
This should be the third paragraph after the header.
</div>
s in Markdown code span and blockThis is a code block however:
</div>
Funny isn't it? Here is a code span: </div>
.
Some text
This is a code block.
This is not a code block since Markdown parse paragraph
content as span. Code spans like </p>
are allowed though.
Hello world
Some span content.
| Hello World! ============ Hello World! |


ASVerticalAlignment Constants Reference
| Declared in | ASStackLayoutDefines.h |
|---|
ASVerticalAlignment
Orientation of children along vertical axis
Definition
typedef NS_ENUM(NSUInteger, ASVerticalAlignment ) {
ASVerticalAlignmentNone,
ASVerticalAlignmentTop,
ASVerticalAlignmentCenter,
ASVerticalAlignmentBottom,
ASAlignmentTop = ASVerticalAlignmentTop,
ASAlignmentCenter = ASVerticalAlignmentCenter,
ASAlignmentBottom = ASVerticalAlignmentBottom,
};
Constants
ASVerticalAlignmentNone
-
No alignment specified. Default value
Declared In
ASStackLayoutDefines.h
. ASVerticalAlignmentTop
-
Top aligned
Declared In
ASStackLayoutDefines.h
. ASVerticalAlignmentCenter
-
Center aligned
Declared In
ASStackLayoutDefines.h
. ASVerticalAlignmentBottom
-
Bottom aligned
Declared In
ASStackLayoutDefines.h
. ASAlignmentTop
-
Use ASVerticalAlignmentTop instead (Deprecated: Use ASVerticalAlignmentTop instead)
Declared In
ASStackLayoutDefines.h
. ASAlignmentCenter
-
Use ASVerticalAlignmentCenter instead (Deprecated: Use ASVerticalAlignmentCenter instead)
Declared In
ASStackLayoutDefines.h
. ASAlignmentBottom
-
Use ASVerticalAlignmentBottom instead (Deprecated: Use ASVerticalAlignmentBottom instead)
Declared In
ASStackLayoutDefines.h
.
Declared In
ASStackLayoutDefines.h


a jj.
i'm all sure to we definitely need to do the time has come in this time
it's time for a jingle
okay enough
we could catch up yes anything something happening this week
no let's move on
oh i'm just kidding what happened this week is exciting i turned forty
mover you did one year older and yet everyone's commented on how you don't
seem to age. They have. What's your secret? Um, married to a younger man. That's what
it is. Yep. Keeps me young, keeps me hopping. You're only as young as a man that you feel.
What? Moving right along. Well, I noticed something different about your birthday this
year. Okay. Let me hear from my perspective. Sure.
So generally speaking, Christmas and birthdays have been something that's been very difficult
for you to step into and enjoy for a number of reasons.
Yes.
The difficulty with that is you usually bring a cloud with you over your birthdays to the
point where it doesn't matter how much effort I put in, I still feel you feel underwhelmed
by it.
And this year's felt completely different.

I did have a good time and I did feel celebrated.
I would say it is definitely fair to say that birthdays and Christmas are usually difficult.
But I think it's been getting better over the last couple of years.
But certainly this year, I think was the best and you pulled off surprising me, didn't even
have a foggy as clue.
That's right.
You never thought it looked that good in the tars and I have a fit.
It worked. Thank you, Amazon.
Sorry.
And we went to the cheesecake factory that just opened your house.
Right, which is dangerous.
So dangerous. We don't need the cheesecake factory.
You know, at least with the cheesecake factory being in green hills,
it was a half hour drive up there and then probably a half hour to 40 minute wait.
And so you're like, should we get the cheesecake factory?
We're like, eh, no, what's up, all the going.
where this one is round the corner.
It's really not good.
And those corn tamales, I'm convinced that they're really unhealthy for us,
but they're so yummy.
Well, you don't need convinced.
It should be blending the obvious, but they are delicious.
I'm going to try and figure out a healthy version of them.
It is.
But you enjoyed yourself.
I did.
I really enjoyed myself a lot.
And you got tons of happy comments on Facebook and cards.
I did.
I was on my actual birthday.
I must have got 40 or 50 texts and then like over 200 messages on Facebook to the point
where I asked you if you had asked people to text me and because I was like completely
overwhelmed in a really good way.
I just I laid in bed on my birthday evening as I was going to bed and I read all these
Facebook comments and I just cried and I just felt really grateful and loved and.
Sm
a little happens when you change your belief expectation cycle.
Isn't it?
Yeah.
It's amazing.
I love that.
What did you buy today with all your birthday money that you're super excited about?
I can't wait for it to arrive.
It's called a Phillips air fryer.
And it literally fries the air.
No.
No.
It uses air.
It basically can make anything you can make in a deep fryer, but it only needs one tablespoon of oil.
And the rest it just uses hot air so it's just way healthier.
It's far less cool than what I thought it was going to be.
I thought it was a weapon that like Iron Man could use if he was into environmental stuff.
Oh, okay.
Yeah, it's not our career.
You're going to be disappointed then.
Not if I get good chicken wings over there.
That's right.
Chicken wings, sweet potato fries.
So you had your birthday, that was awesome.
And then yesterday morning, I've basically been a single parent this week.
You haven't been around at all.
Yes.
You were away yesterday morning for seven hours.
Would you like to tell everybody what you're doing?
I was doing a self-defense course.
Ha.
Stay back.
See?
That's really good.
Thank you.
Did you learn anything other than screaming, stay back?
I learned all kinds of stuff.
I learned how to, if you get like pulled down from behind or if you get
from behind what you do and if they're trying to choke you, what to do and if they're, if
you see them coming at you, what to do and I mean, if they manage to get you on the ground,
what you do.
Yeah.
And what is it you want for Christmas now?
A taser.
You actually got to fire a taser, didn't you?
I did.
I got to fire a taser.
And then a couple of our staff volunteered to get tased.
Yes, they wanted to feel, they wanted to feel what a taser felt like.
He was saying like if it was a group of guys, a lot of the guys would ask to feel it, but
he was kind of surprised that two of the girls did.
And he only turned it on for less than a second, like three quarters of a second.
And both of them almost fell on their face.
Like he had them kneel so that they wouldn't drop because he said, he said that when they
brought the tasers into the police department, that all that they put $1,000 on the table
and said anybody who can stand up for three quarters of a second while getting taste can
have a thousand dollars.
And so all of these cops were like, I'll totally be able to do it.
Not one of them could stand up for even three quarters of a second.
They all dropped.
It's like that famous Chinese proverb.
It's not a party till someone gets dazed.
Right.
Yes.
Yes.
I forgot about that famous Chinese proverb.
So you feel more confident about being a defender self as a woman?
I do.

Yes.
Yes.
And then Steve Long was in this week.
Steve Long, our dear friend from Toronto, came in and taught on the school of supernatural
life on healing.
He's so awesome, isn't he?
He's amazing.
I miss him.
Yeah, I do too.
I do too.
It sounded like a Star Wars robot.
I do too.
We have some great chance.
It's a new deal.
Great conversations.
We had some great healings too.
We did.
There's one I think that I actually want to get somebody to come and testify to rather
than me share a second hand.
an amazing creative miracle and we'll see if we can get that person to come share their
story. I've got a question for you, but it's not for me, it's from Peter, one of our listeners.
Okay. He's got quite a story, everything that happens. He said, "I, for many years,
have a recurring dream about me grieving the passing of my wife." And he basically said,
"You know, what do you think that means? I've read various things." Great things about
dreams is God loves to speak in hyperbole.
Yeah, he uses huge exaggeration to hammer home a point.
And I don't think that dream means that your wife is about to die.
And that's the literal passing of your wife.
Right.
I would think rather it's the Lord trying to get your attention over your
grief of the passing of your first love.
So what is it?
What areas of your heart are you finding that you're grieving the loss?
over something and perhaps there's an invitation to go back to those things and rekindle passion
and love for whatever those areas are. So hopefully that brings some comfort to you.
It's not nice having dreams about the death of a loved one or people close to us, but
I would be absolutely confident to say that it's notIt'
s very unlikely that it has to deal with your wife actually dying.
You know what I want to talk about this week, babe?

No, just my eyes.
That's handy.
And our church in Toronto and our church here in Nashville, Gray Center is known for
the Holy Spirit showing up.

It looks completely strange.
I think one of the amusing things to me is that most people who I've spoken to about
the manifestations of the Holy Spirit think that when it started happening in 1994
in Toronto that everybody was okay with it. Everybody's expecting it to look like this,
but that wasn't the case, was it?
No, I think we were continually surprised by some of the things we saw.
My favorite story, and I'm sure I've told this, if not on the podcast, I've told it
many, many times while speaking, is Mary Audrey Raycroft's reaction, the first night
it happened, January 20th, 1994. She hears all this commotion, she's leading a Bible
study in a room just off the main room, she opens the door to see what the commotion's
about. And she's astonished because she can't see anybody. I wonder if she saw the rapture
it happened. Nobody was in their chairs. She was like, "We're all the people."
They just feed up in the air.
And she looks down on the ground and there's everybody on the ground. And she was about
to make a judgmental comment about it. And the Lord struck her dumb.
And what I'm using about that is, from an outsider watching what happened and watching
everybody go, "What looks like banana shake, rattling, rolling, people on the floor,
people laughing, hysterically people crying, people pogo sticking, people
whatever. And people just assuming, Oh, you must be all okay with that. But I
think what we're okay with, and I say we could have it there at the time, is
that God is showing up. And so stuff is happening. And we'll work out what it
is later. That be fair to say.
And I think we were okay with God being God and us not understanding,
because there's plenty of stuff that God does that I don't understand. And I
I'm not his advisor.
- It's a refreshing concept that you don't have to understand everything God's doing.
My favorite quote I think from John on it ever was, "John, looking around the church,
people falling over and doing all this stuff."
John said, "Lord, I don't understand what you're doing."
The Lord said to him, "John, you don't understand women.
What makes you think you'll understand me?"
(laughs)
But it is weird.
It is very weird.
I remember the first time I went to charismatic church and saw people lifting their hands
in worship and that was weird for me.
Sure.
Anything outside of your own paradigm is weird.
Right.
And God loves to stretch your paradigms.
I remember hearing people say that if you fall backwards it's Satan but if you fall forward
it's God and therefore everybody who's falling backwards it must have been Satan.
Where did you hear that?
I don't know.
People will come up with a crazy doctrine to make themselves feel better about what's
happening.
Okay.
I never heard that one.
That's very entertaining.
- And then people would always go to the extreme,
like animals, animal noises in Toronto.
I was in Toronto for five years.
The only time I heard animal noises was you.
(laughing)
- Thanks, too.
- And then later me, when Claudia freeze and pray to me,
we can maybe talk about that later,
but what was your reaction at first
seeing all manifestations.

And then after God sorted me out that night on the floor
and just basically said, "You need to make a choice.
"Either I'm gonna be in control or you are."
And I was like, "Right, okay.
"You're probably a better person to be in control than I am."
So I, I mean, honestly, I would still see stuff
that I was like, what on earth is going on there?
But I would just be like, okay, Lord,
help me not to judge.
I don't know what's going on with them.
And if, if, if it was somebody I knew,
I would often check with them afterwards and be like,
hey, what was God doing?

Like, so you'd sort of get to the point where you're like,
okay, actually I want to be really quick not to judge.
- Right.
- And to just wait and see what the fruit is.
- That's probably the most helpful thing I'd heard, John.
Whenever we do conferences, John would always try
and take time in a session to answer questions
about manifestations.
And it was so comforting to hear, first of all,
John wasn't just okay with anything going. And second of all, that there was actually
really plausible and logical way of approaching manifestations. And I think what you just said
about actually following up with people is amazing. I remember John using this example,
which I don't think I'll ever forget.  And you've heard some rumors in the synagogue that the
Messiah has returned. And you hear that he's ministering.
Some people are saying this is Messiah,
some people are saying that he's, you know, from the devil.
And so you go and watch and it just happens to be the time
when Jesus is casting out Legion from this demoniac
and they're going into all these pigs
and the pigs are running and throwing themselves over a cliff
and you just approach the crowd just as that's happening.
And you take one look at it and go, pfft,
where's that in the Torah, right?
There's all these unclean animals who throw themselves around.
You just destroyed the livelihood of the people in that village.
There's this naked guy rolling around on the ground.
This can't be God and you leave and you just think everything I heard is right.
The guy's a maniac.
This is insane.

And that's what a lot of our critics did.
They would either not show up or they would scour YouTube and find the worst
video. So they would miss, you know, they would just come for the end of the
ministry time and just go, this can't be God.
Look at all these people rolling around on the floor.
And John's point was a snapshot as a cheap shot.

A much better approach is to take a video camera,
because if we go back to the example
of being a young Jewish person,
trying to work out if Jesus is a messiah or not,
if you had stayed around and not walked off
because you were offended,
you would have later seen that that naked man
who was a demoniac is now fully clothed
and dressed and in his right mind.
And in the same way
the people who just look at YouTube videos and go, it's the Kundalini Spirit's ridiculous,
completely missed the fact that there was maybe an hour, at least an hour, probably
two hours of glorious God-honoring worship, then there would be the preaching of the word,
there would be salvation where people would get saved, and then there would be ministry
time.
And even then, when it was absolutely crazy, if you would interview the people and say
what was God doing, you would often find life-changing events happening.
Yeah, and they could talk and they knew what was going on with them. They weren't in some sort of weird trance or anything like that.
Right. One of the greatest examples of this was the first time I met Steve Long. I didn't know Steve,
and he was administering in Glasgow. And I'd driven through from Edinburgh to see what he was doing.
And he just stood up and said, "Hi, my name is Steve. It's great to be here. I'm one of the pastors in Toronto.
And I'm here to teach on healing. But maybe before we teach on it, maybe we should just demonstrate it.
So why don't we find the sickest person in the room
and we'll get them healed
and then everybody after that should be really easy?
What do you think?
And I'm thinking, wait, what are we doing?
And so he just said,
"Who do you think the sickest person in the room is?"
And we all agreed it was the lady in the wheelchair.
So then I said, "Who's never healed somebody before?"

So she said, yeah.
And so we said, all right, then what you're gonna do
is you're just gonna ask the Holy Spirit to come.

Next, they're women who's in a wheelchair
and they just say the words, Holy Spirit come.
And all of a sudden,
these two women who are praying star wobbling and giggling
and kind of jerking all over the place.
And Steve's coming and he's, wow, look at that.
That's really weird.
And so interviews, the ladies go,
like what are you feeling?
like we're feeling power go through our body." And he's like, "Oh." And he said, "Yeah, it still
looks weird though, doesn't it folks?" And then he said to the lady in the wheelchair, "How are you
feeling?" She's like, "I feel amazing." He said, "What do you mean I feel amazing?" He said, "Well,
all my pain's going away and I feel this warm sensation of love."  And she said, "No, I feel amazing."
And he's like, "That's interesting, isn't it?" You know, should it be any surprise that something
happens to our bodies when we allow the power of God to flow through us.
Right. Well, again, Johnny used to say if you were to lick your fingers and stick
them in the socket in the wall, your body would have a reaction, you know, how much
more the power of God. So yeah, I mean, certainly it's, yeah, sometimes it's
challenging and you have to just go, okay, I don't get what's going on over there.
I can check back in later, but I'm going to choose to not enter into
judgment because actually that would rob you of being able to enter into what the Holy Spirit
has for you.
And to be fair, sometimes it's absolutely just the flesh.
Yeah.
It's people making stuff up.
Yeah.

No, I think though, even when it, when it is the flesh, often it's those people are so
desperate to feel a touch from the Lord that they think that manufacturing something will
help them get there.

No, they think if I do what they're doing, I'll get what they're getting.
Right.
Mark DuPont's point was brilliant.
He just said, I don't understand why you're upset about whether it's the flesh.
You've had flesh in your church for years.
Most of us just been cold flesh, not hot flesh.

And they're well behaved people who are operating in the flesh.
And that's what upsets us.
And I think probably the root issue is anything, like you said,
outside of our comfort zone causes us concern.
Yeah.
Because I remember getting really offended by people racing their hands
in worship.
And then I remember getting over that and I'm like, I'm good.
And then I got really offended by people falling over.
And then I was OK with that.
And then I got, you know, then I actually got quite comfortable with what
the Holy Spirit was doing.
And then I was at a church service where they started praying for people to get gold teeth and I was completely offended.
See, I loved, I loved the gold teeth because I worked at the building right next door of the church when I worked for National Car Rental.
And when the whole gold teeth thing was happening, I brought a whole bunch of people over a couple times from National Car Rental.
Well, the services were on, I would just bring them in.
You know, I would find it.
I would, you know, beep somebody and say, is it prayer time?
Yeah, it is.
And I bring them over and they get prayed for it and they get gold teeth.
And like one of the VPs got a gold tooth and.
So let me stop you there for a second because we just casually mentioned this story.
But my problem, and I should say, I don't have a problem.
That was one of my favorite miracles to see.
It's absolutely one of my favorite things to see a malgum filling turn into gold
fillings.
I think it's remarkable.
I don't know why it fascinates me so much, but it does.
Or when people's whole tooth goes gold.
I love that.
But let's just stop for a second.
The reason I was so offended was why would God,
you know, with all the starving children in the world,
why would God bother about gold teeth?
- Maybe it's just a sign that makes you wonder.
I mean, you gotta think gold to God
is just a pavement of heaven.
- Right, and amalgam fillings are highly toxic.
- Right.
So anyway, this one VP that came over,
he got a solid gold tooth and it turned out,
he had been, you know, just kind of dormant
in his relationship with the Lord for a while.
- Right.

So that was really, really cool.
And you know, I got to lead a couple of people
to alert as a result,
'cause they just came in and they were like,
I don't know, I came in, my teeth were black,
now they're gold, God must be real,
tell me about God.
- Right, it's crazy.
- It was so fun, like I loved it.
I wasn't offended, but it's funny,
a lot of people got offended about the gold teeth.
You know, exactly why would God do that?
I don't know, 'cause he's got it
and he gets to decide what he does.
- Tell me the story of Shannon's Nana.
Because that was one of the, like for me, that settled my heart.
Like I heard her at the 10 year anniversary, Randy had her up giving her testimony.
And you know, you know her better than I do, but I, I, I just remember her saying
these lines, I was dignified but dying.
So set up the story and set up what happened.
Oh gosh.
The best of your memory.
Okay, best of my memory.
Well, Shannon, if you're listening to this, you know that
practice. Yeah. Nana's name is Carol for her first name. And I
think she was a nurse at one point. She was. Yeah.  So
she lived with Shannon and her family because she couldn't
live on her own. She couldn't take care of herself. She was on
something like 40 something medications a day.
And she was dying.
And she was literally dying and there's nothing they could do to help her.
She was weak.
You know, she, they had to help her go to the, you know, get into the bathroom,
all that kind of stuff.
Like she was, you know, basically her whole body was shutting down.
And when the renewal started, they brought her to the renewal.
And I can't remember if they brought her several nights in a row or what the deal
was, but she, um, you know, to begin with, which most conservative Christians didn't,
but she didn't like it.
You know, she was like, how can this be God?
And right because it looked like everybody was wrong.
It looked like craziness.
I really did.
And, um, anyway, she got totally wasted, totally like totally drunk to the point where they
as a family had to pick her up and carry her to the car.
She couldn't walk, she couldn't help them at all.
- And she said in her testimony that the reason
she was so drunk was she had a vision of a wine glass
and Jesus was in the wine glass, which sounds so offensive.
And she fell into it.
And the moment she fell into it,
she was absolutely overcome by the Holy Spirit's presence
and was completely inebriated.
Like couldn't walk, couldn't talk, had no function.
home and for three days she couldn't do a thing on her own.
Like not a thing.
She couldn't feed herself.
She just laughed.
She just laughed.
She just lied around laughing, but she got totally healed of everything off of
every medication.
I think it's funny that we not only want like, yes, do we want sick people
healed?
Yeah, we absolutely do.
But we don't only want that.
We want to dictate how it happens.
Right.
Guess what?
You don't get to be God.
Right. And he seems to take great delight in messing with us.
Yeah.
You know, John once asked the Lord, he said, you know, Lord, you seem to really
enjoy it when people fall down when we pray for them.
I don't understand that.
And the Lord said to them, well, John, it deals very effectively with two
conditions of the human heart that I don't care for.
One fear and the other pride.
Because fear says, well, God, I really want you, but I don't want, you know,
what are these people going to think?
Right.
And pride says, well, I want you, but I'm not going to do that.
Right.
And he says, in one file, it deals with those very, very effectively.
It requires huge humility to just stand up and say, yeah, I'd like to receive
prayer and go to the front of the church, because what if nothing happens?
Or worse, what if something does happen?
And, you know, I know from my experience that when I met the Holy Spirit for the first
I was just broken.
I was recovering from a nervous breakdown.
I was recovering from, you know, really being suicidal, being overwhelmed with grief and despair.
And I met the Holy Spirit.
Somebody prayed for me and I fell down, which was uncommon to me.
And when I hit the floor, I just sobbed for 45 minutes and inside, I'm just like, get it together, Jones.
What are you like?
What are you doing?

And when I got up from that, I didn't see in Technicolor, I didn't have angelic
visitations, I wasn't speaking tongues, I almost thought nothing had happened and yet everything had
happened. And from that point on, it took me a couple of years really to process what happened.
But I remember in going to Toronto, the most overwhelming feeling I would have when the Holy
Spirit would touch me would be like a warm, heavy blanket, like a duvet falling on me, where you're
unable to get up because you're just surrounded with love and you're being suffocated with his
goodness.  And if you think about it,
in the natural, like I remember when I was first dating you, just seeing you would have
a physical effect on my emotions and on my body. For sure. You know, my pupils would
dilate, my breathing with intense. When you'd hold my hands, I'd get this warm tingly feeling.
 Yeah, I would like tremble on the inside. And that's
just me encountering a human. And you're having a physical manifestation in my body.
What is it like when a human has an encounter with the person of love right?
John says it's not surprising that we have a physical reaction to encountering
The career of the world the surprising thing is that we live through the experience right?
I think my craziest thing that shut me up pretty quick was I remember it was the parties here conference July
2002 and I went and I was so offended
Because carol was a good off the stage and was wandering around throwing and i'm making air quotes with my fingers here fireballs.

And i'm just offended i'm thinking we just move on you know i'm just upset and i'm just happy myself right just listen my indignation just.
Things not being done decently order to the next night they do test anytime and they just say i'm gonna test when the woman gets up.
And the woman starts out her testimony saying exactly why i said you know i just was horrified that this woman was running around the room throwing fireballs of people thinking seriously is this what we've come to.
She said until she came to the end of my eye and through a fireball at me i want to hit me my death your pop to open.
And i was suddenly like oh okay.
I don't think that person cares that care was throwing a fireball because her deaf ear just got healed.
Again, we're back to dictating the way that we're going to get healed.
I'm sure it was pretty offensive when Jesus spat in the ground and made mud and put on somebody's eyes.
Oh sure.
You're like, "Where's that in the Torah?"
Well, it wasn't until he did that.
So people get hung up with, "Well, where's that in the Bible?"
And the truth is there's lots of weird stuff in the Bible.
Plenty of weird stuff in the Bible.
And actually that question, where's that in the Bible is a really good question to ask if the motive of your heart is right.
I've had people say to me, where's that in the Bible?
And people say, Hey, can you help me?
I'm just struggling with where that's in the Bible.
The first, I don't have a lot of time for the second.
I'll spend hours talking about.
We have to wrap up.
Oh, yes, let's wrap it up.
You know what I want us to do was I want to do a couple of things.
Do you want to sing a wrap up song?
I don't definitely don't want to do that.
Okay, I'm someone call them at age is having a heart attack.
That's me rapping.
I have some closing thoughts.
Okay.
And then I'd like to do closing prayer.
Okay.
My closing thoughts are there's a bunch of new articles up on our website, Alan and
AJ.com.
There's some articles are soaking on getting stuff done.
And our most recent article, which goes live tomorrow, is all about believing
and the importance of believing God.
But we are going to write an article on manifestations.
So if this is kind of prunted more questions and we've given answers for hold on,
we'll probably post a link to a teaching on manifestations,
but we're also going to write an article on manifestation.
So that will be up in a couple of weeks that you can have there.
But I wanted to close with praying for people,
especially people who've been maybe weird today or people have been sent weird YouTube
videos and maybe you've backed off from pursuing the Holy Spirit for fear that
you are going to somehow get a legal spirit or,
And you've got to remind yourself of Jesus said, you know, if you ask your father for the Holy Spirit,
you're not going to get an evil spirit.
If you ask him for bread, he's not going to give you a stone.
If you ask him for fish, you're not going to get a serpent.
That's not who he is.
It's not what he's like.
So let me pray for you.
And then you can go by the rest of your day and me having an incredible week.
But Father, Adrian, I just pray for all these wonderful listeners, Lord, I ask that your heart
would be revealed to them, Lord, that they don't need to fear walking with you.
that yes, you're an amazing, powerful God who's incredibly loving and incredibly fun.
And Lord, I just ask that you would break off any fear that we may have, Lord, that we're
going to get some counterfeit spirit.
And Lord, you're good and you're great and you're amazing.
And we just pray, Lord, a feeling of the Holy Spirit and everybody who's listening right
now, that we would not try and control you, but we would yield to what you're doing.
And we would recognize that you're God and we're not.
Lord, you would just fill us up with an incredible week.
And Lord, you just bless us in incredible ways.
And we thank you for your goodness and your kindness.
In Jesus' name, amen.


WITNESS LIST Business & Industry Committee August 13, 2003-10:00A HB 36 For: Greenblum, J. Bradley (International Council of Shopping Centers) Against: Cates, Phil (Gerald Stavely, Mike Nesbitt)


Users need filter a collection of items or search results to find items of interest.
Filters provide a set of controls to reduce items in a collection based on attributes the user is interested in (e.g., filtering items by creation date).
Filters can provide the following functionality:
Filters can be stacked vertically on the left side if:
Filters can optionally be:
Filters can be collapsed to a single dropdown if:
For many or complex filters, you may want to organize them with a menu along the side.
For simple filters, they can be presented as a standard form.
Filters can be listed horizontally if:
When showing the currently applied filters, consider collapsing values to preserve space. E.g., instead of listing 4 different colors, collapse it into ‘4 colors’.
If you allow multi-selection in filters, the currently applied filters can be listed below each dropdown:
If you allow single-selection for each filter, the currently applied filter can replace the label for the dropdown:
Predefined filters are presented as pill tabs. Predefined filters are either provided by the system or are defined by the user.


Climbing invisible tech debt mountains
We need 10% time, but startups don’t work that way.
Think of unnecessary duplicated code that makes it really expensive & hard to maintain. Think of legacy tooling that just doesn’t have the productivity features of modern tools. Think of performance issues that lie in spaghetti code.
Think of the those times you sketched data flow of API’s on paper. You looked at it, & questioned the meaning of life.
These are all examples of technical debt, and that’s ok. And you know what? Startups often have very high levels of technical debt, a tradeoff between software team morale & satisfying stakeholders with flashy products that sell like hotcakes.
But even though they have the most technical debt, they are the least likely to introduce measures to manage it. And eventually the startup (more specifically, the software engineers) hit a brick wall - a big (no… HUGE) mountain of tech debt, and they stare at the mountain, and feel the fear. It makes them consider rewriting code from scratch, which is usually what happens anyway since its cheaper than fixing legacy code.
And then management comes around. They simply won’t allow “playtime” to fix issues. It’s just acknowledged & pushed to the side. “We need feature X Y Z by yesterday”. And this is ok - but what can software engineers do in this situation?
How do we manage technical debt when 0 time is dedicated to it?
“Sigh, will this cost me my arm or leg today?”
Solution 1: just refactor more!…. right?
An often approach is to trade off sprint velocity for non-visible technical debt reduction. This is usually either approved by the managers (e.g.: the product owner may approve because it’s a smaller overhead than rewriting entire codebases), or not approved by managers. If it’s NOT approved, good software engineers often take the initiative themselves, knowing that even though it’s not visible by management, technical debt kills.
This is equivalent to a chef cleaning their table to prepare for the next dish.
Solution 2: moonlighting
When not approved, software engineers can slip in some tech debt refactoring. This can happen during work hours (e.g.: 30 mins during a 9-5 window some days) or outside work hours (e.g.: day ends at 5pm
, they stay back & refactor to 5:30 - 6:00pm
).
This introduces a problem of burnout, but often if its:
- non-mandatory
- the initiative is self-motivated (e.g.: something is really itching them & fixing the tech debt brings them more happiness than spending the 30 mins at home watching Netflix)
- they are working on “their baby” (i.e.: the project is something that they deeply care about, they gave birth to the repo, & they are the kings/queens of that domain)
Then it’s often a good approach. The software engineer is happy, their colleagues are happy, & managers are usually happy to let someone overwork a bit. EVERYONES HAPPY! Additionally, good managers will know of the Dead Sea effect & the importance of turnover. They will approve overworking, but also drop a hint to them after slapping their back: “…but make sure to not burn out”.
Solution 3: out with the old, in with the new!
Sometimes the tech debt is just so bad that its actually cheaper to just rewrite the entire repo(s) from scratch.
Considered a high-risk low-reward move, its difficult to justify this option to management. Often bad engineers just do it without approval, expecting a big congratulations upon presenting their work to their colleagues. BACK SLAPS ALL AROUND.
Unfortunately getting rewrites to replace the existing test & prod instances is complicated, & usually rewrites don’t have good test coverage (naughty word).
I’ve seen this work before, but the incredible expense is always an important factor to consider before creating those Jira epics.
Expense, with a capital “E”.
Solution 4: the dead sea effect
When all 3 above approaches fail, software engineers get low morale. Its like world war, & the engineers are in the trenches. They got no clean clothes, there’s bullets flying over their head on a daily basis, there’s not much food available (& what is available is infested with vermin). Oh god no not again!
It’s just a terrible situation to be in. And it often results in turnover.
And of course, seeing comrades leave makes you question whether you should stay or step up to the next level in your life.
This is the end-game that all startups risk when they simply ignore technical debt, pretend that it doesn’t exist, & just whip software engineers even when they’re down. Often to stop the incredible turnover, they have to increase monetary compensation. And even then, thats not guaranteed to solve the problem.
Often, happiness is more preferred than money. In other words, a good workplace (daily happiness) is more important than compensation, aslong as the compensation is “decent” enough for the individuals standard of living & financial/tangible goals.
What is the secret sauce?
If you’re at ground zero, solutions 1 & 2 are the good choices.
You can refactor more by changing your approach to each ticket. For example, before opening each PR you review it yourself & do a final “pass” to cleanup any remaining code. You can refactor code that’s not related to your ticket, whilst still staying out of the rabbit hole traps that often come out of the tall grass & snatch you.
You can also moonlight. Even though a lot of software companies have a dedicated work window (e.g.: 9am to 5pm
, 8am to 6pm
), software engineers often perform additional work. Weekend production issues, late night team releases, early morning “all hands on deck” situations for critical releases the previous night. And since moonlighting is a self-initiative on your own “baby” (repos), its easy to be motivated to make it nice & pretty.
Startups have the 0 time, we want everything problem. Theres just not enough time to do everything (even if you increase headcount). In the end, there are some good approaches to tackling tech debt, & whilst the 3 solutions above don’t suit all situations, there should be at least 1 that is correct, efficient, effective & a perfect match for your depression.
I wish you the best of luck, you’ll need it.


Blackboard Nodes
The animation controller provides nodes to read and write values from and to a blackboard. For this, the game object on which the animation controller component is attached, also needs to hold a blackboard component.
Note: If no blackboad is available, these nodes will output a warning to the log. If a blackboard is available, but the desired entry is not (yet) in the blackboard, they may add the entry or assume a default value of zero.
Set Blackboard Value Node
When activated or deactivated, this node writes a given value to the blackboard.
Node Properties
BlackboardEntry: The name of the blackboard entry (variable) to write to.
SetOnActivation: If true,
ActivationValue
will be written to the blackboard whenever theActive
input pin changes from disabled to enabled.ActivationValue: The value that shall be written to the blackboard, when the
Active
pin becomes enabled.SetOnDeactivation: If true,
DeactivationValue
will be written to the blackboard whenever theActive
input pin changes from enabled to disabled.DeactivationValue: The value that shall be written to the blackboard, when the
Active
pin becomes disabled.
Input Pins
- Active: The active state determines when either the
ActivationValue
orDeactivationValue
shall be written to the blackbard. As long as this pin's state doesn't change, no value is written.
Check Blackboard Value Node
This node constantly monitors a blackboard value and compares it to a reference value. Whenever the comparison yields true
, the Active
output pin is enabled, otherwise disabled.
Node Properties
BlackboardEntry: The name of the blackboard entry (variable) to monitor.
ReferenceValue: A reference value for the comparison.
Comparison: The way the two values get compared.
Output Pins
- Active: This output pin will be triggered whenever the comparison was successful.
Get Blackboard Value Node
This node outputs the value of a specific blackboard entry. The number value can then be forwarded to other nodes.
Node Properties
- BlackboardEntry: The name of the blackboard entry (variable) to read.
Output Pins
- Number: The value of the blackboard entry. If the entry doesn't exist, the pin outputs zero.


0 Mini Projects completed
A passionate problem solver and developer, excited to work on new projects. Ready to learn anything new and exciting anyday.
0 Mini Projects completed
Currently persuing 6th semester. CGPA : 9.43
Karnataka State Board for Higher Secondary EducationCentum in Computer SciencePercentage : 94%
Karnataka state primary education boardPercentage : 95.36%
A wireless security camera setup prototyped on Raspiberry Pi, suitable for surveillence in airport security check queues.Recognizes criminals and alerts the airport security staff imeediately with location of the threat detected.
A multi-featured application developed and designed to specifically meet the needs of CSE department at BMSCE.
Overview of establishing financial data feeds , frontend web develpment and Data Visualization using Perspective
View CertificateI am proefficient and comfortable in the following technologies.
Specilization set of 5 courses on google compute engine.50+hrs of course with 20+hrs of hands on experience.
View CertificateAn overview and introduction to machine learning with python with pandas,scipy,numpy frameworks.Introduction and 20+ hrs of classes with hands on experience for various machine learning techniques.
View CertificateAll of my projects are unique in their own way and are not stereo type projects carried out as any other engineering student.
IoT enabled security system with facial recognition and alert mechanisms.
Aspecifically customised app for CS Department with all the required features.
A small java game where player must jump over obstrucles and collect coins to hold the title of highscorer.
#310, 14th cross, 2nd block Jayanagar, Bangalore-560011, Karnataka, India


Before Change
import torch.optim as optim
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train / 255.
x_test = x_test / 255.
x_train = np.expand_dims(x_train,1).astype("float32")
After Change
import os
from torchvision import datasets
ROOT = "./data"
dataset = datasets.MNIST(ROOT, train=True, download=True)
x_train, y_train = torch.load(os.path.join(dataset.root, "processed/training.pt"))
x_test, y_test = torch.load(os.path.join(dataset.root, "processed/test.pt"))
x_train = x_train.float()
y_train = y_train.long()
x_test = x_test.float()


Discipline
- The 3-Minute Rule. I want to start off with this, because I feel its a good strategy. The 3 minute rule is simply, anything you don't feel like doing, just do it for 3 minutes, focus completely on it and nothing else and tell yourself you'll do this for the next 3 minutes and give it your all. Most likely what will happen is after those 3 minutes you'll continue doing it. The reason to this is because getting started is very difficult for some reason, but once you get started you build momentum and that keeps you going.
- Create a schedule. This can be a daily or weekly schedule, just list out everything you will do and check them off as you complete them
- Follow through! Don't wait for it to "feel right". Don't wait for that perfect moment, just go and do what you need to get done! You might not feel like waking up at 5AM and going to the gym but you need to fight your instints and drag yourself to the gym! Trust me, it will become much easier once your there!
- Reward yourself This is almost like the "take a day off and rest" suggestion I made on the inspiration page. After you completed your hard work go reward yourself with something. Dieting? Designate Saturday as ice cream sundae day. Trying to lose weight? Treat yourself with a fancy massage after a month of gym trips. Working on controlling your spending? Allow yourself a $25 splurge at the mall on Sunday. (Leave the credit cards at home, and bring cash only). Self discipline can be hard. Reward your effort.
- Missed a day? Messed up while working towards a goal? Its okay! We're human, mistakes happen, the main thing is you just move forward and continue working towards your goals, you messed up so maybe try to make up for messing up by working a little harder, but just remember, just because you messed up once doesn't mean it is over, its over when you give up, so don't give up and keep going!


Activities
Falling Illini Skydiving Club
I made my first skydive on July 7, 2017 and fell in love with it immediately. By August 2017 I had earned my skydiving license and try to go skydiving whenever I can. I currently serve as the Vice President for the Falling Illini Skydiving Club.
If you are a student at the Univeristy of Illinois and want to try skydiving, check out the Falling Illini Skydiving Club on Facebook by clicking HERE
Not a student, but still want to jump out of an airplane? Check out our sponsoring drop zone Champaign Urbana Skydiving Club by clicking HERE
Illini Ridgebacks Quidditch Team
I started playing quidditch as a way to stay active, but quickly made my way onto the school team and now travel across the country playing against other colleges. Since joining, the Ridgebacks have qualified for the National Championships twice. My primary position is chaser, but I have also played as a seeker.
For updates on the Ridgebacks, check out their Facebook page HERE
Want to learn how to play? Read up on general gameplay HERE


what is here {{'yet'+'!'}}
5+10 = {{5+10}}
{{phone.name}}
{{phone.snippet}}
the total number of movies is : 2
{{i*j}}


My name is Agnes. I believe in myself more than anyone else in this world. I speak up about things that matter to me. By doing this, I gain confidence and courage which has helped me to be who I am today.
I love everything to do with construction. Building something from scratch makes me feel some kind of way that I can't explain.
At the moment am studying Programming and Software Development at Moring School and all I can say is that this course is not for the faint hearted but am doing my best.


from ..BaseClass import BaseSpOptHeuristicSolver
from sklearn.metrics import pairwise as skm
from scipy.sparse import csgraph as cg
from scipy.optimize import OptimizeWarning
from collections import namedtuple
from warnings import warn
import time
import numpy as np
import copy
deletion = namedtuple("deletion", ("in_node", "out_node", "score"))
class SpanningForest(object):
def __init__(
self,
dissimilarity=skm.manhattan_distances,
affinity=None,
reduction=np.sum,
center=np.mean,
):
"""
Initialize the SKATER algorithm.
dissimilarity : a callable distance metric
affinity : an callable affinity metric between 0,1.
Will be inverted to provide a
dissimilarity metric.
reduction: the reduction applied over all clusters
to provide the map score.
center: way to compute the center of each region in attribute space
NOTE: Optimization occurs with respect to a *dissimilarity* metric, so the reduction should
yield some kind of score where larger values are *less desirable* than smaller values.
Typically, this means we use addition.
"""
if affinity is not None:
# invert the 0,1 affinity to
# to an unbounded positive dissimilarity
metric = lambda x: -np.log(affinity(x))
else:
metric = dissimilarity
self.metric = metric
self.reduction = reduction
self.center = center
def __repr__(self):
return "Minimum_Spanning_Tree_Pruning(metric = {}, reduction = {}, center = {})".format(
self.metric, self.reduction, self.center
)
def fit(
self,
n_clusters,
W,
data=None,
quorum=-np.inf,
trace=False,
islands="increase",
verbose=False,
):
"""
n_clusters : int of clusters wanted
W : pysal W object expressing the neighbor relationships between observations.
Should be symmetric and binary, so Queen/Rook, DistanceBand, or a symmetrized KNN.
data: np.ndarray of (N,P) shape with N observations and P features
quorum: floor on the size of regions.
trace: bool denoting whether to store intermediate
labelings as the tree gets pruned
islands: string describing what to do with islands.
If "ignore", will discover `n_clusters` regions, treating islands as their own regions.
If "increase", will discover `n_clusters` regions, treating islands as separate from n_clusters.
verbose: bool/int describing how much output to provide to the user,
in terms of print statements or progressbars.
NOTE: Optimization occurs with respect to a *dissimilarity* metric, so the problem *minimizes*
the map dissimilarity. So, lower scores are better.
"""
if trace:
self._trace = []
if data is None:
attribute_kernel = np.ones((W.n, W.n))
data = np.ones((W.n, 1))
else:
attribute_kernel = self.metric(data)
W.transform = "b"
W = W.sparse
start = time.time()
super_verbose = verbose > 1
start_W = time.time()
dissim = W.multiply(attribute_kernel)
dissim.eliminate_zeros()
end_W = time.time() - start_W
if super_verbose:
print("Computing Affinity Kernel took {:.2f}s".format(end_W))
tree_time = time.time()
MSF = cg.minimum_spanning_tree(dissim)
tree_time = time.time() - tree_time
if super_verbose:
print("Computing initial MST took {:.2f}s".format(tree_time))
initial_component_time = time.time()
current_n_subtrees, current_labels = cg.connected_components(
MSF, directed=False
)
initial_component_time = time.time() - initial_component_time
if super_verbose:
print(
"Computing connected components took {:.2f}s.".format(
initial_component_time
)
)
if current_n_subtrees > 1:
island_warnings = [
"Increasing `n_clusters` from {} to {} in order to account for islands.".format(
n_clusters, n_clusters + current_n_subtrees
),
"Counting islands towards the remaining {} clusters.".format(
n_clusters - (current_n_subtrees)
),
]
ignoring_islands = int(islands.lower() == "ignore")
chosen_warning = island_warnings[ignoring_islands]
warn(
"By default, the graph is disconnected! {}".format(chosen_warning),
OptimizeWarning,
stacklevel=2,
)
if not ignoring_islands:
n_clusters += current_n_subtrees
_, island_populations = np.unique(current_labels, return_counts=True)
if (island_populations < quorum).any():
raise ValueError(
"Islands must be larger than the quorum. If not, drop the small islands and solve for"
" clusters in the remaining field."
)
if trace:
self._trace.append((current_labels, deletion(np.nan, np.nan, np.inf)))
if super_verbose:
print(self._trace[-1])
while current_n_subtrees < n_clusters: # while we don't have enough regions
best_deletion = self.find_cut(
MSF,
data,
quorum=quorum,
labels=None,
target_label=None,
verbose=verbose,
)
if np.isfinite(best_deletion.score): # if our search succeeds
# accept the best move as *the* move
if super_verbose:
print("making cut {}...".format(best_deletion))
MSF, current_n_subtrees, current_labels = self.make_cut(
*best_deletion, MSF=MSF
)
else: # otherwise, it means the MSF admits no further cuts (no backtracking here)
current_n_subtrees, current_labels = cg.connected_components(
MSF, directed=False
)
warn(
"MSF contains no valid moves after finding {} subtrees."
"Decrease the size of your quorum to find the remaining {} subtrees.".format(
current_n_subtrees, n_clusters - current_n_subtrees
),
OptimizeWarning,
stacklevel=2,
)
self.current_labels_ = current_labels
self.minimum_spanning_forest_ = MSF
self._elapsed_time = time.time() - start
return self
if trace:
self._trace.append((current_labels, best_deletion))
self.current_labels_ = current_labels
self.minimum_spanning_forest_ = MSF
self._elapsed_time = time.time() - start
return self
def score(self, data, labels=None, quorum=-np.inf):
"""
This yields a score for the data, given the labels provided. If no labels are provided,
and the object has been fit, then the labels discovered from the previous fit are used.
If a quorum is not passed, it is assumed to be irrelevant.
If a quorum is passed and the labels do not meet quorum, the score is inf.
data : (N,P) array of data on which to compute the score of the regions expressed in labels
labels : (N,) array of labels expressing the classification of each observation into a region.
quorum : int expressing the minimum size of regions. Can be -inf if there is no lower bound.
Any region below quorum makes the score inf.
NOTE: Optimization occurs with respect to a *dissimilarity* metric, so the problem *minimizes*
the map dissimilarity. So, lower scores are better.
"""
if labels is None:
try:
labels = self.current_labels_
except AttributeError:
raise ValueError(
"Labels not provided and MSF_Prune object has not been fit to data yet."
)
assert data.shape[0] == len(labels), (
"Length of label array ({}) does not match "
"length of data ({})! ".format(labels.shape[0], data.shape[0])
)
_, subtree_quorums = np.unique(labels, return_counts=True)
n_subtrees = len(subtree_quorums)
if (subtree_quorums < quorum).any():
return np.inf
part_scores = [
self.reduction(
self.metric(
X=data[labels == l],
Y=self.center(data[labels == l], axis=0).reshape(1, -1),
)
)
for l in range(n_subtrees)
]
return self.reduction(part_scores).item()
def find_cut(
self,
MSF,
data=None,
quorum=-np.inf,
labels=None,
target_label=None,
make=False,
verbose=False,
):
"""
Find the best cut from the MSF.
MSF: (N,N) scipy sparse matrix with zero elements removed.
Represents the adjacency matrix for the minimum spanning forest.
Constructed from sparse.csgraph.sparse_from_dense or using MSF.eliminate_zeros().
You MUST remove zero entries for this to work, otherwise they are considered no-cost paths.
data: (N,p) attribute matrix. If not provided, replaced with (N,1) vector of ones.
quorum: int denoting the minimum number of elements in the region
labels: (N,) flat vector of labels for each point. Represents the "cluster labels"
for disconnected components of the graph.
target_label: int from the labels array to subset the MSF. If passed along with `labels`, then a cut
will be found that is restricted to that subset of the MSF.
make: bool, whether or not to modify the input MSF in order to make the best cut that was found.
verbose: bool/int, denoting how much output to provide to the user, in terms
of print statements or progressbars
Returns a namedtuple with in_node, out_node, and score.
"""
if data is None:
data = np.ones(MSF.shape)
if (labels is None) != (target_label is None):
raise ValueError(
"Both labels and target_label must be supplied! Only {} provided.".format(
["labels", "target_label"][int(target_label is None)]
)
)
if verbose:
try:
from tqdm import tqdm
except ImportError:
def tqdm(noop, desc=""):
return noop
else:
def tqdm(noop, desc=""):
return noop
zero_in = (labels is not None) and (target_label is not None)
current_n_subtrees, current_labels = cg.connected_components(
MSF, directed=False
)
best_deletion = deletion(np.nan, np.nan, np.inf)
for in_node, out_node in tqdm(
np.vstack(MSF.nonzero()).T, desc="finding cut..."
): # iterate over MSF edges
if zero_in:
if labels[in_node] != target_label:
continue
local_MSF = copy.deepcopy(MSF)
# delete a candidate edge
local_MSF[in_node, out_node] = 0
local_MSF.eliminate_zeros()
# get the connected components
local_n_subtrees, local_labels = cg.connected_components(
local_MSF, directed=False
)
if local_n_subtrees <= current_n_subtrees:
raise Exception("Malformed MSF!")
# compute the score of these components
score = self.score(data, labels=local_labels, quorum=quorum)
# if the score is lower than the best score and quorum is met
if score < best_deletion.score:
best_deletion = deletion(in_node, out_node, score)
if make:
return self.make_cut(*best_deletion, MSF=MSF)
return best_deletion
def make_cut(self, in_node, out_node, score, MSF=None):
"""
make a cut on the MSF inplace, provided the in_node, out_node, MSF, and score.
in_node: int, ID of the source node for the edge to be cut
out_node: int, ID of the destination node for the edge to be cut
score: float, the value of the score being cut. if the score is infinite, the cut is not made.
MSF: the spanning forest to use when making the cut. If not provided,
uses the defualt tree in self.minimum_spanning_forest_
"""
if MSF is None:
MSF = self.minimum_spanning_forest_
if np.isfinite(score):
MSF[in_node, out_node] = 0
MSF.eliminate_zeros()
return (MSF, *cg.connected_components(MSF, directed=False))
raise OptimizeWarning(
"Score of the ({},{}) cut is inf, the quorum is likely not met!"
)
[docs]class Skater(BaseSpOptHeuristicSolver):
"""Skater is a spatial regionalization algorithm based on spanning tree pruning
Parameters
----------
gdf : geopandas.GeoDataFrame, required
Geodataframe containing original data.
w : libpysal.weights.W, required
Weights object created from given data.
attrs_name : list, required
Strings for attribute names (cols of ``geopandas.GeoDataFrame``).
n_clusters : int, optional, default: 5
The number of clusters to form.
floor: floor on the size of regions, default: -inf
trace: bool denoting whether to store intermediate, default: False
labelings as the tree gets pruned.
islands: string describing what to do with islands, default: "increase"
If "ignore", will discover `n_clusters` regions, treating islands as their own regions.
If "increase", will discover `n_clusters` regions, treating islands as separate from n_clusters.
spanning_forest_kwds include:
dissimilarity :
A callable distance metric.
affinity : an callable affinity metric between 0,1
Will be inverted to provide a dissimilarity metric.
reduction:
The reduction applied over all clusters to provide the map score.
center:
A way to compute the center of each region in attribute space.
Attributes
-------
labels_ : numpy.array
Region IDs for observations.
Examples
--------
>>> import numpy as np
>>> import libpysal
>>> import geopandas as gpd
>>> from spopt.region.skater import Skater
>>> from sklearn.metrics import pairwise as skm
Read the data.
>>> pth = libpysal.examples.get_path('airbnb_Chicago 2015.shp')
>>> chicago = gpd.read_file(pth)
Initialize the parameters.
>>> w = libpysal.weights.Queen.from_dataframe(chicago)
>>> attrs_name = ['num_spots']
>>> n_clusters = 10
>>> floor = 3
>>> trace = False
>>> islands = "increase"
>>> spanning_forest_kwds = dict(dissimilarity=skm.manhattan_distances, affinity=None, reduction=np.sum, center=np.mean)
Run the skater algorithm.
>>> model = Skater(chicago, w, attrs_name, n_clusters, floor, trace, islands, spanning_forest_kwds)
>>> model.solve()
Get the region IDs for unit areas.
>>> model.labels_
Show the clustering results.
>>> chicago['skater_new'] = model.labels_
>>> chicago.plot(column='skater_new', categorical=True, figsize=(12,8), edgecolor='w')
"""
[docs] def __init__(
self,
gdf,
w,
attrs_name,
n_clusters=5,
floor=-np.inf,
trace=False,
islands="increase",
spanning_forest_kwds=dict()
):
self.gdf = gdf
self.w = w
self.attrs_name = attrs_name
self.n_clusters = n_clusters
self.floor = floor
self.trace = trace
self.islands = islands
self.spanning_forest_kwds = spanning_forest_kwds
[docs] def solve(self):
data = self.gdf
X = data[self.attrs_name].values
model = SpanningForest(**self.spanning_forest_kwds)
model.fit(self.n_clusters, self.w, data=X, quorum=self.floor, trace=self.trace)
self.labels_ = model.current_labels_


openedit
Summaryedit
From the Elasticsearch Open/Close API documentation
The open and close index APIs allow to close an index, and later on re-open it. A closed index has almost no overhead on the cluster (except for maintaining its metadata & the disk space it consumes), and is blocked for read/write operations. A closed index can be opened which will then go through the normal recovery process.
The open
command makes it possible to re-open closed indices in a scripted
way.
Flagsedit
$ curator open --help Usage: curator open [OPTIONS] COMMAND [ARGS]... Open indices Options: --help Show this message and exit. Commands: indices Index selection.
This command requires the indices subcommand for index selection.
Exampleedit
Open matching indices:
curator open indices <<index selection parameters>>


Tax registrations
If you already have an ABN, you can apply here for GST and other tax registrations. Note that you will need to have either an AUSkey or myGov login to use this service. If you don’t have an ABN, go back to the home page to start an application. You can also register for tax registrations during your ABN application.
Click on the links below to learn more about each item. If you are ready to start the registration, login below:
- Goods and services tax (GST)
- Pay as you go withholding (PAYG)
- Fringe benefits tax (FBT)
- Luxury car tax (LCT)
- Fuel tax credits (FTC)
- Wine equalisation tax (WET)
Not sure? Help me decide what I need
You will need to login using AUSkey or your myGov account.
Don’t have a login?
To apply for tax roles, you will need either an Administrator AUSkey or a myGov account connected with your ABN.
Apply for an Administrator AUSkey Go to myGov


Start from Scratch (start with a blank form)
Load from File (load a file from your computer)
Load from GRIIDC Dataset UDI:
Load from External URL URL:


Hootsuite founder from B.C. seeks new CEO
Ryan Holmes moving to executive chairman of major social media management company
by Jennifer SmithA top dog at a top social media company is shifting seats.
Vernon’s own Ryan Holmes led Hootsuite from it’s small beginnings to the global leaders in social media management that it is today.
“It’s with a grateful heart that I’m announcing the start of a search for Hootsuite’s next CEO candidate,” said Holmes, Hootsuite’s founder. “It’s been an honour of my lifetime to lead Hootsuite from a small company to a global enterprise of more than 1,000 employees supporting over 200,000 organizations. I’m extremely proud of what our world-class team has built together and am even more excited about what the future holds.”
Holmes will be moving to Executive Chairman once the right person is chosen.
“Looking forward to this next chapter together,” said Holmes, who attended Okanagan College in the mid-1990s where he took business, arts and computer science courses.
READ MORE: Hootsuite founder speaks
READ MORE: Speakers captivate Vernon Women in Business


Vehicle Kills/Min - Better Battlelog Forums #102936
Sitemap
02.  July 2013 09:45
Topicstarter
potatobro
Could you possibly add this?
09. July 2013 13:39
BrainFooLong
Administrator
Maybe yes.


It looks like you've pasted directly from Microsoft Office!
Sadly though, your browser wasn't able to properly handle what you pasted. But that's ok, because I've sanitized it for you!
You can just copy and paste the sanitized content that appears above.


---
layout: post
title: Scorpions - Dust in the wind
date: '2010-03-02T12:02:00.001+02:00'
author: Vlad Dumitru
tags:
- Vlad Dumitru
modified_time: '2010-05-06T03:11:31.485+03:00'
blogger_id: tag:blogger.com,1999:blog-551549162106413340.post-1467797887101068520
blogger_orig_url: http://pentrumuzica.blogspot.com/2010/03/scorpions-dust-in-wind.html
---
un cover foarte reusit dupa Kansas... cu orchestra...


N/A
N/A
watching •
N/A
average score
home
Home
lock
MAL Credentials
fiber_manual_record
Icon Badge
view_list
Popup
tab
In-Page QMAL
swap_vert
Twitter Sync
settings
Advanced
QuickMyAnimeList
QMAL
menu
Icon Badge
Set colorful badges for the extension icon.
Badges can take up to 30 seconds to update.
Enable Badge:
Color:
Update Interval in minutes:
On the badge, show the number of:
Watching Animes
Completed Animes
Animes on Hold
Dropped Animes
Animes Planned to Watch
Total Animes in List
Save
send


Start point: {{flight.startPoint}}
End point: {{flight.finishPoint}}
Start time: {{flight.startTime.slice(-11)}}
End time: {{flight.finishTime.slice(-11)}}
Ticket id: {{t}}


HTML lists allow web developers to group a set of related items in lists.
The HTML
 element is for grouping a collection of items that do not have a numerical ordering.
Typically, unordered-list items are displayed with a bullet, which can be of several forms, like a dot, a circle, or a square.
Unordered list are mainly important in navigation to show menu items.

item 1

item 2

The list-style-type CSS property sets the marker of a list item element.
The list-style-type property may be defined as any one of: symbol, string, custom-indent or none

item 1

item 1


--- layout: page title: Tetris tags: [] status: publish type: page published: true meta: _edit_last: "1" _wp_page_template: default ---
A rehash of the classic. Simple 2D graphics using OpenGL and sound effects via OpenAL. Supports 2 player Co-op and single player versus AI game play modes. It began as a simple project to implement a completely finished and working game utilizing modern C++. Since the completion of the working prototype, it has slowly become a test application for a growing set of common framework libraries. wiki


Portfolio
A random quote generator that will speak your quote in various accents and save your favorites.
Weather Dashboard RepositoryAn application to search for a city and view its weather conditions & forecast.
Planner RepositoryA day planner with local storage to keep your tasks at your fingertips.
Password Generator RepositoryNeed a good password? Got you covered.
Burgermania! RepositoryA burger logging app that uses MySQL, Node, Express, Handlebars, ORM, and Heroku.
xkcDaily RepositoryAn app for consuming XKCD comics while saving your calendar events.
A random quote generator that will speak your quote in various accents and save your favorites.
Weather Dashboard RepositoryAn application to search for a city and view its weather conditions & forecast.
Planner RepositoryA day planner with local storage to keep your tasks at your fingertips.
Need a good password? Got you covered.
Burgermania! RepositoryA burger logging app that uses MySQL, Node, Express, Handlebars, ORM, and Heroku.
xkcDaily RepositoryAn app for consuming XKCD comics while saving your calendar events.


<EMAIL_ADDRESS>Mabini Elementary School
Saint Louis High School Pacdal (SLP)
University of Baguio(UB)- BSBA
University of the Cordilleras(UC)-BSIT
Lower Navy Base, Baguio City, Philippines| Cel:<PHONE_NUMBER>9


## Lasers, Landslides ##
and Bendy Bananas?!
Stuart Grieve, TC Hales, Simon Mudd, Fiona Clubb and Robert Parker
### Hurricanes Frances and Ivan
![Frances](img/IVAN_TRACK.JPG)
![Frances](img/FRANCES_TRACK.JPG)
### Peeks Creek (2004) ![NCGS and NOAA](img/peeks_1.png)
### Peeks Creek (2004) ![NCGS and NOAA](img/DEBRIS2_MINE.JPG)
### Peeks Creek (2004) ![NCGS and NOAA](img/TREE_HOUSE_DEBRIS.JPG)
### Peeks Creek (2004) ![https://www.weather.gov/gsp/PeeksCreek](img/WIDE_POINT.JPG)
### Far from a one-off
## We need to understand: - Dynamics of hillslope sediment transport - Where these landslides occur - What triggers landslides - How we can predict them
### Colluvial hollows - In upland, humid landscapes we know that the majority of landslides initiate in **colluvial hollows** - But these features are difficult to map
### Theory ![hollow cartoon](img/cartoon.png)
### Theory
- Theory predicts uniform morphology
### Reality ![Photo from 2013 field campaign](img/hollow_photo.jpg)
### Colluvial hollows No systematic study of more than a handful ![map of hollows](img/hollow_map.png)
## Two Questions: ### 1. Can we identify hollows from topographic data?
### 2.
### Coweeta, NC ![Coweeta](img/coweeta.png)
### Coweeta, NC - Long-Term Ecological Research site covering $50~km^2$ - Daily rain gauge data going back to the 1930s - Persistent soil mantle through much of the Quaternary - Type location for colluvial hollows - High resolution LiDAR data available
### Digital deforestation ![raw](img/raw.png)
### Digital deforestation ![bare earth](img/be.png)
### Extracting hollows from topography
![hollow cartoon](img/cartoon_crop.png)
Digitally remove forests
Identify channel initiation point
Identify upstream contributing area
![https://www.nature.com/articles/336232a0](img/chans_begin.png)
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
Slope-area plots
### $\chi$-analysis A coordinate transformation which allows us to represent river long profiles as stright lines, normalising by drainage area ![10.1002/esp.3302](img/profile_example.png)
### $\chi$-analysis ![Clubb 2014](img/dreich.png)
### Extracting hollows ![hollow map](img/map.png)
### Extracting hollows ![hollow shapes](img/concavity.png)
### Measuring hollows ![hists](img/hists.png)
### How can we compare shapes quantitatively?
### The shapes of things are very important to some people
### The shapes of things are very important to some people ![https://www.forbes.com/sites/timworstall/2017/02/05/its-straight-bananas-that-made-me-support-brexit-too/](img/forbes_moron.png)
![eu legislation](img/EU_banana.png)
### But how does the EU measure our fruit? ![https://doi.org/10.1016/j.postharvbio.2009.05.001](img/orange.jpg)
### But how does the EU measure our fruit? ![10.1007/s11947-011-0556-0](img/costa_2011.gif)
### But how does the EU measure our fruit? ![10.1016/j.compag.2011.10.016](img/grain.jpg)
### But how does the EU measure our fruit? ![10.1016/j.compag.2010.10.006](img/random_fruit.jpg)
### Elliptical Fourier Analysis
![harmonic fitting](img/hollow_ani.gif)
Decompose a polygon as a series of ellipses (harmonics)
Shapes are normalised with respect to area, rotation and point spacing
Allows quantitative comparisons of hollows from across a landscape
Elliptical Fourier Analysis
### Elliptical Fourier Analysis ![slope and area shape](img/shape.png)
### Elliptical Fourier Analysis ![aspect shape](img/aspect.png)
### Our data shows that the theory is wrong! ![theory](img/video_ss.png) ![reality](img/concavity.png)
### The theory is wrong? Hollows are transitional landforms between hillslopes and channels: #### Channel Erosion: $E = K_{f}A^{m}S^{n}$ #### Hillslope Erosion: $E = K_{h}S\frac{\rho_s}{\rho_r}$ In hollows, these two forces should be approximately equal, yielding uniform hollows
### The theory is wrong? What processes are missing from our understanding? - Subsurface morphology - The role of biota, especially vegetation - Stochastic landsliding
## Models of slope stability make implicit or explicit assumptions about the uniformity of hollows
### Modelling hollow soil depth
![https://www.nature.com/articles/srep34438/figures/2](img/rob_figure.jpg)
The limiting factor on landslide hazard in hollows is the rate of soil production, not the intensity of storms!
### Future steps Introduce more complex hydrology and more spatial variability to model hollows... ![In prep model](img/ani.gif)
## Summary - Understanding small scale hillslope morphology is vital to understanding landsliding - The next generation of landslide models need to consider source area morphology - I wasn't wasting my time reading about how to measure the shape of fruit...
### Thank You!
![me](img/soil_pit.jpg)


The Interactions curriculum introduces students to science as an endeavor, a process we engage in, rather than solely a set of discoveries by others. Through engaging in modeling and scientific explanation students explore curious aspects of the everyday world, discovering how the unseen world of atomic level interactions and energy transformations are responsible for much of what we observe around us.
Curricular materials are available below. Sign up for access to comprehensive teacher guides and pre-post assesssments.
Watch these eight videos to discover important strategies on the Framework for K-12 Science Education and the Next Generation Science Standards (NGSS). Learn about major shifts in science instruction and the new role of the teacher.
Fundamental forces, unseen yet felt in every moment of our existence, govern the interactions of matter and energy that in turn shape our lives. By understanding these forces, we create a foundation that supports doing and understanding modern sciences and technologies. Why do clothes stick together when they come out of the dryer? How is it that a tiny spark can trigger an explosion? Working from these and other questions, students start their explorations by asking their own questions and discussing what they already know. They observe phenomena, engage in hands on activities and use online simulations to collect evidence. From their evidence, they construct mental models of the forces that drive interesting phenomena and test their models by predicting further events. Learn more »
Explore the role of shape in how antibodies and antigens interact.
Create multiple versions of helium atoms and make observations of how changing protons, electrons, and neutrons change atoms.
Create multiple versions of various atoms and record the number of protons, electrons, and neutrons in a table.
Explore the relationships between properties of molecules, temperature, and movement of particles.
Adjust the initial velocity of a third atom as it hits two bonded atoms and track the changes in energy during this interaction.
Observe how a chemical reaction evolves over time and affects the balance of potential and kinetic energy in the system.
Explore the relationship between charge, electric fields and forces on objects by manipulating charge in this simulation.
Explore the relationship between charge, electric fields and forces on objects by manipulating charge.
Explore the energy exchange between colliding objects and observe how energy transfer occurs under various circumstances.
Explore the difference in attractive forces between polar and nonpolar molecules.
Compare the change in potential energy when you separate molecules from each versus when you break molecules apart.
Simulate an analogy to Rutherford’s gold foil experiment to distinguish between the plum pudding and hard nucleus model of the atom.
Explore how potential energy created by particles of varying charge is converted to thermal energy.
Experiment with a simulated Crookes tube for qualitative results similar to Thomson's experiments in which the electron was discovered.
Explore the effect of an electric field on the electron distribution of an atom.
Add a drop of dye to water and watch how the dye molecules spread by interacting with water molecules.
Explore the strength and direction of forces between two charged objects by observing the color and size of force pointers.
Observe the direction of forces between a negatively charged Van De Graaff Generator and a positively charged object.
Drag around a stationary charged object and observe the force on the stationary object when it is positive and negative.
Observe the impact on potential energy when a substance dissolves in water.
Explore how the polarity of molecules affects how they mix (or don’t) when combined.
Set the amount and type of charge on particles and compare the potential energy of the electric field that is generated.
Set the charge of two particles and compare the potential energy of the electric field they generate as the particles are moved around.
Apply knowledge of the interaction between charged particles to guide an object through a maze.
Compare the surface charges on various molecules and explore which atom types tend to cause uneven sharing of electrons.
Set the initial height of a pendulum and observe how potential, kinetic, and thermal energy change during pendulum swings.
Set the initial position of a mass on a spring and observe how potential, kinetic, and thermal energy change when the spring is released.
Explore how different elements come together to form bonds and compare changes in potential energy and forces.
Use this simulation to compare the behavior of charged atoms and cathode ray particles (electrons).
Explore the structure of various proteins and see how the nonpolar amino acids form the core of many protein structures.
Explore a protein and its components using both a simplified representation to see structure, or view all atoms to see full details.
Explore the potential and kinetic energy as two atoms form a covalent bond.
Using a cloud model explore the balance of forces and electron distribution as two atoms are moved closer and further apart.
Explore how a particle model of gasses works to predict the behavior of a syringe under various conditions.
Observe the effects of temperature on chemical reactions.
Modify an existing molecule and observe how different atoms affect the electron distribution within the model.
Observe changes in potential energy as molecules self-assemble into micelles.
Explore how mixing two different liquids together can result in less total volume by investigating at the molecular level.
Add various unknown molecules to oil and water, and observe how the molecules sort themselves in response to interactions with the surrounding environment.
Compare the electron distribution, potential energy, and forces of two interacting hydrogen atom (which can bond) with two helium atoms (which don't).
Observer changes in potential energy as mixtures of polar and nonpolar molecules naturally separate like oil and water after being shaken.
Change the charge on spheres to positive or negative and observe how charges affect the interaction between them.
Observe how molecules with hydrophilic and hydrophobic regions move in a mixture of oil and water and how that affects potential energy.
Explore how the types of atoms forming a bond affect the distribution of electrons and overall shape of the molecule.
Generate proteins with different molecular properties and observe how their folding changes the potential energy of the system.
Generate proteins with different molecular properties and observe how their folding changes the potential energy of the system.
Observe a reaction between hydrogen and oxygen atoms, and watch how potential and kinetic energy change.
Carefully observe changes in kinetic and potential energy as hydrogen and oxygen molecules react.
Explore the interactions between a charged balloon and a neutral wall at the atomic-level.
Map the probable locations of electrons around an atom to understand probability distributions and the electron cloud model.
Manipulate the magnitude of charges on two objects to get a third positively charged particle to hit a target.
Drag the location of charges to get a positively charged particle to the target while observing forces and fields.
Manipulate the location and magnitude of charges to get a positively charged particle to hit a target.
Use a dart board simulation to understand probability distributions.
Explore how the charging and discharging of a Van de Graaff Generator occurs and changes in potential energy.
Model how electric fields change due to number and placement of charged objects.
Research shows professional development significantly improves implementation. To learn about professional development options and opportunities, visit www.register.interactions.nextgenpbl.science or send an email to<EMAIL_ADDRESS>For more details about the NSF project that funded this curriculum, visit the Interactions project web page.
This material is based upon work supported by the National Science Foundation under Grant No. DRL-1232388. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
This NGSS aligned curriculum is designed to support high school physical science students in developing an understanding of the forces and energy involved in atomic and molecular interactions. The year-long Interactions curriculum could be used in a physical science class, or tweaked to embed activities into a chemistry class. Interactions can be offered as a paper-pencil curriculum with the teacher facilitating web based simulation activities on a classroom computer, or it can be offered completely online for classrooms where students have personal (or shared) computers. In particular, students will:
These goals support students in building a foundation that prepares them for explaining and making predictions about important phenomena in all science disciplines.
The design principles and goals used to guide the development of the materials include:
The curriculum consists of four units that focus on answering a driving question designed to engage students in the learning goal and help them relate and build connections among ideas developed throughout the unit. Each unit is made up of a series of investigations, which are in turn consists of several activities. Driving questions and overviews for each unit are included below.
Unit 1: Why do some clothes stick together when they come out of the dryer?
Students develop a model of electric interactions to explain electrostatic phenomena. To develop and revise their models, students collect evidence related to how charged objects interact with other objects. They develop a particulate model of materials and a model of atomic structure to start building an understanding of the mechanism of charging objects.
Unit 2: How does a small spark trigger a huge explosion?
Students further develop their model of electrostatic interactions by incorporating the relationship between electric potential energy and electric forces. In particular, the unit focuses on the electrostatic attractions and energy conversions involved in the formation of molecules (chemical reactions).
Unit 3: What powers a hurricane?
Students use their models of molecular structure to explain and predict observed properties of materials. Then, students analyze and compare the energy transformations and conversions that occur during phase changes and chemical reactions. The model of electric interactions expands to incorporate permanent dipoles at the molecular level.
Unit 4: Why is a temperature of 107 degrees deadly?
Students explore how molecular interactions in water based environments are important for life and result in shapes necessary for biological functions. Students will apply the notion of stability and energy to describe how a fever can disrupt biologically important molecules (proteins). They will use simulations to see how temperature changes can affect the binding structure of proteins.