I live in AJ's podcast for your Monday.
Most wonderful show is keeping up with the Joneses.
AJ Jones.
Yes, sir.
How are you?
I'm good.
Better than last week.
Yeah, you sound much better than last week.
Yes.
Well, I guess major antibiotics will do that.
Yay, friend to Biotics.
Yay.
I just wish they were easier to swallow.
They're like the sides of a horse pill.
Talk to me about this week.
It was a good week.
I still spent a couple days in bed before fully recovering.
But the students are all back, aren't they?
Yay.
And they shared a church this morning.
Right.
70 staff and students in seven different places around the world.
They did the whole service this morning.
I was super proud of them.
Yeah.
Yeah, it's so good.
And you spoke last Monday night.
I stayed home with sickness.
I spoke on the baptism of the Holy Spirit, which I heard was amazing.
I cannot possibly comment.
No, but I did hear it was amazing.
And lots of people came up to get prayer for Baptist and the Holy Spirit.
You were a chapter for a new book.
I did.
You want to talk about this new book?
Um, yeah.
Uh, a couple of weeks ago, Patricia King, I just shot me an email and said, Hey,
I'm doing this book for women.
I think it's some sort of a devotional book or something.
And I'm wondering if you would contribute a chapter.
And so I prayed about it for a few days and then emailed her back.
my idea of what I'd like to talk about.
And she said, "That would be fantastic."
So, and then I promptly got sick.
So I was stressed about how much time I had
to write the chapter with having two weeks to write it.
And then I got sick for 10 days.
So I actually wrote it in a day.
And it turned out really well.
So that's sort of miraculous for me
'cause writing doesn't usually come that easy for me.
We also want to see the Batman Superman movie.
Yes, we did.
Don't of justice.
And there was nobody in the theater.
What did you think of the movie?
I really liked it.
So did I.
I don't understand why everybody was so negative.
I don't know.
I mean, it's not a Marvel comics.
It doesn't have much of the light-hearted stuff in it.
But they did a great job.
I thought all the acting was fantastic.
I thought Jesse Eisenberg was superb.
Yeah, he really was.
But two fun.
Yeah, I thought everybody was great.
-Yes.
-I love that, and this isn't a spoiler really, but it's set when Batman's been Batman for
20 plus years.
-Yes.
-I love seeing that side of a weary, grumpy superhero.
-Superhero.
-Yes.
-The diet that we were talking about last week, we've now finished.
-Yes.
-How happy are you?
-I'm so happy.
It's really funny because we have some friends that are on Saturday, we're just starting
the whole 30.
I'm sure for them that felt like, "Oh, this is going to be super restrictive," but for
I was so excited because I'm like, we can eat whole 30.
It's a whole new world.
Look at all the food we can eat.
That's right.
Because for the next 30 days, we have to maintain the weight we've got to.
Yes.
How much weight did you lose in total?
26 pounds as staggering as that is.

Five inches.
Five inches.
If you have never gotten back, no, you're not.
Last to cuddle.
I'm OK with that.
There's so plenty of me left.
What about you, babe?
I lost 44 pounds.
Yeah, you did.
And four inches off my waist.
Come on.
And, you know, in this whole thing of maintaining our way, we now have to eat at, I guess,
it's pretty much Paleo, really.
I've never, I've been so happy to eat almonds though.
Right.
Sad, sad world.
It is a sad world.
So normally, babe, we talk about a topic.
Yes.
At this point of the podcast.
Yes, we do.
This week, we're doing something different.
Yes.
Because we're thrilled to have some friends with us today.
Yes, we are.
Henry and Alex Seeley all the way from Nashville.
6th and Henry are the senior pastors and leaders of the Belonging and amazing church
up in Nashville.
And we've had the real privilege of getting to know them in the last couple of years.
And just recently they came to the school of supernatural life, blew our students away.
And we've been scheming this for a while.
Yes.
And we're so excited that you guys are here.
Thank you so much for making time in your schedule to come and speak on keeping up with
the Joneses.
It's awesome.
We're glad to be here.
Yeah, we are so excited to be here.
You guys have got an amazing story.
And there's so much to cover that I'm not sure we're going to get it all covered, but
I want to start seemingly backwards.
I want to start with the belonging because you guys just celebrated your second anniversary.
You've been running for two years.
And it is fair to say that your church has blown up in the best possible way.
And it's an incredible church.

It's full of vibrancy and to go from nothing, no church existing two years ago to where
you are now is unbelievable.
I'm sure the envy of many pastors in Nashville.
So tell us about how all that started and we'll pick your brains as we go along.
Well, we moved to Nashville April 2012, so almost four years ago now.

Both Alex and I met in the youth ministry there and it came on staff with our pastors
and work with them for a long time.
And then a few years ago, God just really began to stir us
about moving to Nashville.
And I had loved Nashville because we had kind of come
through and to adhere, but I swore that we would never,
never leave Melbourne.
We loved Australia so much.
- Never tell well for you that.
- Yeah, exactly.
I kind of only ever made two promises to the Lord.
One was that we would never move to Nashville.
And the second was that we would never pastor a church.
- You know, we got a great teaching on Interfiber.
I was, you guys might want to see it.
We need that.
Yes, but we honestly had no idea the Holy Spirit began
to stir us and we said the only way we would move to the US
to Nashville was if we got green cards in the lottery,
which you guys probably don't know anything about.
But every year the US government does what they call
a diversity visa lottery and they give away
a certain amount of green cards.
Which is incredible if you think about it.
And it's, I mean, it literally is one in a million kind of odds, maybe, you know,
greater odds than that.
And so the year that we applied, uh, we went through the whole process,
waited the six months and then they drew it and we didn't get it.
And at first we were excited because we thought that meant we got to stay in
Australia, but we felt like God had really spoken to us about moving.
And then three days later, I was away on tour in, uh, Germany and I got a random
email in the middle of the night and I started reading it and went, "This is a scam.
I'm going to delete this."
The email said, stated that it was from the US State Department and mentioned something
about them messing up the whole lottery.
They were going to cancel the whole thing in Detroit.
That's bad, isn't it?
I was like, "Yeah, how could the government mess something up like this?"
We'll just leave that there.
They did.
They somehow messed up the whole thing.
They canceled it and they redrew it three months later
and we got selected in the redraw.
And that really was it for us.
We had made a promise to the law
that if we got our green cards in the lottery,
that would be the only way.
And so we moved on that, sold everything we had.
And we kept asking God, what were we gonna do
when we got there?
And he just said, you just need to go with nothing,
but my power and my presence.
And I'll show you the rest when you get there.
And so we moved.
- That's because he was probably thinking,
if I tell you about that little vow
- I'm about not fastering right now.
- 1,000%.
- 1,000%.
- I'm also gonna pause you there
because you told, and I appreciate your telling the story
for speed, but there is so much to unpack there.
- Yeah.

You moved about as far away as you possibly could
from Australia.
- Pretty much.
- It's the other side of the world.
- It is.
- And you sold everything.
I mean, do you ever stop?
I remember speaking to Heidi and Roland Baker
that many of our listeners will know who that is.
And they, I remember they said, we see no sacrifice in our life.
- No.
- We feel like we haven't sacrificed a thing.
It's all reward.
And we're like, Heidi, you live among the poor
in the poorest nation.
What do you mean?

I feel like the Lord is saying,
"Sell everything and have moved to this other world."
That's a massive jump.
Looking back on that, do you feel like that sacrifice
or big or?
- I don't, I mean, there's been moments along the way
when we've realized, you know, it's kind of like God closes your eyes to the reality of some of the journey of it until, you know, you can look back in hindsight and go, wow, we actually, it was a much bigger deal than we even realized at the time.
Right.

And so for the few years before we left, you know, I'd been on staff, heading up all our creative stuff for our church and our ministry in a few years before that.
God had really clearly talked to me about coming off staff, which at the time didn't make any sense.
But what, you know, now looking back, realizing that God had to take us through these two years of us really walking by faith without a wage before we could leave Australia.
And to see the faithfulness of God through, you know, the first year off staff was our greatest year financial financially that we'd ever had.
The second year was the most challenging year that we'd ever had.
and just watching God just be this constant
through the midst of the whole journey
and knowing that that had to happen
so that we could be in a place of being able
to trust him 100%.
So when he said go, we were like, well, we can.
We've seen you provide when it's great,
we've seen you provide when we've gone nothing.
And so it's definitely been a sense of the reward
of knowing that you're walking in the midst
of the plans of God for your life.

- Right.
It's amazing how all of the Lord's plans
make sense in hindsight.
But going forward, it has to require faith
or it wouldn't be the Lord.
But when you get to the other world and you look back,
you're like, "Oh, it totally makes sense
"what that was about."
So sorry, I didn't mean to interrupt you,
but there was just so much.
- It's funny too, 'cause there's the dynamic
of lots of people wait for every door to open
before they'll agree to walk through it.
And God's actually looking for us to step out in faith
open in order to open the doors. So anyway, I love that.
That was one of the greatest challenges, I think, being on the other side, being here,
because there was talk from people that didn't understand that process to say, "I don't know
if God calls you out of something into nothing." And so there was this struggle for us to actually
we have to go and pursue God on the matter
and hear for ourselves that he just wanted
absolute obedience to God and not to man.
And so that was huge because that's true.
People wait for this door to open and I'll go through that
and that's the next entry point,
but sometimes God wants us in like a desert, if you like.
- Right, when I can clearly see how all the finances
are gonna be provided and where we're gonna live
and blah, blah, blah, well, then I'll get on the plane
and God's like, no, get on the plane.
- Yeah.
- And then I'll show you the rest.
- I think man's nothing looks different to God's nothing.

You just haven't seen it yet.
- Right.
- You know, it's not necessarily been done before.
It's not necessarily, you know,
it hasn't played out in the natural yet,
but it's already happened in the supernatural.
And I think it's kind of when you get on that,
that on board with that kind of thinking.
You know, and I remember I saw when we first moved,
we for a few months,
And it was a lot of culture shock, I think, especially because when you move from a Western
country to another Western country, you'll speak essentially the same language.
And because we've been here so many times over the years, I think I thought it was going to be
easier than it was. Because it was on the surface, everything is the same. But the systems here and
all that sort of stuff was just so very different for us. It definitely took us a season to really
acclimate and you know and in all of that not knowing what we were going to be doing.
But through that season we started to meet a lot of musicians who were traveling on the
weekend, loved the Lord with all their heart, out doing amazing things for God but because
they were gone so many weekends a year you know and they would leave Nashville on a Wednesday
or Thursday be out on the road to maybe Sunday night Monday.
And so a lot of these guys just didn't have a place for community and really didn't have
of a place where they were being poured into.
And so I think for Alex and I having been,
you know, in that kind of pastoral leadership position
for, you know, I guess 20 years,
feeling like we had so much to pour back into people
the whole time looking for a home church ourselves,
but we were like, we've got a lot to,
let's just, you know, let's just pour back into these guys.
And so we started opening up our home
on a Tuesday night every other week.

And these were just people you'd met.
So these seven people are just people,
you're in a relationship like,
hey guys, come on over.
We just took a couple new friends.
Some people we just met for the first time
and they shared their grievance.
So it's not finding community.
So are they just coming out?
Because it is a very, for people who don't live in Nashville,
it's, I remember when my parents got here,
they didn't understand that people,
well they did for a living and they don't understand,
it's a transient, even week by week it's transient
because when touring season picks up,
Like you say, you load on a tour bus Thursday,
you know, about till Monday,
and that's your life for a good couple of months.
And then when you're home,
you're doing whatever work you can pick up,
and then you're out with a different band.
And so it is completely transient.
And so you guys picked up on that.
You're obviously both got a hugely creative
musical background.
So you instantly gel.
So come over, what nights did you do it at?
- So that was a Tuesday night.
And we started in November 2012,
is when we did the first night.
And throughout that whole thing, you know,
we were living in this tiny house
when we first got here.
And we prayed and said,
God, if we meant to do this thing,
then you'll open up a place for us.
He puts us in a house with this ginormous basement
that the owners had built this whole area
for their kids to practice hockey,
'cause they're Canadian.
And-- - Yeah, come on.
- Yeah. (laughs)
- And also, it was just kind of eventually
gonna be a great space for us to meet on a Tuesday night,
which was a total bonus.
So we moved in and started meeting Tuesday nights
every other week.
And it was just a word of mouth thing.
I mean, Alex and I, I think the only people we invited
were the people that came the first night.
- The same after that.
- Yeah, the five really,
'cause seven's including us.
- Yeah.
(both laughing)
And God really moved quite profoundly that first night.
And there was a couple of different scenarios
of people just having such radical encounters with God
that just changed, there was a marriage
that was completely restored
and some other things that happened
It was really a profound night.
And so we, you know, we didn't push it.
We didn't, we actually didn't think a whole lot of it aside from us, just, you
know, having a space for people to come and worship.
And over the next probably eight or nine months, just word got out.

Just knocking at the door.
Our kids were out there in the pyjamas welcoming people in.
They were our welcome team.
And it was the end of that next year that, you know,
we had a hundred something people in our basement
and we were really-- - Think hockey or--
(laughing)
- Almost.
It was kind of like Tetris trying to get everyone in there,
you know, but we were just worshiping
by that point we were meeting weekly.
And we still, Alex and I were still denying
that it was a church at that point.
You know, I think there was part of us that was,
we understood the responsibility of being church leaders,
having been part of pioneering churches in the past.
And so we kind of went through this whole wrestle,
but after a few prophetic things
and some really strategic things from the law,
we launched church in February 2014
with about a hundred something people.
And you know, now we're getting close to a thousand
on a Tuesday night and another six or seven hundred
on a Sunday afternoon.
- Which is just so amazing.
And what I love about that is,
I think there's an epidemic in the circles
that we move in in the church,
where people see God breathe on something
that is entirely his doing,
because your marketing plan was to five people,
hey guys, why don't you just come over and hang out?
And we'd just love to connect with you.
That was your sole effort, and the Lord goes,
breathe is on it.
- Exactly.
- Before you know, 110 people are there, no strategy,
but then people will look at that and go,
we need to change church, we need to be more organic.
And they work backwards and say,
if we copy what you're doing, we'll get the results
you're having, forgetting.
- Yeah.
- Forgetting that, no, everybody's built to look the same.
That's A, not how God works.
B, that is man's efforts to build God.
It's just, it's so backwards.
And yeah, and now you've got, you know,
16, 1700 people in your church, I love it.
- And it's, I mean, that whole thing was hilarious to us
because we, you know, when we started meeting, you know,
in a public sense, we didn't have a budget.
We didn't, you know, we weren't,
Alex and I obviously weren't taking a wage at that point.
You know, we weren't even really--
no money to start a chair.
- Yeah, we hadn't done the whole,
it's been two years trying to raise funds
and all that sort of stuff.
We just were responding to what God was doing.
And so we literally had no money.

So we just start posting about our Instagram.
- 'Cause you would change locations
depending on where you manage to find space.
- Yeah.
- And sometimes it was literally 12 hours before
or 24 hours before.
So we just sat over and just follow us on Instagram
and then that way,
We don't have to tax everybody.
- Yeah.
And so, you know, then there was this whole thing about us,
you know, conspiring to use Instagram
to build the church and infiltrate and all this sort of stuff.
And people labeling us the Instagram church.
- Yeah.
- And I'm like, this is crazy.
I mean, two years before that Instagram didn't even exist.
You know, so there was no,
we didn't start out with this plan of one point,
we're gonna get to this thing where we're, you know,
Instagram's gonna be the tool for us.
It was just, we literally were using
whatever resource that we had available
to just let people know.
- And you have no staff.
It's not like you can be sending out.
- No.
- We had no database.
- Yeah.
- We had no database.
We had no one's details.
I mean, we just knew first name basis,
people coming into our home.
I mean, anyone could have walked into our home going,
"Oh, this is free for all.
I can rob everything."
But I mean, we just didn't know.
And I think that was even another thing.
I remember getting, there was another room,
had come out that we, our whole strategy was to tell people that we never intended on starting a church.
With like, and obviously, yeah, I think people trying to quantify something that God, like you
said before, just breathes on. And yet we preach about this stuff, we read about this stuff,
when God actually does it, we don't, we don't, we don't understand it. So we have to, we have to
work it out. But the other thing is if people would even just meet you, you know, I love
what Bill Johnson says. We're our dumbest when we think we know the motives of another
person's heart. And it's so true. But just I remember the first night we came to the
belonging was actually I had a dream we were away on vacation. And you guys meet on a Tuesday
night or we meet Emily on a Monday night. So Tuesday is our what your Wednesday. So you're
just zoned out, especially teaching at the school. And so, you know, a lot of our people
started going which we love by the way. We want everybody in a local church. We don't
care where it is, we just want believers committed to a local church. So a bunch of people had
been going and a lot of people, when anything new starts, they want to go check out rightly.
So we'd heard great things in Asia. It was like, "Do you want to go? Do you want to go?
Do you want to go?" And of course, we'd finish a Tuesday and we'd be exhausted. So it wasn't
high on my priority list to do. Then I have a dream and in the dream I go to the belonging
and meet you guys and just fall in love with you. I remember in the dream you had two kids,
you had a boy and a girl and this, that, the next thing. And I got your personalities in the dream
about what you were like on stage, what you were like on stage, what you were like,
"Ah, stage." So I was like, babe, I think we should go meet them. And you didn't know us from Adam.
There's no way you would know who we are. But as soon as we walked in, we were greeted,
which is shocking. First of all, we can maybe unpack that later.
But it was shocking.

But I remember you and we were the first people
to come over and out.
We knew a lot of people who could have connected,
"Oh, these are our pastors at an age, you come and say hello?"
No, you just walked up and you were like,
"Hey, how are you?"
And then I was like, "Man."
And then when we had dinner
and just connecting with you guys going,
"Oh, this is nothing more than humble, authentic people
at the Holy Spirit."
Oh, I'll put my line to go and you guys.
The trouble is people hear that story and again, I'm appreciating you're telling it
quickly.
But the story sounds like we left this incredibly successful mega church, which was one of the
fastest growing churches in Australia.
Is that right?
Yeah.
Right.

Of course.
That's what you've been trained to do.
But they forget that for two years, from the time you got here to having people in your
house, you didn't know what you were doing.
Yeah.
I'll probably talk about those two years, what it was like.
Well, I might talk about it from my perspective because with Henry, he produces, does mix
engineering and is a worship leader and was itinerant all over the world.
So technically, Henry could have worked anywhere.
We could have literally landed in any country.
He can work from online.
It doesn't matter specifically.
For me, it was a big deal.
So I am local church girl, 100%.
Same, I was part of the same church
since I was 11 years of age.
And we move here when I'm 39.
So that's a huge chunk of my life
in under one leadership covering.
So coming here, we of course started to visit church
every week to try and plant,
'cause we were like, we need to serve.
- You don't mean plant as in plant a church,
you mean plant yourself in a local church.
- Yes, absolutely, because we just believed,
don't neglect meeting together.
We just, and for our children,
we just never wanna be that person that is a rogue
doing our own thing.
So we would go to church after church,
but just couldn't find that spirit-leaping moment
of this is where it was meant to be.
And it wasn't because we didn't like it,
I just couldn't settle.
- Total little stone.
- So I think it got to about three months in.
I didn't know a human being.
My kids were not at school yet,
'cause it was from April to August
that we had to wait for that gap.
- Right, right, right.
- And I was home, and Henry was working and traveling,
and I think I actually became a little bit depressed.
And I would just lay in bed every day
just wondering what God had done.
So here we are, go with nothing, too nothing,
but with the power and presence of God.
And then it's like, I don't know anyone.
I can't even connect into a local church.
In fact, every local church I've gone to,
people don't even wanna say hi.
They don't even wanna talk.
and I'm going high and putting the accent up,
like I'm Australian, I'm a foreigner,
still nice to meet you.
And then that was it.
And so I'm like, how am I gonna build any sense of community?
I don't have a job.
All I know how to do is pastor.
I've been doing it for the last 20 years.
I got rejected from two retail positions that I applied for.
- No, no.
- And the job was like,
I don't know how to do anything but pastor.
- And so I was in a bit of a limbo
And I remember getting really depressed.
I had a friend of mine write in and said,
Alex, don't fall under this.
This is just the climate of the city
and you need to begin to pray into it.
And as I did that, I remember I was reading the Bible
as it happens in history.
And this one particular day I was done.
I think it was around July.
And I was like, I want to go home.
I said to Henry, we are not living here.
I don't like it here.
It is dried as barren.
It's dead.
And I just need to go home.
And he was just praying and interceding for me
'cause he'd heard God's voice say,
"No, we need to stay here."
And I just began to pray.
And I remember opening my word that morning
and it was in two Kings 2.19.
And it was when Elisha's prophets come to him
and they say Elisha Elisha, the location here is good.
But the water's a second, the land is unfruitful.
And he said, "Well, get me a new bowl of salt."
And as he put the salt in the water,
the waters were healed and the land became fruitful
and has been fruitful to this day.
And I literally felt the hand of the Lord on my heart
and He said, "The location is exactly where I've put you,
"but the waters are sick."
And they need new salt.
And you and Henry are gonna be part of that story,
of bringing salt to bring healing to the waters.
And I just knew that was the mandate.
And I knew from that moment on,
let me ask you about that because I love that story.
You can't see it 'cause we're in a studio
you're listening to this through headphones, but I'm tearing up, hearing that story.
Well, I think this was the first time that the Lord had spoken to me and Henry to do something.
I think the past had always been the Lord speaking to my leadership, commissioning us to do something,
and we followed that lead. So this was, I felt like I had my big girl pants on.
This is the, I'm an adult now, and God has spoken to me and given me a mandate, and it scared the
the bajib is out of me. I'll be honest because this is what I said to the Lord. Well, that's
really great. But how am I going to do that? I don't even have a church I'm about of.
No one knows who we are. I'm a woman in Nashville. They're not going to even let me preach on
a helper.  You've actually brought me to the wrong place.  He goes I've called you to be her.
You're going to change the course of history and I said well that's a bit arrogant, what do you mean?
But you know in hindsight I'm looking just two years in. I feel like I'm part of not the answer
but part of even opening the door for the female voice to be heard in the local church in the south.
And because that's been such a crazy thing,
because I always, I thought God had chosen the wrong place.
It's like, hold on a minute, but I remember Henry saying to me,
it's no coincidence that you won the lottery.
I'm not Henry.
And not Henry.
I don't even win any competition that I ever applied for.
And so to win the lottery, like Henry goes, God chose you to be here.
He goes, because I can work anyway, but he chose you to be here.
And so from there, it was like, okay, well then what now?
You know, you get this prophetic word.
- So you were just matter of fact.
Okay, God, if you said it, I'll believe it.
- Yep, absolutely.
- So that's amazing 'cause that's what you preach.
And it's what I like to preach,
but my internal struggle has been historically like,
oh no, God, well, they're bigger than I'm small.
But that wasn't an issue for you.
We're just like, okay, I'm done.
I've been in barrenness for two years about time.
Let's do something.
- And it was like, okay, well, how do I do this?
And he goes, I gave you a commission the week before
you left Australia.
I told you to love people like I love people.
And I'm like, okay, he goes to start doing that.
Person in the store, person in the school,
whoever you meet, he goes,
who are you without the church backing,
without the paycheck, without the title,
and without you being Henry Cili's wife, who are you?
I said, I'm your daughter,
and I carry the presence of God.
And he goes, so go do that.
And that's actually the five people,
two of those or, yeah, just two of those I invited.
The others were your friends.
I think one girl I'd had a prophetic word for
in the middle of the night, woke up,
directly spoken with her life, her and her husband came.
And the other one was Holly's vocal teacher
that after her vocal lesson,
I would minister and again speak into her life.
Those people came and got their lives radically changed.
But then I would just begin to just talk to people.
and then it was like, well, then what?
And we actually had a dinner
and we had three couples at our dinner
and at the end of the dinner, this lady came to me.
She said, why is it that tonight felt like I'd been to church?
- Oh.
- And I went, that's all we need to do is love people.
- Yeah.
 We were at Wild Ginger.
[laughter]
Jesus.
We were just in chat and we were just getting to hear one another's stories. It was either
one of you or both of you who said this. You said, "I'm angry at people who dishonor
the pastoral office." I said, "What do you mean?" You said, "Well, we just see people
who are titled pastors but don't pastor." I said, "Well, what does that mean to you?"

He's got to love well."
I'm fed up with people calling themselves pastor and not pastoring.
It wasn't that they weren't pastoring that bothered you.
Of course, that would be part of it, but it was the dishonor that was brought to that
title.
When I heard you guys talk about your love for people, and obviously I've seen it in
evidence, I was like, "That is amazing.
You guys are pastors of pastors.
You just love so well and the number one goal to your inconvenience is other people.
So I feel chagrin when I'm around you.
I'm terrible.
But you've talked about that.
When you were at the school, you talked about the, I mean, there's such excellence on everything
you do.
If you go to the belonging, there's just, you know, excellence everywhere, which is amazing.
And it's not even your building to put in place systems that would make that easy.
huge costs. I saw on Instagram the other day at like 4 p.m. all your car park people and they're
all in their branded vest and this there's so many little bits of attention to detail and you
know you're a huge technical person Henry. And so you know we bond over our love of
nerdery and it takes a lot to take all the tech stuff working but I remember you sharing at the
school that actually it's more important that the person running that feels loved and they get
get the stuff right.
How did you learn that?
Talk about that.
- Yeah, like I said before,
we've been in ministry, I guess, if you wanna call it that.
We've been on stuff, both of us,
in a church context for 20 years,
and honestly, learnt so, so much amazing stuff from that,
and God has really grown us.
And I think it was awesome to come into this season
where we got to kinda take it back to zero
in the sense that we were, you know, when we left Australia, we'd been part of that
church for almost 10 years since we'd planted it. It was almost 10,000 people. And so it
was very established in the way things were happening. And so I think to step into this
environment and be able to start from scratch and be able to stop and just say, "Okay, God,
what was fundamental and foundational to this season that we bring from the past?"
And then what was contextual for the past and what needs to shift for this season?
What was contextual for Melbourne that's not going to work here in Nashville?
What was the blueprint for Melbourne that's, how's the blueprint for Nashville different
to the blueprint for Melbourne?
And so that was, there were questions that we were pretty intentional about.
And I think we really got a revelation about this whole thing of not building a ministry
but building people.
We're not about building a brand.
We're not about trying to build a church.
We're about building people.
And so we've really tried to keep that at the forefront of what we do and who we are
as people.

There's too many people trying to, you know, build platforms for ministry rather than digging
wells for people to have encounters.
And I think that's the irony that, you know, that anyone would even know about the belonging
because really we've been so understated as far as any sort of promotional or anything
like that, brand building.
I mean, I love creatively, I love building brands and I love imagery and look and all
that sort of stuff.
But even with that, we've been pretty minimalistic in stuff that we've done.
Even stage wise at church, we don't have any moving lights.
It's cool that it's very stripped back because we've really wanted to make this season about
No other distraction, but just people having an encounter with God.
And so I think that's kind of the place that we lead from.
Like we're not, there is no end goal of building a ministry.
The end goal is building people.
And so even when we're dealing with our team, with our volunteers, they are the end goal.
The journey with them is the end goal.
Not of, hey, we're going to buy this year going to have a church of X amount.
Are we going to be in this many blah, blah, blah.
It's not that at all.
God's already got that stuff.
We're just being faithful with the people that he's put around us and doing it.
We're not perfect leaders by any stretch of the imagination, but we are doing our best
to walk this journey.
It's been a shift for me, to be honest, Alex has been in a pastoral role for 20 plus years.
For me, my safe place is the studio.
My safe place is not really anyone else around.
There's me in the console and Pro Tools, and that's my world.
That's my safe space.
to be in this place where I'm around people, not just around people, but leading people
and having to speak a lot more than necessarily comfortable for me. But it's been an amazing
stretch to see what God will do when you just trust Him and step out in His call.
Where did the actual name come from? Because I love that the name is the vision.
What had happened in that season, the year that I was just kind of sitting with the Lord,
I was really unpacking. What did you have in mind, Lord, when you wanted the church built?
Because I got a little bit, what's the word I suppose disoriented with church as a empire,
if you like it, as a tower. I'd got to this place where I almost forgot to love the people
while I was building the ministry.
So I felt a little bit disconnected.
And I remember asking the Lord God,
you need to speak to me because I just feel,
I've got a lot of questions.
I've been doing this for a long time,
but I have questions and I need them answered.
And I started to look at the way people would be treated
or the collateral damage of how people were mistreated.
And I needed to ask those questions.
And I remember reading through the word
I was going, well, you're the ultimate leader.

Follow me as I follow Christ.
So you're the ultimate.
How did you choose leaders?
And I began to look at how he chooses disciples and began to look at all the characteristics
and personalities of these men that he's chosen.
And I start to have this, you know, epiphany like, I'm like, Oh my goodness, you gathered
your inner circle.
men that some were misfits, some were just rebellious, none of them really knew who you were. They
all had a crisis in some area, yet you didn't make them go through the eight steps and make
them go through seminary and choose the wisest or the most learned. You just chose these 12
men and you allowed them to belong before they even believed. And something just hit me. And I went,
And I remember saying to Henry, "Get this."
He allowed them to belong before they even believed
and their behavior changed while being close to him.
And then it says, when he rises again
and he goes to the mountain of transfiguration,
he says, "Tell them to meet me there on that mountain."
And he said, "Some of his disciples worshiped
"and some still doubted."
 And yet he thought it was okay to put Judas in charge of the treasury when he was a
thief and he knew he had a temptation to steal. Yet we wouldn't ever do that in our leadership ranks.
And it just broke me. Now during the time I was actually discipling a lady who travels around
because her husband is a defense coach for NFL football. And she had moved to St. Louis. And so
So she would call me and just say, "Alex, what have you got for me today?
What revelation have you got for me?"
And I was almost discipling her on the phone.
And she used to be a Hollywood scriptwriter and a very, very smart, successful woman.
And she's an author and she's just an incredible lady.
We love to exchange stories.
And I told her about that, what I just shared with you.
And she goes, "Oh my gosh, Alex, that's it.
That's the name of your basement thing.
It's the belonging.
 And I just went, "Yes." And now Henry being
the brand guy, the imagery guy, I thought, "If he, if he, okay, is this, you know, this
is God."  The thing, I said, "It's the belonging." And
he goes, "Yeah." And then our friend Mia was over and I said, "Mia, the belonging." She
Because I love it.
Yes.
And then we added the belonging company.
And maybe you can shed light on what the company represents.
But that's kind of how we got the belonging.
- Yeah.
The whole deal with the company thing.
You know, we think of company as being like a business.
But as I started to delve into it a little more
and kind of research that whole word,
that the whole idea of company was from a French word
from the 1500s.
And it was this word that was kind of had a military context,
but it was this reference of this group of people
who would fight together in a military context,
but also know how to break bread together,
like how to eat together.
And that to me was such a representation
of what I believe the church really is.
It's we are comrades and we're saints.
we're in the army of the Lord, fighting together, and we're also breaking bread like we're doing
life together. And that was such a big deal to me because I feel like that they're the things
that are kind of missing in some regards in the church is we slip into this thing of the church
just being an event that we go to or, you know, it's meeting. Yeah, it's a meeting or it's an event
or whatever, rather than this real sense of, you know, you hear about people trying to be more
authentic or trying to be more organic. And like right there, you've already missed the fact that
clearly demonstrating that you're not being authentic. You know, trying to be friendly.
Yeah. Yeah. That's right. Those things, you don't try.
Right. And they come out of the relationships that you build. And so I think, you know, one of the
beautiful things that I think one of the greatest testimonies that we hear about our church is how
overwhelmed people feel when they walk in the door, how loved they feel. Yeah, you guys do a beautiful
job. Well, it is intentional. And we're again, we're not perfect at that, but our team are
so amazing. And they do genuinely love people. And so much of that came because so many of them
walked into our basement or into our house, into our kitchen. And that's what they experienced.
And so when we, you know, when we outgrow our house, and we started meeting, you know, in a
public sense, that was the one thing that we said to all of our crew, we were like, hey,
there's no rules on this stuff. But here's the one thing that we're going to be intentional
about the same thing that you experienced, that same sense of home and being loved.
Let's carry that because we can.
And that is one of the things that's missing in a lot, not every church, but a lot of
churches, that sense of, as a person, as a visitor, as part of this church, you're more
important than the event that we're doing right now.
And a lot of people will say that, but you can totally feel that at your church.
Yeah, you can.
Good.
Well, we're really glad about that.
But the one thing that, one pet peeve, if I was allowed to have one, was when we visited
those 20 or so churches, that everybody just walks into a building, they just get greeted
at a door to be given a bulletin, but it's kind of token.

It's like the movie theatre.
Yeah.
And I would be like, "Oh, this just feels awkward.
What about if you're there 20 minutes early and you're just sitting and no one is engaging?"
And I remember feeling very lonely every week and just wanting somebody to come and encourage
or just say hi.
And so we made sure, I felt like God sent us on a reconnaissance trip for those 20 churches
to see the need.
And I think when you've been in ministry for so long, you don't look with those eyes because
you're the one doing.
And everyone's Canadian to you.
Yeah, everyone's could ever wants to know us.
But now I'm the new person.
Right.
and with fresh eyes and now I'm the newcomer
and no one knows who we are.
And so now I'm on the receiving end
and I was like, oh, if I ever had a church,
I would never want this to feel like this.
So that's why we would have a black curtain
when we went to-- - I remember that.
- You know, because we wanted people talking to one another,
not just coming and sitting
and people actually would get angry and go,
your website says that church starts at 7.30
and Henry would go, yeah, it did.
because you're here.
There you go.
So be the church.
You're having church.
- I would be one of those people.
- He was just a worship band, hasn't said it.
- I walked in and I was like, wait, I have to,
yeah, why are they late?
I have to stand here with people I don't know.
- Yeah.
- And I've got no choice but to talk to them.

And 'cause the thing that I could never get is that
if we filled with the same spirit that raised Christ
from the dead and we have the love of Jesus,
It's very easy to be kind to Christians.
- Right.
- What someone gonna do if I came up to you, AJ,
and went, "Hi, how are you?
"You're not gonna go, please don't talk to me.
"Get away."
- Right, right.
- You know, I hope we--
- Yeah, I don't know.
But I think we fear rejection.
And so we stay, it's not that people are being mean
intentionally, is that we fear just coming up.
And, but that's actually what's gonna change
this generation 'cause we don't live in a kind world anymore.
- Right.
- And we need to be intentional.
And so, and we did it from the base.
We said, well, you freely receive that.
Now go freely give it.
- Yeah, so good.

- Yeah.
- We would need to be obedient to that.
Because it's not about us anymore.
We are not gonna build our identity on the belonging.
- Right.
- It's loosely held.
- I love you guys.
I love that you're in our city
and I love that these are your values.
- Seriously.
- And I love everything that's happened.
I could not be proud of you guys.

But when we connect with you, we're just like,
oh, I just love your hearts.
I love that you chose meekness over ministry
and that you chose humility over the spotlight
and any of those things that you,
really is true that no,
I mean, here's a strategy that nobody wants to follow,
but it's the answer for every successful person.

- So you spent two years just going,
what have we done?
you were obedient, but it doesn't look like anything.
And no doubt you've got concerned friends and family who are like,
"Oh, guys, seriously."
- Oh, yeah.
- You went from a 10,000 person church to--
- It's tough.
- You have like seven people in your basement
and long-blasted ones.
- We were getting texts about that.
- We were, and I had a person who I used to, you know,
really look up to, still do, literally didn't know what
we were doing and patted me on the back and just said,
"Well, good luck with whatever it is you're doing."
And I remember going home and weeping before the Lord.
And I said, God, you've made me look foolish.
And he said, yup, he goes,
because if you can look foolish before man,
I can trust you with my presence.
And I went, all right then.
- Beautiful.
- I choose to look foolish, I don't care.
And I threw it off and I went and I'm keeping course.
- Love it.
- If you haven't checked out the belonging,
I'd highly recommend going.
You guys meet on Tuesday nights and on Sunday nights.
- Sunday afternoon.
- Yeah.
- Where can we find you on the internet?
We're at thebelonging.co.
- If you guys are, listen to this in your own,
but we don't live in Nashville, we can't go.
You don't need to worry about that.
If you go to thebelonging.co/live,
you can watch live and you can watch archived messages.
- Yeah, that's correct.
- Nice.
- And you're on Instagram and Twitter?
- Yes, the Belonging Co on both.
- And if people want to connect with you guys,
find out more about you, you're on Twitter, Instagram.
- Yeah, we are.
You can just search us.
- We'll put a link to all the social media links
our show. Let's go to Allen and AJ calm slash 96. And as normal, if you have any questions that
you'd like to ask us on air, please head over to Allen and AJ calm slash ask and ask away. Well,
guys, thank you so much for coming in. We love you. We love your hearts and we feel so
honored you took time out your busy schedule to come and be on our podcast.
And that pleasure. Thanks for having us. Love you guys. Yeah.
Faith, Life, Communication, Tacos and Video Games
Paleotronuts and the kindness of God
But things we deal with every day
From Franklin, Tennessee
They are just like you and me
Alan, and AJ
Keeping up with the Joneses, keeping up with the Joneses, sharing their life, experience it.
Keeping up with the Joneses, keeping up with the Joneses.
They talk about faith in God, and everything under the sun.


|
Team 302 Robot
|
#include <Mech2IndMotors.h>
Public Member Functions | |
| Mech2IndMotors (MechanismTypes::MECHANISM_TYPE type, std::string controlFileName, std::string networkTableName, std::shared_ptr< IDragonMotorController > primaryMotor, std::shared_ptr< IDragonMotorController > secondaryMotor) | |
| Create a generic mechanism wiht 2 independent motors. More... | |
| Mech2IndMotors ()=delete | |
| ~Mech2IndMotors ()=default | |
| MechanismTypes::MECHANISM_TYPE | GetType () const override |
| Indicates the type of mechanism this is. More... | |
| std::string | GetControlFileName () const override |
| indicate the file used to get the control parameters from More... | |
| std::string | GetNetworkTableName () const override |
| indicate the Network Table name used to setting tracking parameters More... | |
| void | ActivateLogging (units::second_t millisecondsBetweenLogging) override final |
| Activates logging key values to network table. More... | |
| void | DeactivateLogging () override final |
| Stop updating the key values to network table. More... | |
| void | LogData () override |
| log data to the network table if it is activated and time period has past More... | |
| void | Update () override |
| update the output to the mechanism using the current controller and target value(s) More... | |
| void | UpdateTargets (double primary, double secondary) override |
| double | GetPrimaryPosition () const override |
| Return the current position of the primary motor in the mechanism. The value is in inches or degrees. More... | |
| double | GetSecondaryPosition () const override |
| Return the current position of the secondary motor in the mechanism. The value is in inches or degrees. More... | |
| double | GetPrimarySpeed () const override |
| Get the current speed of the primary motor in the mechanism. The value is in inches per second or degrees per second. More... | |
| double | GetSecondarySpeed () const override |
| Get the current speed of the secondary motor in the mechanism. The value is in inches per second or degrees per second. More... | |
| void | SetControlConstants (ControlData *pid) override |
| Set the control constants (e.g. PIDF values). More... | |
| Public Member Functions inherited from IMech2IndMotors | |
| IMech2IndMotors ()=default | |
| virtual | ~IMech2IndMotors ()=default |
| Public Member Functions inherited from IMech | |
| IMech ()=default | |
| virtual | ~IMech ()=default |
Definition at line 38 of file Mech2IndMotors.h.
| Mech2IndMotors::Mech2IndMotors | ( | MechanismTypes::MECHANISM_TYPE | type, |
| std::string | controlFileName, | ||
| std::string | networkTableName, | ||
| std::shared_ptr< IDragonMotorController > | primaryMotor, | ||
| std::shared_ptr< IDragonMotorController > | secondaryMotor | ||
| ) |
Create a generic mechanism wiht 2 independent motors.
| [in] | MechanismTypes::MECHANISM_TYPE | the type of mechansim |
| [in] | std::string | the name of the file that will set control parameters for this mechanism |
| [in] | std::string | the name of the network table for logging information |
| [in] | std::shared_ptr<IDragonMotorController> | primary motor used by this mechanism |
| [in] | std::shared_ptr<IDragonMotorController> | secondary motor used by this mechanism |
|
delete |
|
default |
|
finaloverridevirtual |
Activates logging key values to network table.
| [in] | int | indicate how many millisecondsBetweenLogging updates to the network table |
Implements IMech.
Definition at line 94 of file Mech2IndMotors.cpp.
|
finaloverridevirtual |
Stop updating the key values to network table.
Implements IMech.
Definition at line 117 of file Mech2IndMotors.cpp.
|
overridevirtual |
indicate the file used to get the control parameters from
Implements IMech.
Definition at line 79 of file Mech2IndMotors.cpp.
|
overridevirtual |
indicate the Network Table name used to setting tracking parameters
indicate the network table name used to for logging parameters
Implements IMech.
Definition at line 87 of file Mech2IndMotors.cpp.
|
overridevirtual |
Return the current position of the primary motor in the mechanism. The value is in inches or degrees.
Implements IMech2IndMotors.
Definition at line 152 of file Mech2IndMotors.cpp.
|
overridevirtual |
Get the current speed of the primary motor in the mechanism. The value is in inches per second or degrees per second.
Implements IMech2IndMotors.
Definition at line 166 of file Mech2IndMotors.cpp.
|
overridevirtual |
Return the current position of the secondary motor in the mechanism. The value is in inches or degrees.
Implements IMech2IndMotors.
Definition at line 159 of file Mech2IndMotors.cpp.
|
overridevirtual |
Get the current speed of the secondary motor in the mechanism. The value is in inches per second or degrees per second.
Implements IMech2IndMotors.
Definition at line 173 of file Mech2IndMotors.cpp.
|
overridevirtual |
Indicates the type of mechanism this is.
Implements IMech.
Definition at line 72 of file Mech2IndMotors.cpp.
|
overridevirtual |
log data to the network table if it is activated and time period has past
Implements IMech.
Definition at line 104 of file Mech2IndMotors.cpp.
|
overridevirtual |
Set the control constants (e.g. PIDF values).
| [in] | ControlData* | pid: the control constants |
Implements IMech2IndMotors.
Definition at line 181 of file Mech2IndMotors.cpp.
|
overridevirtual |
update the output to the mechanism using the current controller and target value(s)
Implements IMech2IndMotors.
Definition at line 125 of file Mech2IndMotors.cpp.
|
overridevirtual |
Implements IMech2IndMotors.
Definition at line 137 of file Mech2IndMotors.cpp.


Note: A voucher give you Internet access on one device only.
{% extends 'layouts/default.html' %} {% from 'helpers/form.html' import group %} {% set title = 'Voucher Login' %} {% block header %}
Note: A voucher give you Internet access on one device only.


It was late on a Monday night when I had decided that me and my buddy 'M' would go down into my basement and try our shoes in DMH. I had earlier picked up thirty-eight 50-mg pills, which we would end up finishing all of. Me and my friend had done a lot of reading about the effects of the DMH. We set ourselves up in the basement at precisely midnight with a little movie, the stereo as an audio substitute (Prodigy's 'Fat Of The Land') and downed our pills on the spot. Myself having taken 26 pills, didn't have to wait long before my side of the party kicked in. 'M' only downed 12 pills, so he was just silently chilling on another plateau.
After about twenty mintues, my vision started to become altered, over everything I saw was a sort of whitish coating, like very faint jellyfish caressing up and down over the scenery. At that point, when I fully realized the trip had started, what I recognized as the real trip came into full swing. Maybe 30 minutes in, I was having trouble speaking, it was a slurred impediment at first. This quickly became a little more drastic. I was having very delayed responses as if I had forgotten some of my basic motor skills and I could barely communicate with words. I was muttering 'Wha...' and 'huh' in short responses to things 'M' was saying. After a while, the music had carried me far enough (for about 45 minutes now, if I remember correctly), and time had just been passing by, as I felt oblivious to life around me.
I told 'M' to come upstairs to my bedroom, and we'd hang out there or chill out for a bit. The moment I got up it hit me, the multiplying of gravity, making it fairly fun to move around, but still a considerable chore. I also started hearing things. Odd things, like someone was talking to me, they were standing right behind me or something. I kept turning around and spitting out things like 'What?' and 'Whaddaya wan...?' to 'M', even though he claimed he wasn't saying anything. He eventually lead me up to my bedroom, and he said that he was tired so he was going to try and get some sleep, which wasn't hard for him. He crawled into his sleeping bag at the foot of my bed, and passed out quickly. This is also about when some really heavy halllucinations hit me.
I was suspecting that 1300 mg would let me have a little fun, but I wasn't expecting the insanity I was given. I was constantly talking to people I clearly saw, but then disappeared. I ventured my way downstairs at one point, and was having a great conversation with my brother when I kind of got a jolt, and he disappeared.  I went over and grabbed her head, which when I lifted up to my chest was my friend 'M's cat! Suddenly I got slapped! And jolted back to somewhat reality when I realized I was gripping 'M's head, had woken him up and he was pissed. I left him be, and turned the light on and off to no avail.
After a 3 or maybe even 4 hours, I still couldn't sleep. This is when the fun trip got really ugly. I'm crawling into bed when suddenly I see a few spiders, big spiders, almost even fist size, crawling over everything. I try sweep them away quickly, but they just die, and lay still there (?). Then I looked down at my body, and I have spiders crawling all over me. I got panicked and wiped me clean, and I could've sworn every one was real. This happened over and over again for about forty minutes. I had to shaken down every few minutes and watched spiders tumble from my body. I still saw people come in and out occasionally. That weren't real but I couldn't tell. Finally I ended up downstairs with every light in the living room on, perched on a chair back trying to stay off the floor, where the spiders could get me. I finally fell asleep after a few more hours, when the spiders ceased to bother me. I had come down quite a bit now.
The general let down is true to what a lot of people say, it takes days. For a few days, I felt myself becoming very tired after short whiles, and I still got a few vivid hallucinations, mostly hearing people talking, from time to time, but the comedown wasn't much of anything. It was just a sense of draining that I got. Except for the immediate spider encounter after the peak, this trip I actually enjoyed. I have experimented with many other pharmaceuticals before, but none ever actually seemed to displace me from reality like this one did. I wouldn't highly recommend it, and wouldn't recommend it as a recreational drug at all.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


--- layout: default title: "Submit a new benchmark result" comment: >- Fill out this form to submit a new benchmark result to the website. The data will be submitted to the website via a pull-request on GitHub. Please go to usnistgov/chimad-phase-field to view the pull-request. To upload a new benchmark result with a manual pull request, please follow the manual upload instructions. --- {% include title.html %}


Making a Super Short Video
Examples
You're almost finished - Woohoo! By now you should be familiar with all the software available to help you make your video. You should also have an idea of the general guidelines that you should follow when conceptualizing your film. All that's left is to check out some examples and get inspired.
Check out the clips in the short video section below.
Short Videos
Here's a list of examples videos that are reasonably close to thirty seconds. Take a look at each one and take note of what works and what doesn't in each.


{% extends 'layout.html' %} {% block pageTitle %} NHS login - Delegated access prototype v4 {% endblock %} {% block content %}
Date started: 7/11/2019
Date ended: 6/12/2019
User journey map
Alice has an NHS login account and wants to add a delegate for a service
Journey starts with Alice adding a delegate.
Bob has been invited to act on behalf of Alice as a delegate within a service
Bob has not yet agreed to consent
Bob may or may not have an NHS login account already
Journey starts with Bob receiving an email inviting him to be a delegate


Hierarchy Test
Hard coded Demo
Root
One
Two
Three
A
B
C
Dynamic
xml parsed to clickable div - IDs are important!
better looking?
JsTree


|
Scintillator
v0.0.1 at 1b5c195
Documentation specific to the C++-based scinsynth
|
#include <Encoder.hpp>
Public Types | |
| typedef std::function< void(std::shared_ptr< scin::av::Buffer >)> | SendBuffer |
Public Member Functions | |
| Encoder (int width, int height, std::function< void(bool)> completion) | |
| virtual bool | createFile (const fs::path &filePath, const std::string &mimeType)=0 |
| virtual bool | queueEncode (double frameTime, size_t frameNumber, SendBuffer &callbackOut)=0 |
Protected Member Functions | |
| void | finishEncode (bool valid) |
Abstract base class for encoders? Maybe ImageEncoder, VideoEncoder, AudioEncoder? Or Video also handles audio?
|
pure virtual |
Creates a file and prepares for encoding.
| filePath | The path of the file to open, including extension, which provides an important hint to the encoder library as to the type of media file to encode. |
| mimeType | Optional string argument, either empty or a mime type, providing a further hint to the encoder about the type of container and codec to use to encode this file. |
Implemented in scin::av::ImageEncoder.
|
pure virtual |
Provides a function to call when the next buffer has been rendered.
| frameTime | The overall render time associated with the frame that will be provided. |
| frameNumber | The counting number of the frame. |
| callbackOut | On return will be populated with a callback function to be called when the Buffer is ready. |
Implemented in scin::av::ImageEncoder.


Welcome to Holon 86
This fully functional version of Holon 86 is offered for free study and use.
Store the uncompressed files in one common directory. That's all.
Holon Files
- HOLON86.EXE is the development environment (the host).
- HOLON86.STR and HOLON86.TEX contain the source text of the target program.
- HOLON86.COD contains the code image of the target program.
- HOLONHLP.STR and HOLONHLP.TEX contain the online manual.
- WMON86.EXE is the target monitor for a DOS window.
- RMON86.EXE is the target monitor for a separate PC, serial port COM1:.
Holon runs under DOS. When HOLON86.EXE starts, the program looks for the files HOLON86.STR and HOLON86.TEX in the working directory.
- Starting from the DOS command prompt: Change the current directory to the Holon directory, then run HOLON86.EXE.
Problems have been reported with starting from the DOS command prompt in Windows NT. Then, start Holon from Explorer.
- Starting from Explorer: Click on HOLON86.EXE, the working directory is set correctly by Explorer.
- Starting with an Icon: If you create an icon on the desktop, set up the working directory in the Properties/Program options.
HOLON86 starts and shows the welcome screen.
If you see an empty browser and the question: "Create a new application? Y/N", then HOLON86 has not found the program files .STR and .TEX, probably because the working directory is not set to the Holon directory. Press N and restart Holon in a different way.
Operating Holon
You see the source text of the target program in a browser, clearly structured into modules, groups, and words. The middle panes show the definition and comment of the current word. At the bottom the stack pane is used for interactive testing.
- Use the cursor keys to move around in the browser.
Below the stack pane a function key menu is presented.
- Press the Ctrl key to see other commands, e.g. Ctrl+F7=Turnkey (creates a self-starting EXE file).
- More functions are available with the Alt key and the Ctrl+Sft key combination.
Testing Holon
HOLON86 includes two sample programs: HelloWorld and Tetris. Try HelloWorld first; that's always a good start. HelloMain is the main program word of HelloWorld.
- Go to the module HelloWorld, group Program, word HelloMain. See the definition and comment of HelloMain in the TEXT pane. You are here already, if you haven't moved around in the browser yet.
- Press F4=Run and see the welcome message.
- Press <Esc> to end the program.
Change the welcome message:
- Go to the word HelloMessage a few words above HelloMain.
- Press F2=Edit to edit the definition of the word.
- Change the welcome text inside the quote marks, say add ..how nice....
- Press F3=Load to reload this word.
- Go back to HelloMain and run the program again (F4=Run).
- See the program display the new message, although you didn't reload the whole program.
When you reload a word, Holon generates new code for this word and exchanges the code in the existing code image.
Now, have a look at Tetris as an example of a real application. The main word is Tetris.
- Let's go to Tetris. Try a new method for looking up a word: Press the <space> bar and type the name of the word: t e t r i s . After each new character Holon selects the first word in the target that starts with the characters that you have entered. Note the characters on the lower line of the browser
- With the word Tetris selected, press F4=Run.
- Play a little, use the cursor keys to manipulate the pieces.
- Press Q to return to Holon (press N at the question).
Online Manual
Press F1 to enter the online manual, which provides a detailed description of the operation of Holon 86. The manual can easily be printed. Note the hints in the chapter Setup, section Printer.
Forth
If you are familiar with Forth, you will feel at home rapidly. You can import your existing Forth programs into Holon. Lookup the details in the chapter Edit, section Export/Import.
If you are new to Forth, Holon makes it easy to adapt. Study the programs and the system modules. Try the words. Every detail of the target system is clearly defined and commented. Nothing is hidden in Holon. The section Forth in the chapter Develop describes all Forth word types that are available in Holon. See also the tutorial Using Holon, which provides a quick introduction to working with Holon and Forth.
In the test so far, the application runs in the DOS memory space above the host. Application and host are coroutines. This is indicated in the browser at the lower right by "COR".
Holon 86 makes it easy to shift between the application (target) and the host. When you run the application, the DOS window belongs to the target. When the application ends, the DOS window returns to the host.
But Holon 86 also provides two other workspaces for the target: The target can operate in a separate DOS window or in a separate PC. This is a unique feature of Holon 86, which offers important benefits:
- You always see both the definition of the program and the running program itself.
- You can work interactively on the running target program.
- The target has the full DOS memory space available.
Run the application in a separate DOS window.
- Start the program WMON86.EXE. WMON is a monitor that communicates with Holon 86. The application is built on top of WMON.
- Setup Holon 86 for the new target space: Press Ctrl+F3=System. Select target system = "DOS window" (press <space>). Press F8 or <Esc> to exit.
- "COR is replaced by "WIN", and a blinking dot indicates communication with the target window.
- The host downloads the program code to the new target memory. You may have noted the display of code and list addresses. If this went too fast, you can repeat the downloading of code to the target with the command Ctrl+Sft+F7=Download.
You may need to set up the scheduling of the DOS windows.
In Win 95/98 set Properties/Misc: Always_suspend=noYou are now ready to cross-develop a program between two DOS windows.
- Try the HelloWorld program first. Select HelloMain and press F4=Run. The host starts the program in the target and waits for the program to end. The host shows a white square instead of the blinking point while it is waiting.
- Press <Esc> to regain control of the host. The host stops waiting for the target, but the target is still occupied with the application and does not communicate with the host now. We are "offline".
- Stop the program (press <Esc> in the target window). The program returns control to the target monitor, which communicates again with the host ("online").
The WMON monitor is able to multitask with the application. If the application runs as a task, the monitor remains online and you can continue development while the program runs.

- Press F4=Run to start the task. Note that the host remains active while the HelloWorld program runs.
- Change the message. Go to HelloMessage, press F2=Edit to enter the definition, change the text, and press F3=Load to reload the word.
- Watch your new message in the target window. Holon has substituted the code in the running target program (if the word was loaded correctly).
Maybe you think that it is no problem to change a string in a running program, it's only data isn't it?
Thus let us change some real code in Tetris. Run Tetris as a task, but stop the HelloWorld task first:
- Execute StopUserProg (go to the word StopUserProg, press F4=Run).
- Start the Tetris task: go to TetrisTask and press F4.
- Play a little with Tetris in the target window.
- You may already have noted that the <up> key is not working. The <up> key is designed to rotate the pieces. Correct this 'bug' now on the running program.
- The cursor key functions are handled in the word FuncCases. Enter the definition of FuncCases and delete the backslash in front of the line that handles the "up" case (c = 72). The backslash turns the line into a comment. Therefore the "up" case has not been loaded.
- Load the word and try the <up> key in the target program.
- Change other commands and parts in the program. As you see, every change is immediately effective. In Holon you can instantly test whatever you have done.
Running the application in a separate PC
If you have a separate PC available, load and run RMON86.EXE on the second PC under DOS. Connect both PCs with a serial communication line. Change the target platform in the system setup. The monitor RMON86 uses the serial port COM1. On the host you can choose among the ports COM1..COM4.
This setup is ideal for the development of applications for embedded PCs.
http://holonforth.comCopyright (c) 1995-2003 Wolf Wejgaard, All Rights Reserved.


sm
::
eod
::
GPSCoordinateV2
GPSCoordinateV2 Struct Reference
List of all members.
Detailed Description
Definition at line
48
of file
gpscoordinate.h
.
Public Member Functions
GPSCoordinateV2
()
Public Attributes
int16
degrees
char
hemisphere
int8
minutes
float
seconds
Generated on Fri Apr 1 15:36:50 2011 for Seeing Machines CoreData API by
1.5.0


|
| ItemsCollection< Observable > | Launch [get] |
| |
| virtual string | AppFolder [get, set] |
| | The path to the directory which contains all application's classes. This path will be registered via Ext.Loader.setPath for the namespace specified in the name config. More...
|
| |
| virtual string | AppProperty [get, set] |
| | The name of a property to be assigned to the main namespace to gain a reference to this application. Can be set to an empty value to prevent the reference from being created More...
|
| |
| virtual bool | AutoCreateViewport [get, set] |
| | True to automatically load and instantiate AppName.view.Viewport before firing the launch function. Defaults to: false More...
|
| |
| virtual string [] | Controllers [get, set] |
| | Names of controllers that the app uses. More...
|
| |
| virtual string | DefaultToken [get, set] |
| | The default token to be used at application launch if one is not present. Often this is set to something like 'home'. Defaults to: null. More...
|
| |
| virtual bool | EnableQuickTips [get, set] |
| | True to automatically set up Ext.tip.QuickTip support. Defaults to: true More...
|
| |
| virtual string | GlyphFontFamily [get, set] |
| | The glyphFontFamily to use for this application. Used as the default font-family for all components that support a glyph config. More...
|
| |
| virtual string [] | Namespaces [get, set] |
| | The list of namespace prefixes used in the application to resolve dependencies like Views and Stores More...
|
| |
| virtual string | LaunchHandler [get, set] |
| | Called automatically when the page has completely loaded. More...
|
| |
| ParameterCollection | Paths [get] |
| | Additional load paths to add to Ext.Loader. See Ext.Loader.paths config for more details. More...
|
| |
| override string | Name [get, set] |
| | The name of your application. This will also be the namespace for your views, controllers models and stores. Don't use spaces or special characters in the name. More...
|
| |
| virtual string | Scope [get, set] |
| | The scope to execute the launch function in. Defaults to the Application instance. More...
|
| |
| virtual string [] | ModelNames [get, set] |
| | Array of models to require from AppName.model namespace. More...
|
| |
| ItemsCollection< Model > | Models [get] |
| |
| virtual string [] | StoreNames [get, set] |
| | Array of stores to require from AppName.store namespace and to generate getter methods for. More...
|
| |
| ItemsCollection< AbstractStore > | Stores [get] |
| |
| List< AppRef > | Refs [get] |
| |
| virtual string [] | ViewNames [get, set] |
| | Array of views to require from AppName.view namespace and to generate getter methods for. More...
|
| |
| virtual string | Name [get, set] |
| | The controller name. Required More...
|
| |
| ConfigItemCollection | CustomConfig [get] |
| | Collection of custom js config More...
|
| |
| virtual string | ItemID [get, set] |
| | An itemId can be used as an alternative way to get a reference to a component when no object reference is available.


Pillow core team member.
Maker of the Pillow-SIMD library.
On-the-fly image processing service in Uploadcare.
from PIL import Image, ImageFilter.BoxBlur
im.filter(ImageFilter.BoxBlur(3))
...
import cv2
cv2.blur(im, ksize=(3, 3))
...
cv2.GaussianBlur(im, (window, window), radius)
radius = 3
58 ms
radius = 30
880 ms
im.filter(ImageFilter.GaussianBlur(radius))
radius = 3
60 ms
radius = 30
61 ms
Load, rotate by 90°, reduce 2.5 times, apply blur, save to JPEG.

Results page
https://python-pillow.org/pillow-perf/
Benchmark sources
https://github.com/python-pillow/pillow-perf
Actual execution time doesn't change.
Throughput grows in proportion to the number of cores.
Actual execution time lowers.
Throughput grows not in proportion to the number of cores.
Actual execution time lowers.
Throughput grows.
Win-win.
Release GIL
Pillow, OpenCV, pyvips, Wand
Doesn't release
pgmagick
Create not more than N + 1 workers,
where N is a number of CPU cores or threads.
Worker — a process or thread doing the processing.
Executing imaging operations blocks event loop,
even if a library releases GIL.
@gen.coroutine
def get(self, *args, **kwargs):
im = process_image(...)
...
@run_on_executor(executor=ThreadPoolExecutor(1))
def process_image(self, ...):
...
@gen.coroutine
def get(self, *args, **kwargs):
im = yield process_image(...)
...
>>> from PIL import Image
>>> %time im = Image.open('cover.jpg')
Wall time: 1.2 ms
>>> im.mode, im.size
('RGB', (2152, 1345))
>>> from PIL import Image
>>> %time im = Image.open('cover.jpg')
Wall time: 1.2 ms
>>> im.mode, im.size
('RGB', (2152, 1345))
>>> %time im.load()
Wall time: 73.6 ms
from PIL import Image
Image.open('trucated.jpg').save('trucated.out.jpg')
IOError: image file is truncated (143 bytes not processed)
from PIL import Image, ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.open('trucated.jpg').save('trucated.out.jpg')
| Pillow | VIPS | OpenCV | IM | |
|---|---|---|---|---|
| Number of codecs | 17 | 12+ | 8 | 66 |
| Broken images | ✅ | ✅ | ✅ | ✅ |
| Lazy loading | ✅ | ✅ | ❌ | ❌ |
| Reading EXIF and ICC | ✅ | ✅ | ❌ | ✅ |
| Auto rotation based on EXIF | ❌ | ✅ | ✅ | ✅ |
cv2.imread(filename)
cv2.imread(filename, flags=cv2.IMREAD_UNCHANGED)
OpenCV is not designed to work with untrusted sources.
OpenCV images are numpy arrays.
import numpy
from PIL import Image
...
pillow_image = Image.open(filename)
cv_image = numpy.array(pillow_image)
import numpy
from PIL import Image
...
pillow_image = Image.fromarray(cv_image, "RGB")
pillow_image.save(filename)
Slides: homm.github.io/image-libs-2017/
Email: ak@uploadcare.com


Preparation time
30 mins to 1 hour
Cooking time
10 to 30 mins
Serves
Makes 8 large biscuits
Dietary
Get your doublet and hose ready for a right Tudor knees-up. These traditional Tudor biscuits are flavoured with prized spices – caraway, aniseed and mace.
Line two large baking trays with baking parchment.
Place the caraway seeds in a spice grinder or a pestle and mortar and grind to a powder. Sieve the caraway, flour, aniseed and mace together into a bowl.
Rub the butter into the flour until it resembles fine breadcrumbs, then stir in the sugar and lemon zest. Add the eggs and bring the mixture together to form a soft dough.
 Place the dough balls on one of the prepared trays, cover with cling film and chill in the fridge for 30 minutes.
Preheat the oven to 180C/160C Fan/Gas 4.
Knead the four smaller pieces of dough on a lightly floured surface and roll using your fingertips into a 30cm/12in rope. Knot into double knots and place on one of the lined trays.
Shape the remaining four larger pieces of dough into long ropes and cut away a quarter of each rope. Lay out (as pictured) into Celtic knots, using the reserved dough to make the rings that sit on top. Place them directly onto the other lined tray. (The double knots will take an extra 5–10 minutes longer to bake, so don’t mix shapes on the baking trays.)
Brush with beaten egg and sprinkle with caster sugar. Bake the Celtic knots for 15–20 minutes, until golden-brown and the double knots for 20–25 minutes. Remove from the oven and leave to cool on a wire rack.


Hang Your Boots Privacy Policy
We will never give or sell information that users are giving to us.
The information may become available through Hang Your Boots’ website, on the user’s profile page, and the page of the house to which he/she has committed.
Except for that, the information will remain private.


| Algorithm: | YescryptR16 (GPU is slower than CPU) | |
| Block time: | 2.0 minutes | |
| Max Block size: | 2M | |
| Block reward of block #1: | 50 YTN | |
| Total YTN setting: | 84,000,000 YTN | |
| Calculated max YTN: | about 80,000,000 YTN | |
| SubsidyHalvingInterval: | 800,000 blocks | |
| Difficulty re-target: | every block (DarkGravityWave v3-1) | |
| Premine: | none | |
| P2P Port: | 9981 | |
| RPC Port: | 9982 |
| 2017: | CPU mining, exchange, etc... | |
| 2018: | CPU mining, exchange, etc... | |
| 2019: | CPU mining, exchange, etc... | |
| 20XX: | 1Yen < 1Yenten. |
| Q: | どう払うん？ | |
| A: | 円天で！💪 |
| Q: | ...How??? | |
| A: | By Yenten!!!💪 |


Driver 'wished he had pressed the brakes earlier' after A14 crash which injured horse
by Michael StewardA lorry driver has admitted careless driving after crashing into a broken down horsebox on the A14 and injuring a horse.
Danny Sanders was charged with driving without due care and attention following the incident on March 29 on the A14 between junctions 46 and 45 at Rougham, near Bury St Edmunds.
Magistrates in Ipswich heard how Sanders, of Grosvenor Road, Lowestoft, was driving his DAF Truck on the westbound carriageway around 2.50pm when he failed to spot the broken down horsebox and crashed into the back of the vehicle.
The horsebox, which had been on the carriageway for some time and was displaying its hazard warning lights, contained a horse and the animal suffered injuries as a result of the crash.
Extensive damage was also caused to the horsebox and Sanders' truck left the carriageway and ended up in a ditch, Suffolk Magistrates' Court heard.
The horse's injuries were not believed to be serious and no-one else was hurt in the incident.
The carriageway was closed for several hours while emergency services dealt with the incident at the scene.
Sanders, who did not appear before magistrates, pleaded guilty by post and a statement from him was read in court.
The 41-year-old said he "regretted" the accident and "wished he had pressed the brakes earlier".
Magistrates adjourned sentence until January 29 at Triton House in Bury St Edmunds.
MORE: Lane closed on A14 after lorry collides with horsebox
Statistics from the British Horse Society revealed that 3,737 road accidents involving horses were reported between November 2010 and March 2019.
A total of 315 horses have been killed as well as 43 people, according to the figures.
But the equestrian charity says that only one in 10 incidents are being reported.
The charity says it continues to campaign to raise awareness of the threats that riders and carriage drivers face.
In April, racehorse Rockwood was killed after a race when it was being transported home on the A15 at Waddingham, near Lincoln.
The head-on collision near Caenby Corner caused the horsebox to flipped on to its side.
The driver, Graeme Scantlebury, and Rocky's trainer, Karen McLintock, were unharmed in the crash but Rockwood died at the scene.


{% extends "network/layout.html" %} {% block body %} {% if message %}
Don't have an account? Register here.


Simple Enemy
Having a game where your hero is in an empty room is not much fun! Let's add some enemies to the game! For now they are going to be simple enemies, mario style. The enemy will spawn and start walking. It will walk until it hits a wall, then turn around. If at any point the enemy touches the player, the player dies. Just like mario.
The Plan
How will this work? First off, we need to make an EnemyCharacter
class. Games have multiple EnemyCharacter
classes, one for each type of enemy. So for zelda you might have MoblinEnemyCharacter, ChompChompEnemyCharacter, ChickenEnemyCharacter and so on. We are only going to have one enemy class for now EnemyCharacter
.
So, where do enemies go? Right now the Game
owns the PlayerCharacter
. Can we just put an enemy array in Game
? Not really. Because our game has multiple rooms (or levels, whatever we are calling them), each room has it's own set of enemies. If you are in Room1
then the enemies in Room2
should not update or render! Therefore it makes sense to add a EnemyCharacter
array inside of the Map
class.
Now that map has a list of enemy characters it's going to need an update method. It needs this so the enemies can update themselves. It would also make sense to check for player collision in here! Instead of the player having to know about all the enemies, we just mape the map know about the player. Because map knows about the enemies and the player it's trivial to check for collision in there.
Finally, we need to add a game over state. This is going to be a simple bool in the Game
class that controls what text we see on screen.
New Project
Let's make a new project, call it SimpleEnemy and get this project up to par with the cleaned up version of the OpenTheDoor section of the writeup. We're going to work from here.
Character refactor
Before creating the enemy class we need to refactor the Character
and PlayerCharacter
classes a bit. Right now all of the animation code is in PlayerCharacter
seeing how both the player and the enemy will animate, we should move this functionality into the Character class.
The collision handling code is also all in PlayerCharacter
, and both player and enemy are going to collide with the wall, but for now we're going to duplicate the collision code across these two classes.
This refactor is super simple. Take the Animate method from PlayerCharacter
and move it into Character
. Next take the animFPS and animTimer variables and also move them into Character
. That's it. The animation code is now shared for all characters!
Run the game, everything should work like before.
Creating EnemyCharacter
The enemy characters are going to be simple. They are either going to move up or down. They are going to start walking and keep walking until they hit a wall. Once they hit a wall they are going to change direction. This is about as easy as you can get with an enemy, coincidentally most enemies in Super Mario work like this.
Add a new file, let's call it EnemyCharacter.cs, in it make the EnemyCharacter
class a child class of Character
(Just like PlayerCharacter is a subclass of Character). Add three variables to this new class:
- float speed = 60.0f;
- Determines how fast an enemy walks. Measured in pixels per second.
- The player moves at 90, so the enemies are a little slower.
- 60 pixels per second on a 30 pixel grid means enemies move 2 tiles / second
- bool moveUpDown = false;
- If true, the enemy will move in an up and down direction
- If false, the enemy will move in a left to right direction
- float direction = 1.0f;
- Multiplies speed to determine which direction the enemy walks
- If positive the enemy will move down or right
- If negative the enemy will move up or left
The Constructor for the enemy class is trivial, it does almost exactly what the Player constructor does. The only exception is the last argument that determines if the enemy is moving up/down or left/right. Also note, the sprite positions are different, i looked these values up using Paint.Net for you.
public EnemyCharacter(string spritePath, Point pos, bool movingUpDown) : base(spritePath, pos) {
AddSprite("Down", new Rectangle(68, 112, 29, 30), new Rectangle(101, 112, 29, 30));
AddSprite("Up", new Rectangle(134, 112, 30, 29), new Rectangle(167, 112, 30, 29));
AddSprite("Left", new Rectangle(1, 113, 30, 30), new Rectangle(34, 112, 30, 30));
AddSprite("Right", new Rectangle(201, 112, 30, 29), new Rectangle(234, 113, 30, 29));
SetSprite("Down");
moveUpDown = movingUpDown;
if (!moveUpDown) {
SetSprite("Right");
}
}
The Update method for the enemy is very important. It animates the enemy, moves the enemys position and handles wall collisions. Let's write all of this in one go. I'm going to start you off with a template of the update function that animates and moves the enemy:
public void Update(float deltaTime) {
Animate(deltaTime);
if (moveUpDown) {
// Direction is VERY important here. If it's positive the enemy moves up.
// If its negative the player moves down. This happens because direction can
// only be 1 or -1, so the code essentially translates to:
// y += +(speed * delta) OR y += -(speed * delta)
// depending on the value of direction. Nifty!
// The alternate to this is to add a bunch of bools (movingLeft, movingRight, etc...)
// and flip them during collisions and add or subtract from y based on those bools
// The bool approach is obviously aweful! Just multiplying a positive or -1 is very elegant.
// Remember this trick, it's going to save you so many if statements down the line.
Position.Y += direction * speed * deltaTime;
// TODO: Handle wall collision (4 possible collisions)
}
else {
Position.X += direction * speed * deltaTime;
// TODO: Handle wall collision (4 possible collisions)
}
}
This enemy is taking shape niceley! If we where to add him to the game right now it would just start walking in a direction and never stop. All we have to do is add wall collision and we are done with the enemy class. Lickly we have a template for collision code! We wrote all collision cases for the player class, all we have to do is copy them over and modify them slightly. I'll get you started with an example. Let's look at what the player character does when the up button is pressed:
if (i.KeyDown(OpenTK.Input.Key.W) || i.KeyDown(OpenTK.Input.Key.Up)) {
SetSprite("Up");
Animate(deltaTime);
Position.Y -= speed * deltaTime;
if (!Game.Instance.GetTile(Corners[CORNER_TOP_LEFT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_LEFT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
}
}
if (!Game.Instance.GetTile(Corners[CORNER_TOP_RIGHT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_RIGHT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
}
}
}
This is more than what we need. We don't care about keyboard input, and we already took care of moving. All we really need out of that top blob is the collision code, like so:
if (!Game.Instance.GetTile(Corners[CORNER_TOP_LEFT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_LEFT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
}
}
if (!Game.Instance.GetTile(Corners[CORNER_TOP_RIGHT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_RIGHT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
}
}
This is checking for the TOP collision. Meaning if the enemy is walking upwards he will hit the wall and not do anything, just keep walking into the wall. But hey at least there is collision and he won't walk off the screen! Let's add code in there to flip the enemy direction:
if (!Game.Instance.GetTile(Corners[CORNER_TOP_LEFT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_LEFT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
direction = 1.0f;
SetSprite("Down");
}
}
if (!Game.Instance.GetTile(Corners[CORNER_TOP_RIGHT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_RIGHT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
direction = 1.0f;
SetSprite("Down");
}
}
Our update method should look like this now:
public void Update(float deltaTime) {
Animate(deltaTime);
if (moveUpDown) {
// Direction is VERY important here. If it's positive the enemy moves up.
// If its negative the player moves down. This happens because direction can
// only be 1 or -1, so the code essentially translates to:
// y += +(speed * delta) OR y += -(speed * delta)
// depending on the value of direction. Nifty!
// The alternate to this is to add a bunch of bools (movingLeft, movingRight, etc...)
// and flip them during collisions and add or subtract from y based on those bools
// The bool approach is obviously aweful! Just multiplying a positive or -1 is very elegant.
// Remember this trick, it's going to save you so many if statements down the line.
Position.Y += direction * speed * deltaTime;
if (!Game.Instance.GetTile(Corners[CORNER_TOP_LEFT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_LEFT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
direction = 1.0f;
SetSprite("Down");
}
}
if (!Game.Instance.GetTile(Corners[CORNER_TOP_RIGHT]).Walkable) {
Rectangle intersection = Intersections.Rect(Rect, Game.Instance.GetTileRect(Corners[CORNER_TOP_RIGHT]));
if (intersection.Width * intersection.Height > 0) {
Position.Y = intersection.Bottom;
direction = 1.0f;
SetSprite("Down");
}
}
// TODO: Bottom collision (2 if statements)
}
else {
Position.X += direction * speed * deltaTime;
// TODO: Left collision (2 if statements)
// TODO: Right collision (2 if statements)
}
}
Go ahead and fill out the collision for the other directions of the enemy. Unfortunitaley we can't test our progress at this point as we havent added any enemies to the game yet. Lets go ahead and fix that!
Refactoring Map
Inside of Map.cs add a new List
of enemies to the Map
class. We are going to use a list, not an array because we don't know in advance how many enemies a map will contain.
Let's add a new function to Map
, we're going to call this function AddEnemy
all it's going to do is add a new enemy to the enemy list. It's as straight forward as things get. This will allow us to add enemies to a room even at runtime! So if the player trips a trap an enemy can spawn.
public void AddEnemy(string spritePath, Point pos, bool movingUpDown) {
enemies.Add(new EnemyCharacter(spritePath, pos, movingUpDown));
}
Update the Render method of Map
to loop trough all the enemies and call Render
on them.
Update the Destroy method of Map
to loop trough all the enemies and call Destroy
on them.
Add a new Update method to Map
, it should take a float
as an argument (delatTime
). In the new Update
method loop trough all the enemies and call Update
on them.
That's it for now. This is the minimum ammount of code we need to add to support enemies. We will add player collision soon, but first let's get to a state where we can visually confirm that the enemies are working.
Refactoring Game
We added a Update method to Map
. Make sure to call Udpate
on the currentRoom in the `Game
class. Let's add a new constant to game:
protected string npsSheet = "Assets/NPC.png";
It's a good idea to make all commonly used strings, integers and other constants into variables. This way if you decide that ALL NPC characters should use "Assets/Baddies.png" later, you only have to change the path in one place instead of tracking down every occurance of the old string.
Now, inside of Initialize, let's add a couple of enemies:
room1.AddEnemy(npsSheet, new Point(6 * 30, 1 * 30), true);
room2.AddEnemy(npsSheet, new Point(1 * 30, 4 * 30), false);
That should to it. Run the game and you should see this:
They don't do much yet, but the enemies should walk until they hit a wall and then turn around.
Loosing the game
Before adding collision to the player and enemy, let's add support for loosing the game to Game.cs. Add a new member variable, call it GameOver with a default state of false. This new variable should be public! Change the update method to respect this new variable.
In Update, if GameOver
is true check to see if the space key was pressed. If the space key was pressed:
- Set game over to false
- Set currentMap to room1
- Set the hero position X to be at the spawn tile
- Set the hero position y to be at the spawn tile
else (if wame over was false) update the game like normal. Let's also update the Render method, if GameOver is true it should print a game over message over the existing screen. By not updating the game state, but still rendering it, we make it look like the game gets paused when there is a game over. It's a cool effect. Here is what the render should look like:
public void Render() {
currentMap.Render();
hero.Render();
if (GameOver) {
GraphicsManager.Instance.DrawRect(new Rectangle(0, 70, 240, 50), Color.CadetBlue);
GraphicsManager.Instance.DrawString("Game Over", new PointF(70, 80), Color.Black);
GraphicsManager.Instance.DrawString("Game Over", new PointF(69, 79), Color.White);
GraphicsManager.Instance.DrawString("Press Space to play again", new PointF(5, 96), Color.Black);
GraphicsManager.Instance.DrawString("Press Space to play again", new PointF(4, 95), Color.White);
}
}
Enemy collision
Working in Map.cs. Let's update the Update method of the Map
class to check for collision against the player.
First, add a new argument to the Update method, it should be of type PlayerCharacter
. Next, after updating the enemy check if it collides with the player. If it does use the Game
singleton to set GameOver
to true.
How do we check if a player an an enemy collide? Both classes inherit the Rect
getter from Character
which returns their bounding rectangle. Check if the bounding rectangles intersection area is greater than 0. If it is, an intersection has happened.
public void Update(float dt, PlayerCharacter hero) {
foreach (EnemyCharacter enemy in enemies) {
enemy.Update(dt);
Rectangle intersection = Intersections.Rect(enemy.Rect, hero.Rect);
if (intersection.Width * intersection.Height > 0) {
Game.Instance.GameOver = true;
}
}
}
Don't forget to add the exta argument to the function call in Game.cs. This is what my entire Update for Game looks like:
public void Update(float dt) {
if (GameOver) {
if (InputManager.Instance.KeyPressed(OpenTK.Input.Key.Space)) {
GameOver = false;
currentMap = room1;
hero.Position.X = spawnTile.X * 30;
hero.Position.Y = spawnTile.Y * 30;
}
}
else {
currentMap = currentMap.ResolveDoors(hero);
currentMap.Update(dt, hero);
hero.Update(dt);
}
}
Run the game and walk into an enemy, you should see a game over message, and pressing space should let you start playing again!
Thats it! We now have support for simple enemies!


MR. KALADA HART ORIENT BANK (NIG.) LTD. IDUMOTA BRANCH LAGOS. - NIGERIA. Dear Sir, I am Mr Kalada Hart, Bank Manager of Orient Bank of Nigeria, Lagos Branch. I have an urgent and very confidential business proposition for you. On September 6, 1997, a Canadian Oil consultant/contractor with the Nigerian National Petroleum Corporation, Mr. Jerry Sheldon made a numbered time (Fixed) Deposit for twelve calendar months, valued at US$25,000,000.00 (Twenty- five Million Dollars) in my branch. Upon maturity, I sent a routine notification to his forwarding address but got no reply. After a month, we sent a reminder and finally we discovered from his contract employers, the Nigerian National Petroleum Corporation that Mr. Jerry Sheldon died from an automobile accident. On further investigation, I found out that he died without making a WILL, and all attempts to trace his next of kin was fruitless. I therefore made further investigation and discovered that Mr. Jerry Sheldon did not declare any kin or relations in all his official documents, including his Bank Deposit paperwork in my Bank. This sum of US$25,000,000.00 is still sitting in my Bank and the interest is being rolled over with the principal sum at the end of each year. No one has ever come forward to claim it. According to Nigerian Law, at the expiration of 5 (five) years, the money will revert to the ownership of the Nigerian Government if nobody applies to claim the fund. Consequently, my proposal is that I will like you to stand in as the next of kin to Mr. Jerry Sheldon so that the fruits of this old man's labor will not get into the hands of some corrupt government official s. This is simple, I will like you to provide immediately your full names and address so that the Attorney will prepare the necessary documents and affidavits which will put you in place as the next of kin. We shall employ the service of two Attorney for drafting and notarization of the WILL and to obtain the necessary documents and letter of probate/ administration in your favor for the transfer. A bank account in any part of the world which you will provide will then facilitate the transfer of this money to you as the beneficiary/next of kin. The money will be paid into your account for us to share in the ratio of 70% for me and 30% for you. There is no risk at all as all the paperwork for this transaction will be done by the Attorney and my position as the Branch Manager guaranttees the successful execution of this transaction. If you are interested, please reply immediately via the private email address below. Upon your response, I shall then provide you with more details and relevant documents that will help you understand the transaction. Please observe utmost confidentiality, and be rest assured that this transaction would be most profitable for both of us because I shall require your assistance to invest my share in your country. Awaiting your urgent reply via my email. Thanks and regards. Mr.Kalada Hart Confidiential Email Address you should respond to: kaladah@yahoo.com


 All the Varka will do their best to help you. You must visit our village and allow us to demonstrate our gratitude!
But don't feel like you need to stay if you're unhappy...
"I'll keep the promise with the Varka!"
"I want to quit."


Blog
Bob 的博客
Toggle navigation
4
You have 4 messages
Support Team
5 mins
Why not buy a new awesome theme?
See All Messages
10
You have 10 notifications
5 new members joined today
View all
9
You have 9 tasks
Design some buttons
20%
20% Complete
View all tasks
{$Think.session.userInfo.username}
{$Think.session.userInfo.username}
2017年5月1日注册
个人信息
注销
Page Header
Optional description
Level
Here


2019-01-22 | Band-Limited
- Assignment 2 is online
- (took a while to cover)
- DX7
- updated code
- envelope bug
- mystery bug (crash)
- Confirm algorithm correctness - each of you, please check my code.
- Marc: 1 4 7 10 13 16 19 22 25 28 31
- Raphael: 3 6 9 12 15 18 21 24 27 30
- Kramer: 2 5 8 11 14 17 20 23 26 29 32
- What is the spectrum of a sin oscillator with feedback modulation?
- Quasi-Bandlimited w/ Frequency Modulation
- Types of interpolation: linear, cubic (polynomial), and sinc (sin(x)/x)
- Sinc Interpolation: Construct a Band-Limited Impulse
BLIT, minBLEPS, polyBLEP


Setting a session value.
Thank you for enetring the data. You can view the value of the session object
here
.
Back