 That happens, quite literally, to Amanda and Tom, played with great romantic chemistry by Sarah Michelle Gellar and Sean Patrick Flanery, in director Mark Tarlov's romantic fairy tale, SIMPLY IRRESISTIBLE. In an age of ironic movie titles, it is refreshing to have one that is completely true.
Although Gellar comes most recently from a teen movie background, SIMPLY IRRESISTIBLE is unabashedly adult, even its very mild PG-13 rating means that it would be fine for kids younger than teenagers. It's also a feel-good movie that isn't ashamed of emphasizing the upbeat and optimistic part of our souls. There isn't a dysfunctional family in sight, and the characters are the sort of nice people that you'd like to get to know better.
The story starts off with shades of YOU'VE GOT MAIL as Amanda's New York City restaurant, The Southern Cross, is about to go bankrupt due to rising rents and dwindling clientele. The Southern Cross is a lowbrow place that's been in Amanda's family for 70 years. The waitresses lug big pitchers of iced tea, and the plates don't match.
Across town, Tom manages an upscale department store that is spending 4 million dollars just to open a small, four star restaurant within it. Tom's currently dating a Julia Roberts lookalike who has perfect skin and hair and knows it.
One day, Tom happens by Amanda's establishment with Miss Million Dollar Looks in tow. Through a bit of almost accidental magic, Amanda instantly learns to cook meals that are so irresistible that they send people into ecstasy. A few bites and Tom can hardly control himself, especially after he tastes her pièce de résistance, the dessert. ("I love desert," she says. "It's the whole point of the meal.") He falls hard for Amanda, which pleases her no end.
Being on different ends of the economic scale, Tom and Amanda don't do much about their infatuation at first. The movie's most enchanting scene occurs in their next meeting after that first meal. In his restaurant, currently under construction, she looks at him, and, with a come-hither look, she motions him over with her index finger. Soon they are dancing to romantic, big band music like in an old Fred Astaire and Ginger Rogers movie. They don't understand what is happening to them (joint hallucination perhaps?), but they enjoy it.
The movie has a strong supporting cast that enriches the story. HIGH ART's Patricia Clarkson plays Tom's humorous and love-starved assistant. HAPPINESS's Dylan Baker plays Tom's stiff boss and the owner of the lavish, family department store. And as Amanda's assistant cook and love advisor, Larry Gilliard, Jr. shares the script's best comedic lines with Clarkson.
Similar to LIKE WATER FOR CHOCOLATE in its love of food and its association of eating with loving, SIMPLY IRRESISTIBLE is not a movie you should attempt to watch on an empty stomach lest you get such a ravishing hunger for great food that you are forced to leave the theater.  The story puts such a romantic trance on the audience that your other half is liable to fall in love with the stranger in the next seat.
SIMPLY IRRESISTIBLE runs a breezy 1:35. It is rated PG-13 for brief sexual references and would be fine for any kid old enough to be interested in romance.
Email<EMAIL_ADDRESS>Web: www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Island and AJ's podcast for your Monday.
Most wonderful show is keeping up with the Joneses.
AJ Jones.
Yes sir.
Episode 254.
55.
Talking about dealing with discouragement.
Before we get to that encouraging topic about discouragement,
we can catch up.
Oh, OK.
I know what you want to talk about.

The iPhones?
You want to talk about new iPhones?
Mine's purple.
- Show me.
- It's right here.
Look.
- We ended up with the same phones,
but thankfully you got a case.
- Well. - I'll show you it from the back.
- Yeah. Mine's the same color, it's that blue color.
- Yeah, but you got a little purple case.
- I did for the first time in a long time.
I decided to get a case for my iPhone.
Normally I go tasteless.
- Or naked, as I like to call it.
- Okay, do you think?
- Why'd you get a case this time?
- I don't know, I just felt like I wanted a case.
So I got one.
And I got a purple one.
- Any thoughts on the new phones?
- I haven't really used it a ton so far.
I mean, it's smaller 'cause I had the max before
and now I have like the non-max, the normal.
- The 13 pro normal.
(laughing)
- It's not called normal.
We both got identical phones.
- It's lighter and it fits better in my leggings pocket,
which that's all that really matters.

- It's true, I like needed some sort of yeah.
Mine, because I had the mini, I've gone up in size.
So mine feels big in cumbersome,
yours feels small and lighter.
- But at least yours in your hands
doesn't look like you're using a play phone anymore.
It looks like you're using a normal-
- I think- - On a size phone.
- I've used it for what, 24 hours?
- Yes.
- And I was thinking of switching to the 13 mini.
- Oh please don't.
- But I'm spoiled for the promotion, the 120 Hertz display.
Have you even noticed the display?
- No.
- All right.
What do you mean?
What am I supposed to have noticed?
- Look at the family, they look so great on this display.
Is that what you meant?
- No.
But anyway, we got new iPhones, yay.
Which I actually need to update Twitter
because when we ordered, we had nothing but problems.
And I said our ship date wouldn't be like
until like October 15th or something.
- Yeah.
- But Apple did it solid and they fixed it.
- They fixed it and we got them the first day.
- Mm-hmm.
You were teaching at the school on Father Heart.
How was that?
- Yes, Father Heart Week.
It was great.
It was really good.
I was like it when people were crying.
So people were crying.
So I was fine.
Yeah.
- I got to be with our online students this week.
- Oh yeah.
- Ah, it's so much gladness.
- Oh, okay.
- It was nice to see her first students,
but it was fun for me to be with our second year students
online who are made up of a cohort
of our first year online students.
So it's really nice to be back with a group of people
I'm already familiar with.
- Yeah, it's really good.
- We all smashed a squeeze in a date.
- We did.
- Yeah, which is so hard to do.
Like when you work from home largely,
we're around each other all the time.
and COVID, which means we haven't really been out.

So we'd like to take advantage of it.
- I had four days off this week.
- Talk about that.
- Well, I, about two weeks ago,
I worked like 12 days in a row or something.
And so I had a couple days in lieu that I could take.
And so I took them off on Wednesday and Thursday.
So I had Wednesday, Thursday, Friday, Saturday off.
And it was glorious.
And you let me sleep in on Wednesday and Thursday,
both mornings you got up at six with the kitties and I slept in.
I'm kind of a spiritual giant that way.
What did you do with your days off?
Um, I was forbidden from speaking to you.
You weren't forbidden.
Yes, I was.
You gave me eyes of hate.
Because again, I'm working from home all day.
Yeah.
Wednesday and Thursday.
No, I just made you sit in the office with the doors close so I
couldn't hear you, which means you're going to overheat because
there's not the right level of ventilation or something in that
office.
Too much sun.
Yeah. I read books. I played two dots.
So it's called two dots.
And I have another one where I sort balls into test tubes.
Colored balls into test tubes.
I don't know. It's called like sort 3D or so.
I know it's a third tick for me.
You just that's what you play.
Uh huh. Yeah.
You're so sweet.
So that's literally what you did.
You just played some Zelda.
Yeah, no, it's got some headphones in for most of the day.
Yes. And I made some more Hello Fresh meals. We had some new Hello Fresh meals.
I reminds me to pick next week's meals. And yeah, I mean, that was it. I kind of just, I just chilled.
Last week's episode was all about kindness. And shortly after we recorded that episode,
somebody sent me a link on YouTube. I need to look up the guy's name. His name is Jimmy Darts.
So if you go to Jimmy Darts on Instagram, it's my new favorite Instagram account.
Oh no. So Jimmy Darts...
You don't want his own favorite anymore?
Yours... no.
No.
That's because I never post.
Jimmy Darts collects money. He has like, you know,
I guess people who support him.
Yeah.
And then they send him random acts of kindness to go do,
and then he goes does them and films it.
And he's so sweet. He's a lovely guy.
And he just films like somebody might be just saying,
Ask somebody if you can cut in line and the first person who lets you cut in line, give them $500 for letting you cut in line.
Yeah.
Or, you know, go find somebody who's having car trouble and give them $1,000.
So he'll just drive around trying to find somebody who's having car trouble.
Right.
And then give them $1,000.
Right.
Go up to somebody and ask if you can have a pair of their shoes and if they say, "Yes, give them $500."
Et cetera, et cetera, et cetera.
Right.
So I'll bet a link in the show notes to him.
It's, it's, it's, you know, seriously.
Oh, that's cool.
Jimmy Dart.
Jimmy, Jimmy Darts.
Darts.
I think he must be a Bethel person.
Okay.
He doesn't mention that, but I just based on who I follow
and who he follows and the people that we know maybe.
You're extrapolating that he might be a Bethel-ish person.
Yeah, I think so.
And he's in California.
I don't know if he lives in writing, but anyway,
I thought I wouldn't surprise me if he's got some sort of...
I love that.
That's such a great idea.
Background.
Yeah.
All right, dealing with discouragement or topic for this week.
Yeah.
- At first glance sounds kind of depressing
to talk about discouragement.
But here's the thing, to imagine you go through life
without experiencing discouragement
is to imagine that you're not human.
Because to be human is to experience bouts of discouragement.
- Yes, and you're talking about like big discouragements,
not like I burnt everything that we're eating
for dinner kind of discouragement.
- I mean, I don't wanna, you know,
I don't wanna put a limit on it.
I'm just talking about like the human condition
where we are discouraged.
which you read all of the saints in scripture,
were discouraged at one point or another.
- Sure.
- And I wanna encourage you,
it's not a sin to be discouraged.
It's not even a sin to be discouraged
for an ongoing period of time,
but if that's what we're gonna experience in life,
right?
'Cause God is good, but life is tragic.
- Right.
- How do you cope with discouragement?
- Good, that's what we're talking about.
- Yeah, and the answer isn't chocolate.
Well, it's sometimes it's chocolate or crunchy food.
Or, no, see, those are the nice versions
of addiction that we don't have any.
False comfort.
Yes.
I was saying we were talking about this.
They're nice though, they really are nice.
Let's talk about them.
We're just a moment, my God.
Before I say that, I will never help you.
Yes.
We were talking about this in the car on the way home.
And we were talking about how we used to deal
with discouragement as opposed to how we deal
with discouragement now.
- Yes.
- And we will have a good chuckle at our expense.
When we talk about how we deal with discouragement,
I want you to imagine a spectrum,
two ends of the same spectrum.
I'm gonna give you an approach to dealing with discouragement
and at one end is one thing
and at the other end is another thing
and everything in between is good.
- Right.
- Let me talk about the two ends of first.
The first end is to shock, feel your feelings.

The other end of that experience is to use the word of God.
All right, to actually use the word of God
in the promises of scripture
to combat the circumstances you're facing.
- Yes.
- I'm gonna suggest that you do both end.
- Meet in the middle.
- Do all of them, like don't meet in the middle.
Like you've gotta do that and you've gotta do that.
Run the whole gamut of those things.

And you're never gonna get out of any.
Historically, I would say I've lived over here.
Let's just quote some scripture out of it.
Let's just shut down our heart and let's just power through.
And I don't remember living discouraged.
I just remember probably discouraging everybody
who's close to me because I wouldn't deal with reality.
But it's that whole thing,
you remember the feelings thing we did last year?
That if you don't deal with the feelings,
if you don't feel your feelings, if you don't give them
to God, if you don't talk about your feelings,
you're just gonna live out with the impairments of it.

- Yes.
- Right, instead of you feeling your fear,
everyone else is gonna feel your rage.
So that your feelings that you're not trying to feel
are gonna come out somehow,
so you may as well sit with them.
But don't sit with them at the exclusion of ignoring scripture.
Neither do you want to run to scripture without actually being real or you'll
just end up this fraudulent hyper religious person thoughts.
Yes.
I mean, and I don't, I think on the side of scripture, you could also replace
scripture with logic, like just running to having a better plan, a more reasonable,
you know, more reasonable logic, whatever the thing is, maybe you don't throw
scripture versus at it. But whatever it is, you're not valuing feelings and you're thinking
your way out of something.
So you're moving away from your heart.
Just moving away from your heart to never have to feel.
Right. So because I'm just thinking like, I know I definitely had seasons where, yeah,
I would try and throw scripture at something until it was buried, which never really successfully
worked for me that well. I mean, I would feel like it worked at times in the moment, you
know, until you're alone again by yourself and your apartment or whatever.

Um, but also I had seasons where I might have not have taught scripture verses,
but I certainly tried to plan and logic my way out of the feelings that I felt.
What did they give me an example of?
What, what would that look like?
What would you, how would you plan not to feel?
Oh, well, first you just shut down your heart and decide that everything that
your feeling is just has no basis in reality
and how ludicrous to feel anything.
- Right, 'cause you're more than a conqueror in Christ.
- That's right.
- Okay.
- And your mind is more powerful, of course.
- So you just deny, okay, so--
- Just deny everything.
- Right.
- Deny everything you're feeling.
And then come up with what I would have called a man plan
for your way out of--
- Why is it a man plan?
Is man an acronym for something?
- No, it's just like, you know how man always wanna like,
They want to help you.
Logic your way out of it.
Logic your way out of it.

So so give me an example from from previous life where an example you were
discouraged by and what your man plan was because now I'm fascinated.
And now I can't.

It's been years and it doesn't look like there's any viable dates on the horizon.
What was your solution?
Yeah.
Tell me.
Okay.
Man plan is, you know what?
This clearly wasn't God's plan for your life anyway.
Right.

- Yeah.
- And I remember, actually right before we met,
my plan was, okay, so none of this has worked out.
And so my new plan is I am now going to choose
to stay single, I'm going to shut down my heart.
I'm never gonna have children, I'm not gonna want children.
And I am just gonna go and travel and bring the kingdom
wherever I go.
And I have this plan now that's all about the,
keeping the walls around my heart
and bringing the kingdom.
- And that will compensate for all my natural desires
to want to make and to want children.
- Because me and Paul from the Bible,
we're gonna be single and do this thing.
- And do you remember coming up with that plan?
- Oh yeah.
- And it was a great solution.
- It's a solid plan.
Solid plan.
Until I was generally that day in PEI and the Lord was like,
"The man I have for you."
This is why it was ruining my plan,
because I was like, wait, what?
- PEIs Prince Edward Island for people who are not
- Yeah, yeah, yeah, yeah.
- So you'd already come up with this plan on your own?
- Oh, yes.
- Okay, and you had one of the kids,
you'd wanted to be married, your first husband left you.
- Yes.
- And so you--
- And then I was single for eight years after that,
and I just decided--
- You'd have got for five words.
- I'm 30 something now, my clock is ticking,
all ladies, once they hit their 30s,
they're like, my clock is ticking, my clock is ticking.
So I was like, hey, I'm now, whatever, I was 32, 33,
I probably need to give up on that dream
and come up with a more reasonable dream.
- I didn't talk to the Lord about this,
you just came up on this on your own.
- Yes, I needed a plan.
- Because were you aware of feeling sad, lonely, longing?
- Yes, of course, and a plan
because I'm a very high shaper gives me comfort.
So having a plan therefore gave me some other way
to focus and not have emotions and not feel things.
- What would you like to be around
when your girlfriends were falling in love?
Were you just?
- I'm sure I was a joy.
sure they really loved having me around. I don't know, actually.
I don't know.
I think, well, that's nice for them.
I think so.
But because I'm a spiritual giant and Paul said it's better to, you know,
you know, for those who handle it, a lot to marry.
At the time, probably most of the people I hung out with were either not dating
anyone or already married had been for ages and I was friends with both spouse.
So I don't think I, I don't remember during the, and it was only a couple of
months between making the plan and meeting you.
Sorry for ruining that.
What sounded like a perfect plan, though.
You know, it was, yeah, I was such a great plan.
So your man plan was?
My man plan was basically.
To vote myself to the kingdom.
Yeah.
And that's gonna help me to feel nothing.
Let's go all the hallmarks of a genius plan.
I know.
It's biblical, it's script row.
It's yes.
Sounds great.
It moves away from all your like,
"Yeah!"
Yeah.
Yeah.
So one day the Lord is just like, about that plan of yours.
Yes.
And what was that like because he's now inviting you back into mystery?
Well to begin with, I wasn't that thrilled about it, which is why I spent an entire day
crying.
So what were the tears about?
The tears were about realizing a whole bunch of things like that as much as I thought I
was living open to God, I had built a wall around my heart and really didn't want to
talk to him about relationships or any of the disappointments that I had.
Wow.
And when again, when I journal and he said, the man that I have for you will pursue you.
He will worry with kindness.
It was terrifying information because that means I actually have to be open again.
I have to feel things.
I have to risk it.
I have to, you know, so I spent the better part of four and a half hours crying, you
know, which I'm not a big crier.
Is there any sense that you were like,
"Oh Lord, if I open up my heart and you don't follow through,
the pain of disappointment is far larger
than the pain of never even hoping that this is real?"
- Oh, I'm sure.
'Cause I've processed so many other things that way.
I'd rather just not hope.
So then I don't get disappointed.
- It makes so much sense now why you've vomited
when you met me and I told you that this is what
my goals were.
- Yeah.
'Cause you repeated to me what I had journaled
when I was-- - That's fulfilling
the word of the Lord.
- Yes, and so I just needed to quickly nip to the loo
and vomit so that I could appear normal.
Yes.
You have to admit it would have been worse
had I vomited sitting at the table,
so you should be thankful really.
- Oh, yeah, yeah, yeah.
- So you are familiar with the,
I will shut down my heart and I will,
I mean, in one sense you won't quote scripture,
but you're using scripture as a justification
to never have feelings about being single
for the rest of your life.
- Yes.
determined your future because it's less painful than living with potential.
Yeah. Oh, yeah. Absolutely. And I would say that's, that was like sort of historically
my pattern until chip dot and all this feeling nonsense comes into play, you know,
that typically it would be easier just, Hey, if you don't actually have expectations,
you can't get disappointed, then you won't have feelings that are outside of your control.
I'm so curious if that worked because on paper, it sounds great.
Like if I don't have any expectations and now we'll never be disappointed.
Therefore, I can never.
Now you're just pretending you don't have them.
Oh, so.
Or you're wishing you didn't have them.
So you're discouraging everyone away.
No, no, no, no.
It just it hid at times for short periods of time.
And then we'll spring up and be like, Hey, hey, human.
Yeah.
I'm your feeling human.
Now that you've eaten all those pretzels, I'm still here.
I was talking to a friend on Friday, I think it was Friday or Thursday this week.
And they knew had an event coming up and they were like, "Hey, how did this event go?"
And I'm like, "Well, if I told you that I feel like crying because you asked me and
I've eaten three bags of popcorn, would that give you an indication of how it went?"
And I was like, "Oh yeah, my feelings taste delicious."
They do go away.
But it was skinny pop.
So surely that's fine.
Yeah.
- Yeah, I think that's a bad idea.
- It's practically healthy.
- That's a bag of normal.
- Yeah, yeah.
(laughs)
- All right, so we're gonna feel our feelings.
Quick recap, why do you wanna feel your feelings, Ajay?
- Well, primarily because God gave you feelings.

And then most of us, either through training or choice,
figure out how to try and shut those things off.
- I love what Chip said when we asked him,
you know, he said, "I don't really like feelings.
"This is a guy that wrote the book on feelings.
"Like, I don't really like them."

- Right.
- So, you know, you and I were talking earlier
about an area in my life where I'm feeling discouraged about
and, you know, my process with the Lord is like,
"Lord, I feel discouraged about this area."
And he's like, "Yeah, it makes sense why you'd feel discouraged
because the description you've just given me
of this area of your life that is sad and that is lonely
Yeah, that that would make sense why you're feeling sad and while you're feeling lonely and there was a you know part of
My reluctance to feel my feelings is I don't want to get in touch with how desperate it is
I would rather just you know power through keep prophesying future and right it's it's
Fascinating being with the Lord going yeah, that that is a bleak situation. Would you like to give it to me?
 I mean maybe nothing
Maybe that's the reality of this season and I'll still meet you in your sadness and loneliness.
Yeah, you know, it's amazing when you discover that God isn't a fairy godmother who's going to make, you know,
like I'll instantly change everything rather
I mean the Lord is just like yeah Alan
But the beauty of this season is it's doing something beautiful in your heart. Yeah, I'm like well, I'm not sure it's beautiful
It's painful
But you know we trust the Lord and so much of life makes sense when we look backwards and go
Oh God, you're so, so brilliant.
You know, he redeems things in a different way.
I say that and I think about your marriage,
your first marriage.
- Oh good, I'm glad you're talking about the first one.
I was like, if we're speaking of it as my marriage
and not your marriage, there's probably a problem.
- No, I was thinking about how you prayed
for years for your first marriage to be restored.
- Yeah.
- And then the Lord said,
"I'm going to redeem it in a different way."
- Yeah.
- Yeah, and he did.
- And it's me.
- You. - Same wa.
- Say you.
- All right, so feeling of feeling super important
'cause you actually get in touch with your heart
and get in touch with the circumstance of what God's doing.
Why is it also important then to not just camp out
with the feelings part and also bring in the word of God part?
- Well, I mean, I think to some extent,
like when I think about when I would actually get
in touch with my feelings, often the Lord would actually
drop the word into the midst of my feelings, right?
So I have two thoughts with that.
I have one, I remember hearing a quote,
I think it's from Abby Stumble,
where she was talking about,
is that how you say her last name?
- I don't know who you're talking about.
- She's from Bethel, but talking about,
"Hey, your feelings, like feelings are great,
but they're like children.
You can't let them drive the car.
You also can't stick them in the trunk."
- Can't lock them in the trunk.
- Yeah.
like neither one of those are a healthy response.
But I know in moments when life did feel overwhelming,
like after my first marriage dissolved
and before I met you and whatever,
when I did allow myself to feel my feelings,
usually only when I was by myself and nobody could see me.
- Whoa.
- The Lord would say the same verse to me all the time
about a bruised read he would not break
in a smoldering wick.
Wick, he will not step out, step out.
And like, I remember just sitting there going, okay,
like even if I am how I viewed it as we can desperate,
like, oh God, I just, I feel like I don't even know
how to do tomorrow.
He's gonna help me through it.
Like he's gonna make sure I don't break
and I don't, I don't snuff out.
So I think there is something about you in the midst of feeling your feelings,
keeping your face turned towards him and your ears tuned to him for his encouragement
and for what he's sending your way.
Our pastor, Jeff Daller, has been doing a great series at Grace Center at the moment,
all about the power of the Word of God.
You know, the Word of God is sharper.
It is a live sharper than two-edged sword.
I'm talking about our imagination.
I remember Gary Morgan saying that worry is a great misuse of imagination.
Yeah.
But talking about allowing the word to paint a more, you know, a better future in your
imagination so that you can live towards it.
It's a really powerful thing.
And I think of the time when our, we used our prophecies and we used our, and the scriptures
to help counterbalance the reality of our life.
So we've told about this before,
when Patricia King came, gave this word,
you know, four words all about finances.
And in the time, and that time that we had that,
we were crippled and dead,
we were struggling to make ends meet.
- Yes.
- And the reality of our situation was stark,
and we could prove it.
We could prove it by not being able to make ends meet.
We could prove it by showing your bank statement.
And so we needed something to hang on to,
not in denial as in, well, you know, these scriptures say this, therefore we can just
live irresponsibly knowing that God's gonna, you know, God doesn't order what he doesn't
pay for. God doesn't pay for what he, no, God doesn't order what he won't pay for.  But rather we wrote
up these prophetic words, we wrote these verses on our bathroom mirror on our phone on the
wallpaper of our computer, to remind us this is the future that God has for us. And where
we are right now is a present, it's a present reality, but it's not our future circumstances.
Yeah. And using those scriptures to not only combat a reality, but also shape how we look
at things. One of the things we do at Grace and our every week is we make declarations
when we bring our offering and our tithe to the Lord. And the reason for that is we're
speaking over our finances so that we're not passive.
Yeah.
I think that I love the way that you just explained that.
I think for me, it's feeling your feelings, but then also in the midst of feeling your
feelings, aligning your expectations with God because both of those things are true.
Yes.
I do feel overwhelmed and you said that you've given me a glorious hope and a glorious future
and you do have plans to prosper.
And you're never going to leave her for sake me and actually, you know what I mean?
So I think, yeah, it's holding on to both of them with equal strength and not weighing
either of them heavier or lighter than they are.
So we've got, you know, what I'm going to talk about next, the practical steps that
you can employ to help you deal with seasons of discouragement or fitting within this tension
of actually being real, feeling your feelings, honoring your heart,
honoring the scriptures, allowing the word of God to paint a future that you're going to live in
that you presently can't see. Everything we're going to say next fits within that context. If
you take what we're going to say next out of that context, I have fear that the advice we're
we're going to give you just empty platitude.
Right.
So you're saying living inside this tension of both and here's some tips.
Here's some tips.
OK.
And I think I've got three of them.
Oh, of course.
I was telling you the other day that you're either going to have three or five.
But often when I speak, I just declare how men I have and then that many appear in my head.
Wow.
Like often when I'm in conversation, you know, when I'm teaching, it's a little different
because I've done pre thought.
But often when I'm in dialogue with people, I'll be like, OK, here's four things you need
you know. And I don't have those four things. I just think there's four things and then
the four things come.
Oh, that's so funny because I would go the opposite direction and say, here's a few things
I think would be helpful so that I'm actually locked into a number in case I need to go
over or under as the case.
That's so funny. Yeah. Well, I think I've got three. Okay.
Three. Number one is you've got to get your feelings outside of yourself. Yeah. Feeling
your feelings is good, but you got to talk about them because if you don't, you will
go stir crazy. We are our own worst counselors. Yes. So you've got to find safe people who are
not going to try and fix you to talk. Yeah. I would include God in that. But the notion that you can
only talk to God and not other people is misunderstanding why God put you in community. Right. Like if
all we ever needed was Jesus in terms of our relational capacity, he wouldn't give us the body.
Right. He wouldn't have given us the body. Yes. Yeah. So, you know, talk, otherwise,
you're going to go start crazy.
Right. Find safe community.
Find safe community.
That isn't threatened by emotion.
Isn't threatened by emotion.
And isn't upset with you for having feelings
that might be contrary to what they're feeling.
Yeah.
And they're not going to take that you're sharing
of how you're feeling as an invitation to try and quote
and quote fix you.
Yes.
So get your feelings outside of you.
So because I called it a man plan before, can we reiterate?
So, you know, Alan and I, we've talked about this
in a couple of different podcasts.
And mostly it's usually about like married, you know, married type things.
But we've talked about listen like a boy or listen like a girl.
Which I don't really like those gender stereotypes.
Well, they kind of work.
Unfortunately.
Explain what it means to listen like a boy versus listen like a girl.
So listen like a boy is listen for how could I help you fix that?
Like, how could I help you come up with a plan?
How could I fix that for you?
 They're just connecting with you. Yeah, could could we rephrase it as listen with empathy?
Sure and listen with intent. I
Mean we could put it, you know, it sounds sexier listen
not sexier, but all I'm saying is listen, we're five years into this podcast.
We've been saying boy or girl the whole time, they get the idea.
Yes.
So being empathetic or having people just be with you and just be like, that
does sound hard or just to validate what you're going through and not talk
you out of your feelings or not.
Do you know what you want to do?
You know what you should do?
You know, I did when I had that.
Like that's probably not going to be helpful at that point.
Yeah.
Second thing is all about perspective.
Yeah.
When we are discouraged, it is so important that we have a proper perspective of what's going on,
or we will be swallowed up by discouragement.
So how do you get a proper perspective?
Well, it's important to understand that you look at it from a couple of different perspectives.
One perspective is what's happening right now is just a season.
It's an event and this two shall pass.
Like my mother used to say that all the time, Ellen, this two shall pass.
I say that in my head all the time.
Like mom, is that you?
Why are you in my white side?
Probably. Yeah. Yeah.
Yeah. But it's true.
Like there is a there is a temptation
to think this is now my lot in life.
This is what life will look like.
No.
Yes.
No, there was a time before you felt like this
and there will be a time when you don't feel like that.
Honestly, I say that a lot about COVID.
This too shall pass.
It's taking a while.
Pass a lot.
Never mind.
But this too shall pass.
So yeah, that perspective of like this tool will pass.
this is a season. The second type of perspective it's worth considering is let's say you're having
difficulty at work. Let's say you're having a work relationship that's causing you distress.
Okay. It's important to understand that you're that thing is very real and is affecting you at work,
but your life is made up of more than just work. Yes. So you have a beautiful family, you have
a life outside of work or put another way, you're having difficulty with a family member, right?
 Understand that your life is larger than just that conflict. So you've got a friend
group, you've got a church community. And it's so important that we don't waste time trying to
tell ourselves not to feel things about the thing that's causing us trouble, but instead use that
energy to focus on the things that give us joy in life. So for example, you're like, yes,
I am having relational discord with my brother. Yes. Yes, he's driving me nuts. Yes, he keeps
making decisions that are causing me sleepless nights and heartache and perhaps financial ramifications.
But I also have a beautiful spouse and beautiful children and I live in a great area and there's
a park and I can go for a walk. And that sounds like you're talking yourself out of what you're
feeling. It's not, it's you learning to appreciate the things that you have got going well for you.
you rather than being overwhelmed and avalanche by this thing.
Right.
Because often we're spending time stressing or again, using our imagination for worry about
things we cannot control because somebody else is making decisions.
And so it's actually if we can actually focus on the things that we do have a say
in and that are going, well, that's a lot more, it's a healthier, it's going to
give us a healthier perspective.
Would you like to know one of my new favorite apps?
I would.
It's called Pearl Pearl.
P-E-A-R-L in case you can understand my accent.
All right.
Yeah.
Yeah.
Pearl.
That's how you spell it.
And basically all it is is an app that interrupts your day with reminders of
things you want to remind you.
It comes preloaded with some reminders, but I like set up some reminders.
Like I used to be drowning in debt, but now I'm not and I live in abundance.
Right.
And so I'll just be going through my day and it will just stop on my phone or my
watch will just go, Hey, I used to be drowning in debt, but now I'm not.
I'm living in abundance and I'm like,
"Oh Lord, you're right.
"I remember what it was like.
"I remember literally what it was like,
"not knowing how to make ends meet.
"And now I don't live like that and I'm so grateful."
Or just something simple like,
"Don't give up hope."
"Oh, I'm not gonna give up hope."
And it just reminds you throughout the day
and you can write your own little flashcards pop up
on your phone as a notification or pop up on your watch.
Sounds simple, sounds trite,
but it gives you something else to focus.
I just want a list of things I'm thankful for.
Right. So you're talking about a thankfulness. That's what I use the pictures on my iPhone.
You know, I have that bigger window, whatever it's called. A widget. A widget.

Well, anyway, I look at that. On iOS 14 and iOS 15. Yes. There is a widget for the photos app
where you can just add it to your home screen and it will through the genius of artificial
intelligence and machine learning surface photos that you've long forgotten even exist and like
Higher than nine times out of ten. They're excellent photos, aren't they? I mean, they're just a brilliant photo
They're often ones. I haven't looked at forever and I just it turns me to thankfulness like right away like oh
I'm so thankful for that person or you know for that
It's not usually the moment it's usually the people in the photograph
I'll frequently screenshot my home screen and send it to the person
My phone reminded me of today, just want to say I love you.
Yeah.
Yeah.
So I mean, I love that too.
I think thankfulness is a great way of regaining perspective.
The photos widget and the parallel app, I'll put a link in the show.
Perfect.
The third thing.
So first thing is like, get your feelings out of you.
Like speak.
Yeah.
Number two.
Perspective.
Perspective.
Thank you.
Oh, I'll be fine.
You're welcome.
Number three is pay attention to the company you keep.
because some of your company might be fueling
your discouragement.
- Yeah.

They're fueled by trauma and anger and distress.
And so they want to,
because perhaps they don't know another way out.
They get their energy from things being wrong.
- Yes.
- And so they wanna point out what's wrong with the world.
That's a pretty toxic environment to be in.
So, but again, if you don't know anything different,
you might think that's normal.
- But then I would put that,
I agree with what you're saying,
and you're saying, watch the company you keep.
But under company you would keep,
I would also put music you listen to,
podcasts you listen to.
- Twitter feeds you listen follow.
Because those, that would all feed the same thing of people that choose to continuously
live in contention.
You say that and I realize that there is a really interesting dynamic that I'm aware
I do in my life and I'm sure I'm not alone in this, is where we outside outsource our
problem to fiction.
And what I mean by that is we're drawn to TV shows that are dealing with the issues
that we're dealing with so we don't have to deal with them.
So we watch shows about characters
who are experiencing the same distress as us.
So we watch Victory happen,
or we have Commiseration
without actually having to engage in our own story.
- Okay.
- Does that make sense?
- Or we watch stuff that is like so far removed.
Like there's a whole bunch of TV shows
that I don't wanna watch that everybody loves,
that I'm just like,
that sounds like marriages breaking up,
you know, problems with children.
You know, all the kind of stuff
that we will sit down and pray with people
for which I want to do, but then I'm gonna feel like,
I often watch those shows and I realize I've spent time,
like when I got in the bathroom, whatever,
praying for fictional characters from a TV show,
because-- - She used to be like that with ER.
You would be praying and tongue for the person in surgery,
and I'd be like, babe, fiction, fictional character.
- Yeah, yeah, so I go the other way,
as opposed to wanting to watch a TV show
that is similar and I get to work it out that way.
I'm like, I can't.
- You wanna go the other way for discretion?
- Yeah, I want to watch something about aliens
or something that's far removed from any form of reality,
like Avengers or something.

Instead of just being present with your pain
and moving forward.
- That's such a good point.
I think too, like I know you've hit your three.
Yeah, I didn't suppose one,
so I don't own the Apple in the market.
I think too, like we already said,
everything is seasonal.
So when you find yourself in a season of discouragement
that you're like, this thing is not shifting.
And I think that's a good time to go.
Maybe this in this season,
I'm gonna go get help shifting it.
I'm so glad you mentioned that.
Seriously, because what I wanted to say to people,
Having struggled with mental illness in my early 20s.
What I would wanna say is if you're listening to this
and you've put these things into practice,
but you're still feeling like you're sinking in life,
it might be a good idea to get a professional perspective.
Like there's no shame in going to a doctor,
going to therapist, going to cancer, going,
"Hey, I've employed various techniques
"to help keep my head above water,
but I'm feeling overwhelmed, sad, despondent, depressed.
And getting an outside perspective
because if there is a clinical problem,
all the quoting of scripture in the world,
all of the feeling your feelings is not gonna help
if there's an underlying medical problem.
And I wanna encourage you, go see an expert.
That's certainly helped me, I remember being 21.
Of course, I didn't know any of this stuff,
but even then, if I did, I don't think it would have helped me.
I mean, I had plenty of demons and I had a proper medical problem that praise the Lord
through doctors and through the Holy Spirit got healed.
Right.
But I would hate for you to be listening to this thinking, you know, I just need to, you
know, feel my feelings more, I need to quote scripture more if there's an online.
Well, what I mean is like, if we were doing a podcast about stretching your muscles, but
you'd broken your leg, right, the trick wouldn't be like, I guess I'm just a lightweight because
I'm feeling pain when I'm fetching the muscle. No, you might need surgery in your life.
Right. Physiotherapy. But also I think because you said like if you are, if you are drowning,
if you're underwater, but I don't even think you need to get to your drowning, your underwater,
your depressed. Like I think if you realize I'm spending a lot of time having to manage
and process my emotions like more than normal, maybe that's the season where you just need
some extra help, managing your emotions and diving into that
with somebody who has a different perspective. So I have a
therapist. Right. And my therapist isn't from my world per
se, or you know, but he's helping me see things from a
different point of view and helping me figure out where,
hey, you're actually not connecting with your own
emotions or your own needs. Or do you realize that you're doing
XYZ and I'm like, no, I didn't know that.
Um, and sometimes it's like, he, you know, he said a few things that you have said before,
but when you said it, I was like, you know, well, you know, whatever, whatever my response
was,
I was pulling underwear.
So you were distracted.
I probably was.
Yeah.
Where, uh, you know, my therapist is fully clothed and so we're fine.
You don't like
and the professional and is not married to you.
- Yes.
- And has credibility to it.
- Yes, and he very nicely points out things
that probably if you had said them,
I would be like, well, yeah, will you?
- Do your mom?
- Yeah, blah, blah, blah, you know, where, yeah.
So, I mean, I just, I think there's seasons where
it's just great to realize, you know what?
I'm in a season where I need some outside help.
- And it doesn't mean you're broken.
- And maybe don't let it get to where you're drowning.
- Mm-hmm.
Yeah, doesn't mean you're broken.
- Yeah. - Doesn't mean you're...
- No. - It means you're human.
- There is no shame in needing help.
We're built to need help.
- Absolutely.
- So. - All right.
Well, there's any other thoughts
on dealing with discouragement?
- Just don't give up.
- Don't give up.
Oh, that's what my phone just said.
Don't give up. - I did?
- No, it didn't.
But it often does.
This is don't give up hope.
All right, I have a listen question for you.
- Oh, okay. - On the topic of feelings.
- Oh dear. - This is a great question.
This is from Amanda.
And she asks,
How do you go about cleaning up a mess
when you realize you've made a mistake in a relationship?
Not necessarily a romantic one.
What are the practical steps to doing so,
but also steps in regarding to processing
your own feelings of guilt and bonus question,
what's the difference between guilt and shame
in those situations and how would they look?
You tackle the first two, I'll tackle the last one.
- Well, I can't even remember the first two.
So give me some practical steps.
You just realize you've made a boo boo in your relationship.
How do you go and clean up that mess?
Well, you apologize.
Go just go and own your stuff.
You realize you've made a mistake.
You've hurt someone.
Go and own that.
And what would that look like going up and saying, Hey, Alan, I'm really sorry.
I realize I snapped at you.
I did whatever it is.
You know, like go and own what you did and apologize for it.
- Okay, hold that thought, I think you're perfectly right.
- Okay.
- What are some things that would minimize
what you're doing there that sound helpful
but ultimately wouldn't be?
You're going to apologize.
What are some things not to do when you go to apologize?
- Oh, explain why actually your motivation of your heart
was good and so you should be okay with it,
but here's the thing, I still wanna apologize.
- So when you try--
- Justifying.
- And justify, hey no no, I mean,
what I meant to do or try and make it about their issue.
I'm sorry that you were so oversensitive.
- By Yvesack.
(laughing)
- Like going low and slow.
And actually inviting the person into,
jury's out on this,
but I'm leaning away from automatically apologizing.
And actually going with an open hand
and like being willing to apologize,
but what they might not need is an apology,
what they might just need is a connection
or what they might need is a curious heart.
Going, hey, when I said this thing,
I have feelings of guilt,
which tells me I've probably done something wrong
'cause guilt tells us we've done something wrong
and we need to repair a relationship.
I feel guilty about this,
but I'm realizing as I think about it,
I'm interpreting my actions from my perspective.
Did this hurt you when I said this?
Like just opening up that.
Is there anything you need in there?
because they might not need an apology.
Because what I've learned is often when I apologize,
I apologize to ensure that you can have feelings anymore.
So my apology isn't about,
I am sorry for the thing I've done.
It's I'm sorry you're having feelings
and I've learned this really super Christian phrase
where I say, I'm sorry,
and now you're no longer allowed to have any feelings
I can be okay, which is horrible.
Like, so it's not when I say I'm not going with an apology,
leading with an apology.
It's not 'cause I don't want to apologize.
It's actually I want to repair and you might not need like,
I've realized in our relationship, which is romantic.
Often you need space.
- It is romantic.
- You need space.
- I do.
- You don't need thorough breakdown of what happened.
- I almost always, if we have some kind of run in,
need space right away.
Yeah.
- And my effort to fix it so that I don't have my feelings
of scale anymore.
- Just frustrates me further.
- Yeah.
- Yeah.
So that's what I mean.
When I say, you know, I'm not leading with apologizing.
It's not that I don't want to own my stuff.
I really do.
I first want to explore because it's a little bit arrogant of me
to imagine that I know why you might be hurt by what I said.
Yeah.
Because as we're learning, my track record at knowing
what you're thinking is often off.
Yeah, only like 95% of the time though.
So.
Well, it's 100% of the time because I know you're having feelings.
It's just that I often guess the wrong one.
Yeah.
Yeah.
Okay, so I'm gonna have to reread the question.
So that's the steps, but the other question,
so like that's the steps.
What do you do?
You go repair it.
Let me ask about repairing.
One of the phrases I often hear from people
as I'm coaching them is they're like,
"Well, you know, I'm just waiting
for the right opportunity."
What do you think about waiting
for the right opportunity
as opposed to making the right opportunity?
- Well, I would make the opportunity.
I don't, I mean,
I don't have a whole lot of confidence
that the right opportunity is ever gonna come
if you're waiting for something like some sort of sign
or something.
But I'm waiting for the right--
- Probably not built that way.
- Neither am I.
- Yeah.
- Waiting for the right opportunity to have confrontation.
You'll have plenty of reasons to think
it's not the right opportunity.
- Right.
- A much better way is just saying,
"Hey, can I talk to you because I,
"and talk about yourself, like I use I statements.
I felt when we so could we talk about it. Yeah. All right. So, Amanda, first thing is,
if you're going to need to clean up a mess, just own it. Be curious. Step in. That's the
practical steps to do and so. But also processing your own feelings of guilt.
Well, you know, when we feel guilt, it's a gift from God that tells us that we've done something
wrong. And if we sit with our feelings of guilt, that leads us to our need for forgiveness and
and our need to repair things.
And here's the beautiful thing.
Okay, let me paint a really sketchy situation.
Let's say I'm in relationship with somebody
who is highly manipulative.
- Why are you touching my arm while you say this?

In this example, this completely fictitious example.

But let's say I've also legitimately hurt the person.
- Okay. - Or I've said something,
I've snapped at them. - Yeah.
- And now I have guilt because I've sinned
in response to being sinned again.
So let's say A.J. tries to control her, manipulate me,
and I call her out on that, but I'm actually quite harsh,
and maybe I've said some unkind words.
I'm having guilt about that.
And let's say I go to A.J.
I listen to my guilt, and my guilt says,
"Hey, Alan, that was unkind thing, you need to go own that."
And I go to A.J. but she won't receive my, you know,
no, oh, so you're back again?
 This manipulative person is not owning my, not
owning their part, not wanting to receive my apology because they actually like
having the power dynamic of like, oh, now the relationship's broken. I can
leverage this somehow. Here's the beauty in your guilt, the very act of going with
a heart of reconciliation, even if you can't be reconciled, will restore your
heart to the peace that you need because you made an effort to go. So it's this
win-win situation. You seek restoration and even if you don't get it, there's
still a healing bomb that comes to your heart. Yes. That's important to know if
you're dealing with somebody who doesn't want to deal with their thing. So good.
Can you stop touching me now? What do you talk about the manipulative person?
You're not a manipulative person. You're kind, you're courteous, you work out in
your stuff. You've treated me with exceptional kinds and so much patience
and some believable. You are as far from manipulative as I could imagine. Thank
you. Does that feel better? Yes, much better. Great. No, that's all I needed.
Okay, good.
It's a check-in.
I was trying to think when you were telling the story how I could act like a manipulative
person but then I thought, "I don't actually know where we're going with this."
So anyway.
All right, the latter part of the question was, "What's the difference between guilt
and shame in those situations and how would they look?"
Guillain shame have got very similar impairments.
That is, if you don't feel your guilt and if you don't feel your shame, you will end
up in a place of toxic shame.
Yes. All right. Your toxic shame when you're in a guilt might say, I don't need to apologize
because it's still them and we'll make any difference. And you know what, I was in the
right anyway, like it kind of turns haughty. Your toxic shame, if you don't feel your shame,
might be, there's really no point in doing it because, you know, nothing ever changes and I'm
such a bad person and they wouldn't even hear me if I went to reconcile.
Guilt tells us, Hey, I've done something wrong. I don't need to repair it. And shame,
if we listen to our shame, if we sit with our healthy shame, it leads us to a place of humility.
That is, I've got limitations. So, for example, I was with a friend the other day, and they told
me how I had hurt them. And I listened to them, and I genuinely hurt them. They were hurt by my
behavior. And they didn't need anything on them. I think they just needed to share, "Hey, you hurt me."
And also I'm going away not as a defense, but realizing, yeah, I understood that my limitations hurt you.
And I have to make peace with that.
Like I can't be everywhere at all times.
And I I've got limitations.
I can't be constantly by somebody side.
I can't constantly serve them as much as I am.
You can meet everybody's needs.

Yeah.
And my limitation has caused you pain.
And I'm sorry for the fallout of that.
And I'm at peace understanding I've got limitations.
That would be healthy shame in action,
recognizing I've got limitations.
I can't do everything, you know, all times.
And it's important to sit with them.
Another way of thinking about it is
Gil lets us know we've done something wrong.
Toxic shame tells us that we are.
There is something wrong about us.
Yeah, it's an identity thing.
Yeah.
Gil is an action oriented.
Toxic shame is personal oriented.
Like I am flawed rather than I did something flawed.
I hope that helps.
I hope it does too.
AJ, if you had questions that you wanted to be asked on the show, where would you go?
I would go to<EMAIL_ADDRESS>Or you can just reach out on Twitter @allen@aj or you can DM us on Instagram @allen@aj.
Yeah.
But yeah, go to<EMAIL_ADDRESS>If people would like to watch the videos and they would like to get priority on their
Q&A, if they would like to have access to the behind the scenes connection center that we have and get discounts on our products, how would they do that?
Well, you can sign up to be a member by going to<EMAIL_ADDRESS>Absolutely perfect.
It feels like a quiz, I'm getting to pass the test.
And if you want to show us for this episode, go to<EMAIL_ADDRESS>- Two fifty-four perfect.
Thanks for listening to us.
Thanks for being with us.
If you're new, you just go ahead and subscribe
and you'll get a new episode next week.
- See you next week.
âTMª Faith, life, communication âTMª
âTMª Tacos and video games âTMª
âTMª Pale you donuts and the kindness of God âTMª
âTMª But things we deal with every day âTMª
âTMª From Franklin, Tennessee âTMª
They are just like you and me.
Alan and AJ.
Keeping up with the Joneses, keeping up with the Joneses.
Sharing their life experiences.
Keeping up with the Joneses, keeping up with the Joneses.
They talk about faith in God and everything under the sun.
âTMª If you are a human being âTMª
âTMª There's something here for everyone âTMª
(gentle music)
[ Silence ]


The purpose of this demo is to illustrate using links from well-known sites to create a story.
However, when this demo was first constructed, we learned that not all sites will permit themselves to be used in a story. We explain below the reasons for this from both a policy standpoint and a technical perspective.
The 6 test sites are:
We learned immediately that The New York Times would not
permit its pages to be shown within the iframe
used
to implement the Story Utility. Furthermore, the approach
of the Times is quite agressive. If we attempt to place a page
from the Times in the Story Utility, then the utility will
be blown away and the outer page will redirect to the Times site.
You may see this in practice when you attempt to go to the last
slide of this story.
Originally, all of the other 5 sites worked fine in the Story Utility.
iframe
.
The Google approach is more gentle. If Google detects an
attempt to put one of its pages into an iframe
,
it will simply stop and leave any existing content in the
iframe
as is.
iframe
.
You may see this in practice when you go to the Google or jQuery slide using either the arrow buttons or the dropdown menu.
Furthermore, if you are at the Google or jQuery slide and click the icon , then the real page will appear in a new tab.
Let us consider why these sites might be doing
what they are doing. There is a concept in web design called a
mash up in which the content of multiple pages is shown
in a single composite page. A common way to implement a
mash up is via multiple iframe
’s on a
page. Therefore:
The decision of a site not to permit a page to be shown within
an iframe
is tantamount to a policy decision that
the site does not wish to be part of a mash up.
For The New York Times, the policy decision is that is does not wish to have its news coverage shown in a mash up with the content from other news sites.
For Google, the policy decision is that is does not wish to have its search engine shown in a mash up with competing search engines.
For jQuery, the reason for its decision is a mystery.
Let us now explain in principle how a site may detect that it is
being placed in an iframe
. When a page is rendered
either in a complete browser tab or in a nested iframe
,
the Javascript object window
represents the portion
of the browser area that the page is being displayed in. Note
that the same variable name is used either at top level or in a
nested situation. This is what enables most pages to render
equally well at top level or in a nested iframe
.
Most pages simply do not care where they are rendered. However,
Javascript can test where the page actually sits. There is a
second object window.top
that always represents the
outermost window panel. Therefore:
A page is nested if window.top
is not equal to
window
.
We have not been able to track down exactly where The New York Times and the other sites make a test of this nature but it is clear that some such test is being made in the Javascript code. Once nesting is detected either the page does not render or the nesting is blown away.
If you wish to explore nesting, click on Nest Test.


Error #66: ILLEGAL TRACK AND SECTOR,TT,SS The DOS has attempted to access a track or block which does not exist in the format being used. This may indicate a problem reading the pointer to the next block.


This section details the ChromeVox lifecycle. When it is first installed or enabled,
initially only the ChromeVox background script is loaded. The background script
loads persistent preferences, registers event listeners from extension APIs, and then
injects the ChromeVox content script into every running tab. When the user
navigates to a new page or opens a new tab, the ChromeVox content script is run
automatically from then on.
The content script first receives persistent preferences from the background script,
registers event listeners, and then describes an overview of the page to the user. In
order to speak, the content script sends a message to the background script with the
utterance and various speech parameters, then the background script uses the TTS
extension API to speak.
Once initialization is done, ChromeVox has no running code; it is entirely
event-driven, and all of its functionality from here on is based on listening to events
generated by the user, or events generated by the page.
ChromeVox listens for the following types of events:
-
Navigation commands
- Key-down events matching ChromeVox shortcut keys
are intercepted and used to control ChromeVox to navigate the DOM using
a variety of navigation strategies 4.1, or interact with the page in other
ways. Many of these shortcuts directly manipulate the page — for example
by moving focus, following a link, or changing a control value — while
others are used for passively reading, searching, or otherwise describing
the content of the page.
-
User events
- Other event listeners respond to user-initiated actions such as
moving focus, or typing in editable text controls. In these cases the
goal of ChromeVox is to make sure that all of the native interactions
provided automatically by the browser are faithfully described to the
user. ChromeVox does not override any browser behavior unless absolutely
necessary; this ensures that ChromeVox users have the same experience
as other users when interacting with web sites and web apps.
-
Page events
- ChromeVox also listens for events and notifications from the page
that were not user-initiated. The primary use of this is for W3C ARIA
live regions, as discussed earlier.
-
API messages
- ChromeVox exports its own API that web pages or other
extensions can use to communicate with ChromeVox and trigger custom
feedback or navigational commands.


Number of Bedrooms: {{article.bedroom}}
Number of Bathrooms: {{article.bathroom}}
Total Square Footage: {{article.footage}}
Monthly Rent: ${{article.rent}}
Additional Details:
{{article.content}}


gmmmixes = mdn2gmm(mdnmixes)
gmmmixes = mdn2gmm(mdnmixes)
takes an MDN mixture data structure
mdnmixes
containing three matrices (for priors, centres and variances) where each
row represents the corresponding parameter values for a different mixture model
and creates an array of GMMs. These can then be used with the standard
Netlab Gaussian mixture model functions.
mdnmixes = mdnfwd(net, x); mixes = mdn2gmm(mdnmixes); p = gmmprob(mixes(1), y);This creates an array GMM mixture models (one for each data point in
x
). The vector p
is then filled with the conditional
probabilities of the values y
given x(1,:)
.
gmm
, mdn
, mdnfwd
Copyright (c) Ian T Nabney (1996-9)
David J Evans (1998)


Hi
First time with anything arduino and can't find a simple guide anywhere to help me with the basics.
Firstly setting up the arduino IDE
Under Tools which board do I choose? I have selected the uno
Under Tools Programmer I have selected the AVRisp Mk2
I have tried the emonTx serial code and that did nothing so I uploaded (if it is uploading?) one of the example sketches that prints the ASCII table to the serial port.
I have installed the programmer on com3 in win7 and the drivers loaded automatically
I am getting an error after I upload;
Using Port : usb
Using Programmer : stk500v2
avrdude: usbdev_open(): did not find any USB device "usb"
is there a way to verify that the sketch is uploading? I did select ''verify on upload'' in preferences but I'm not getting any messages .
when I open the serial monitor I get nothing at all.
I am probably doing something silly but this is all new to me.
Ii would appreciate any advice.
Mike
Re: First test of my emonTx v3 don't know what i'm doing wrong
Check you've done all the setup steps on here: http://arduino.cc/en/Guide/Windows
Yes you can treat it as an Arduino Uno,
on the "Tools Programmer" what are you using to connect the EmonTx to your PC?
Re: First test of my emonTx v3 don't know what i'm doing wrong
Thanks
in the Uno environment Under Tools Programmer I have selected the AVRisp Mk2
I have followed the link you sent and I think I have done everything OK - as it is for a standard uno it's not exactly the same as for the emonTx
My drivers I downloaded from '' http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx''
and they seem as though they are installed OK.
if i pull the usb from the pc the com 3 vanishes from device manager and re-appears when plugged back in.
I have the board plugged in the right way up! a picture would have been helpful but I made sure i got that right ;)
I didn't try the blinking lights sketch as I don't even know if that should work as it's not a standard uno?
so I'm a bit stuck.
Oh I didn't solder the board myself it was bought pre-built.
I have checked the soldering on the programmer board. The ground looked as though it might be dodgy but i re-soldered it and it made no difference.
mike
Re: First test of my emonTx v3 don't know what i'm doing wrong
sorry on a train :-)
so you now know that the arduino ide should be setup right.
no the blinking led wont work.
have you looked at the emontx pages under "get started" above & top left?
Re: First test of my emonTx v3 don't know what i'm doing wrong
Yes a good few times.
doesn't mean I have absorbed or understood it all yet though but I am trying.
Re: First test of my emonTx v3 don't know what i'm doing wrong
From what I remember/know of Windows 7, the instructions for Windows 8.1 here http://openenergymonitor.org/emon/node/3727 are fairly close, and if you know W7 reasonably well, you should be able to follow them.
Did you install the SILabs drivers or did you allow Windows to install the default ones? If the latter, that's wrong and, if I remember correctly, they don't work; hence you still need to manually install the SILabs ones.
The clue for connecting the programmer is to look carefully at the non-component side of the emonTx PCB and identify the Ground pin (connected to the ground plane), and line that up to the GND on the programmer. (We weren't the ones who chose a reversible connector - it's unfortunate that it is so, but we have to live with it. I recommend putting a blob of paint on the ends of the connectors.)
(I've never owned a W7 machine so I'm not very familiar with it - I went straight from XP to W8.1 dual-booted with Ubuntu, I use W8 only when forced to.)
Re: First test of my emonTx v3 don't know what i'm doing wrong
Thanks Robert
I have read and followed the instructions for installing the drivers and I am certain that I have the programmer plugged in the right way. The board faces down in relation to the main board, ground to ground etc.
I have tried various tricks that I have read on the Arduino forums but nothing seems to work.
Mike
Re: First test of my emonTx v3 don't know what i'm doing wrong
Hi Mike,
Sorry to hear your still having trouble. What output do you see when you try and upload? You should see 'done uploading'. Have you selected 'uno' under the 'board' menu in the IDE?
If you have a multimeter to hand it would be good to check to see if the emonTx V3 is getting power, you should be able to measure both 5V and 3.3V on the terminal block as shown below when powering from the programmer :
If after all this your still having trouble it might be the case that you have a faulty programmer. Drop us an email and we'll send you a replacement.
Re: First test of my emonTx v3 don't know what i'm doing wrong
Do you have an ac-ac adapter and a c.t. plugged in to your emonTx? (Or if not a c.t., an empty 3.5 mm plug?) What happens when you power your emonTx via the adapter (without the programmer being connected)?
(This is because what the emonTx default sketch does depends on what it sees when it powers up.)
When you then connect the programmer between your USB port and the emonTx, and you run the Arduino IDE, what happens when you open the serial monitor (the magnifying glass icon top right)?
If you get "Serial port ******* [in my case it's '/dev/ttyUSB0'] not found. Did you select the right one from the Tools > Serial Port menu?" that means it cannot connect to the Programmer. If an empty window appears, you are talking to the programmer but not necessarily to the emonTx.
Re: First test of my emonTx v3 don't know what i'm doing wrong
I do not have any other power supply at the moment as my 9v ac wall wart decided not to work am going to order new one.
I have been powering via the programmer. (i asked Glynn if that was Ok) the red led flashes ok so I didnt check voltages.
It seems like I have a good 5v but 1.76v on the 3.3 terminal
I get 3.3v if I disconnect the programmer and test the voltage from that.
I have
I have selected the right serial port (com3) and the serial monitor does open although it shows no traffic.
I do have a ct plugged in but I have been trying to upload other sketches as well to try to test the board.
oh and I have selected uno from the boards menu,
I don't see ''done uploading'' now but I am sure the first few times I tried it I did?
thanks
Re: First test of my emonTx v3 don't know what i'm doing wrong
I just wrote a very quick program in .net to send a string to the port every half second and rigged up an led on a breadboard.
from the output of the programmer: the led is flashing.
I would imagine that this means the problem lies on the board?
mike
Re: First test of my emonTx v3 don't know what i'm doing wrong
To follow up I did a loopback test rx to tx and all data was writing and reading ok.
This is within my program with some test data , have not tested output from arduino ide.
perhaps I should try that next
Re: First test of my emonTx v3 don't know what i'm doing wrong
just tried that with the led again and while it flashes quite nicely with my data being sent it doesn't even glimmer when i am uploading the program from the arduino ide.
which makes me suspect a possible set up problem - although the 3.3v on the board is not right so ...
hope that is informative.
mike
Re: First test of my emonTx v3 don't know what i'm doing wrong
The new output I am getting is this:
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino/hardware/tools/avr/etc/avrdude.conf"
Using Port : COM10
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
Re: First test of my emonTx v3 don't know what i'm doing wrong
Been trying all day with no luck . I'm sure it's got to be something simple ?
one thing I said earlier was wrong I'm not getting 1.76v on the 3.3v terminal ;
I was reading the voltage difference between 5v and 3.3v !! what an idiot :)
Re: First test of my emonTx v3 don't know what i'm doing wrong
When you did the loopback test, did you use the Arduino IDE or another program?
Re: First test of my emonTx v3 don't know what i'm doing wrong
I used a program I knocked up in VB.net .
I used the arduino IDE serial monitor after I'd realised that was an easier way.and that worked as well.
Re: First test of my emonTx v3 don't know what i'm doing wrong
well I can't think of anything else to try myself so it looks like the board will have to go back.
Re: First test of my emonTx v3 don't know what i'm doing wrong
It looks as it you can get as far as the output of the programmer and back, and the voltages now appear to be right. You're fairly convinced you've done everything right, and I can't think of anything else (and apparently neither can anyone else!) I think it's time to get back to Glyn. Before you do that, where are you in the country? (Just in case there's someone within reach who might be able to help.)
Re: First test of my emonTx v3 don't know what i'm doing wrong
Thanks Robert that's a very nice thought.
I am in west Norfolk near Kings lynn and Downham market
Re: First test of my emonTx v3 don't know what i'm doing wrong
Sounds like the emonTx is faulty, I've been in touch with Mike to organize replacement. Thanks to everyone who's been helping on this thread


Jungle SHOWDOWN
I’m A Celeb winner Jacqueline Jossa and ‘cheating’ Dan Osborne in tense talks by the pool after showdown with her mum
by Dan CainI'M A Celeb winner Jacqueline Jossa has been pictured having tense talks with her cheating husband Dan Osborne by the pool in Australia.
The Queen of the Jungle was without her wedding ring as she spoke to shirtless Dan after he was accused of having a threesome with CBB stars Chloe Ayling and Natalie Nunn behind her back.
During the heart to heart Dan pulled Jacqueline in to him for a cuddle and he held her hands while gazing intently at her.
The former Towie man's mum Sarah also had a serious chat with Dan, pointing her figure at him as they sat on a bed in the shade.
Dan and Jac's kids Mia and Ella played in the sand while the adults talked it out.
Yesterday a social media snap showed Jac's mum Selina and dad John keeping their distance from Dan on the bus into camp to greet the winners.
And after reuniting with their daughter, Selina posted of her pride without referencing Dan.
Meanwhile it's been reported that Jacqueline is the first ever winner to cancel live TV interviews after details of his threeway romp were revealed.
Despite previous champions appearing on daytime shows such as Good Morning Britain, Lorraine, This Morning or Loose Women the next day, Jacqueline is said to have refused to go on any.

A source told The Mirror: "She has to film for the 'coming out' show which airs later this week, so cancelled all other TV offers like GMB and Lorraine to spend more time with the family.
"Jacqueline and Dan spent time together in the hotel and probably had a lot to talk about."
Guilt-ridden Chloe - who found fame after being kidnapped by a sex trafficking gang while on a modelling assignment in 2017 - revealed she romped with Dan during a wild night out at a London hotel.
She told us last week: “I feel so sorry for Jacqueline. She deserves to know what Dan is. He’s making a fool of her.”
Jacqueline shared a passionate kiss with Dan after being crowned Queen of the Jungle last night.
She got emotional as she told hosts Ant and Dec how she no longer wanted to be seen as a "doormat" after previously taking cheater Dan back.
Jac said: "It was not what I expected.
"It was a lot harder. I didn't think it would be such a turning point in life, I went in as one person, I feel like I have come out as a different person. I've grown in confidence and found who I am as a person."
She added: "I think it's so easy to care so much what other people think of you, trolls, people who say nasty things for the sake of it and I try to change their opinion.
 Here I have different people bigging me up of different ages, I can't really work out what is happening.
"I've always been known as Lauren from EastEnders, or a doormat, or whatever you want to call it, and coming here I have actually proved myself."


class: center, middle, inverse, title-slide # Tidying your data ## SISBID 2019
https://github.com/dicook/SISBID
### Di Cook (
<EMAIL_ADDRESS>,
@visnut
)
Heike Hofmann (
<EMAIL_ADDRESS>,
@heike_hh
) ### 07/24-26/2019 --- # Using `tidyr`, `dplyr`   - Writing readable code using **pipes** - What is **tidy data**? Why do you want tidy data? Getting your data into tidy form using tidyr. - Reading different **data formats** - String operations, working with **text** --- # The pipe operator `%>%` - `x %>% f(y)` is the same as `f(x, y)` - read as `then` - part of `dplyr` package - pipes allow the code to be *read* like a sequence of operations Example: ```r tb <- read_csv(here::here("data/TB_notifications_2019-07-01.csv")) tb %>% # first we get the tb data filter(year == 2016) %>% # then we focus on just the year 2016 group_by(country) %>% # then we group by country summarize( cases = sum(c_newinc, na.rm=TRUE) # to create a summary of all new cases ) %>% arrange(desc(cases)) # then we sort countries to show highest number new cases first # A tibble: 216 x 2 country cases <chr> <dbl> 1 India 1763876 2 China 778493 3 Indonesia 364671 4 Pakistan 356390 5 Philippines 332941 6 South Africa 237045 7 Bangladesh 222248 8 Myanmar 137551 9 Democratic Republic of the Congo 130596 10 Ethiopia 125836 # … with 206 more rows ``` --- # What is **tidy data**? - What do we expect tidy data to look like? - Couple of exercises to look closer at what we find in practice --- class: inverse middle # Your turn 1 What are the variables? ``` # A tibble: 6 x 4 Inst AvNumPubs AvNumCits PctCompletion <chr> <dbl> <dbl> <dbl> 1 ARIZONA STATE UNIVERSITY 0.9 1.57 31.7 2 AUBURN UNIVERSITY 0.79 0.64 44.4 3 BOSTON COLLEGE 0.51 1.03 46.8 4 BOSTON UNIVERSITY 0.49 2.66 34.2 5 BRANDEIS UNIVERSITY 0.3 3.03 48.7 6 BROWN UNIVERSITY 0.84 2.31 54.6 ``` --- class: inverse middle # Your turn 2 What's in the column names of this data? What are the experimental units? What are the measured variables? ``` # A tibble: 3 x 12 id `WI-6.R1` `WI-6.R2` `WI-6.R4` `WM-6.R1` `WM-6.R2` `WI-12.R1` <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Gene… 2.18 2.20 4.20 2.63 5.06 4.54 2 Gene… 1.46 0.585 1.86 0.515 2.88 1.36 3 Gene… 2.03 0.870 3.28 0.533 4.63 2.18 # … with 5 more variables: `WI-12.R2` <dbl>, `WI-12.R4` <dbl>, # `WM-12.R1` <dbl>, `WM-12.R2` <dbl>, `WM-12.R4` <dbl> ``` --- class: inverse middle # Your turn 3 What are the variables? What are the records? ``` V1 V2 V3 V4 V5 V9 V13 V17 V21 V25 V29 V33 V37 V41 V45 V49 1 ASN00086282 1970 7 TMAX 141 124 113 123 148 149 139 153 123 108 119 112 2 ASN00086282 1970 7 TMIN 80 63 36 57 69 47 84 78 49 42 48 56 3 ASN00086282 1970 7 PRCP 3 30 0 0 36 3 0 0 10 23 3 0 4 ASN00086282 1970 8 TMAX 145 128 150 122 109 112 116 142 166 127 117 127 5 ASN00086282 1970 8 TMIN 50 61 75 67 41 51 48 -7 56 62 47 33 6 ASN00086282 1970 8 PRCP 0 66 0 53 13 3 8 0 0 0 3 5 V53 V57 V61 V65 V69 V73 V77 V81 V85 V89 V93 V97 1 126 112 115 133 134 126 104 143 141 134 117 142 2 51 36 44 39 40 58 15 33 51 74 39 66 3 5 0 0 0 0 0 8 0 18 0 0 0 4 159 143 114 65 113 125 129 147 161 168 178 161 5 67 84 11 41 18 50 22 28 74 94 73 88 6 0 0 64 3 99 36 8 0 0 0 8 36 ``` --- class: inverse middle # Your turn 4 What are the variables? What are the experimental units? ``` # A tibble: 6 x 22 iso2 year m_04 m_514 m_014 m_1524 m_2534 m_3544 m_4554 m_5564 m_65 <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 ZW 2003 NA NA<PHONE_NUMBER> 2228 981 367 205 2 ZW 2004 NA NA<PHONE_NUMBER> 2298 1056 366 198 3 ZW 2005 NA NA<PHONE_NUMBER> 1855 762 295 656 4 ZW 2006 NA NA<PHONE_NUMBER> 1939 896 348 199 5 ZW 2007 6 132<PHONE_NUMBER> 0 716 292 153 6 ZW 2008 NA NA 127 614 0 3316 704 263 185 # … with 11 more variables: m_u <dbl>, f_04 <dbl>, f_514 <dbl>, # f_014 <dbl>, f_1524 <dbl>, f_2534 <dbl>, f_3544 <dbl>, f_4554 <dbl>, # f_5564 <dbl>, f_65 <dbl>, f_u <dbl> ``` --- class: inverse middle # Your turn 5 What are the variables? What are the observations? ``` religion <$10k $10-20k $20-30k $30-40k 1 Agnostic 27 34 60 81 2 Atheist 12 27 37 52 3 Buddhist 27 21 30 34 4 Catholic 418 617 732 670 5 Don’t know/refused 15 14 15 11 ``` --- class: inverse middle # Your turn 6 10 week sensory experiment, 12 individuals assessed taste of french fries on several scales (how potato-y, buttery, grassy, rancid, paint-y do they taste?), fried in one of 3 different oils, replicated twice. First few rows: ``` # A tibble: 4 x 9 time treatment subject rep potato buttery grassy rancid painty <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 1 3 1 2.9 0 0 0 5.5 2 1 1 3 2 14 0 0 1.1 0 3 1 1 10 1 11 6.4 0 0 0 4 1 1 10 2 9.9 5.9 2.9 2.2 0 ``` What is the experimental unit? What are the factors of the experiment? What was measured? What do you want to know? --- # Messy data patterns There are various features of messy data that one can observe in practice. Here are some of the more commonly observed patterns: - Column headers are values, not variable names - Variables are stored in both rows and columns, contingency table format - One type of experimental unit stored in multiple tables - Dates in many different formats --- # What is tidy data? - Each observation forms a row - Each variable forms a column - Data is contained in a single table - Long form makes it easier to reshape in many different ways - Wider forms are common for analysis --- ![](lego.png) --- ![](playmobile.png) --- # Tidy verbs - `gather`: specify the **keys** (identifiers) and the **values** (measures) to make long form (used to be called melting) - `spread`: variables in columns (used to be called casting) - `separate`/`unite`: split and combine columns - `nest`/`unnest`: working with list variables --- # Gathering `gather(data, key = "key", value = "value", ...)` `data %>% gather(key = "key", value = "value", ...)` - `gather` turns a wide format into a long format - two new variables are introduced (in key-value format): **key** and **value**: multiple columns (specified in `...`) are collapsed; their names go into variable `key`, their values go into variable `value`. ```r dframe id trtA trtB 1 1 2.5 45 2 2 4.6 35 dframe %>% gather(treatment, outcome, trtA, trtB) id treatment outcome 1 1 trtA 2.5 2 2 trtA 4.6 3 1 trtB 45.0 4 2 trtB 35.0 ``` --- # TB notifications new notifications of TB have the form `new_sp_sexage`: ```r read_csv(here::here("data/TB_notifications_2019-07-01.csv")) %>% select(country, iso3, year, starts_with("new_sp_")) %>% head() # A tibble: 6 x 23 country iso3 year new_sp_m04 new_sp_m514 new_sp_m014 new_sp_m1524 <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Afghan… AFG 1980 NA NA NA NA 2 Afghan… AFG 1981 NA NA NA NA 3 Afghan… AFG 1982 NA NA NA NA 4 Afghan… AFG 1983 NA NA NA NA 5 Afghan… AFG 1984 NA NA NA NA 6 Afghan… AFG 1985 NA NA NA NA # … with 16 more variables: new_sp_m2534 <dbl>, new_sp_m3544 <dbl>, # new_sp_m4554 <dbl>, new_sp_m5564 <dbl>, new_sp_m65 <dbl>, # new_sp_mu <dbl>, new_sp_f04 <dbl>, new_sp_f514 <dbl>, # new_sp_f014 <dbl>, new_sp_f1524 <dbl>, new_sp_f2534 <dbl>, # new_sp_f3544 <dbl>, new_sp_f4554 <dbl>, new_sp_f5564 <dbl>, # new_sp_f65 <dbl>, new_sp_fu <dbl> ``` --- # TB notifications (gather) create two new variables: variable `key` (contains all variable names starting with `new_sp_`) and variable `count` with the values: ```r tb1 <- read_csv(here::here("data/TB_notifications_2019-07-01.csv")) %>% select(country, iso3, year, starts_with("new_sp_")) %>% gather(key, count, starts_with("new_sp_")) tb1 %>% na.omit() %>% head() # A tibble: 6 x 5 country iso3 year key count <chr> <chr> <dbl> <chr> <dbl> 1 Afghanistan AFG 2010 new_sp_m04 4 2 Afghanistan AFG 2011 new_sp_m04 2 3 Afghanistan AFG 2012 new_sp_m04 0 4 Albania ALB 2005 new_sp_m04 0 5 Albania ALB 2006 new_sp_m04 1 6 Albania ALB 2007 new_sp_m04 0 ``` --- # Separate columns `separate (data, col, into, sep = "[^[:alnum:]]+", ...)` `data %>% separate (col, into, sep = "[^[:alnum:]]+", ...)` - split column `col` from data frame `frame` into a set of columns as specified in `into` - `sep` is the splitting separator. By default splits happen for any non-alphanumeric value.
 Pro tip: specify `sep` to have some more control; any regular expression will work - `unite` combines multiple variables into one --- # TB notification (separate) Work on `key`: ```r tb2 <- tb1 %>% separate(key, sep = "_", into=c("foo_new", "foo_sp", "sexage")) tb2 %>% na.omit() %>% head() # A tibble: 6 x 7 country iso3 year foo_new foo_sp sexage count <chr> <chr> <dbl> <chr> <chr> <chr> <dbl> 1 Afghanistan AFG 2010 new sp m04 4 2 Afghanistan AFG 2011 new sp m04 2 3 Afghanistan AFG 2012 new sp m04 0 4 Albania ALB 2005 new sp m04 0 5 Albania ALB 2006 new sp m04 1 6 Albania ALB 2007 new sp m04 0 ``` --- # TB notification (separate again) Now split `sexage` into first character (m/f) and rest. `substr` allows to extract sub strings from a character vector (see `?substr`): ```r tb3 <- tb2 %>% select(-starts_with("foo")) %>% mutate(sex=substr(sexage, 1, 1), age=substr(sexage, 2, length(sexage))) %>% select(-sexage) tb3 %>% na.omit() %>% head() # A tibble: 6 x 6 country iso3 year count sex age <chr> <chr> <dbl> <dbl> <chr> <chr> 1 Afghanistan AFG 2010 4 m 04 2 Afghanistan AFG 2011 2 m 04 3 Afghanistan AFG 2012 0 m 04 4 Albania ALB 2005 0 m 04 5 Albania ALB 2006 1 m 04 6 Albania ALB 2007 0 m 04 ``` --- class: inverse middle # Your turn Turn the `french_fries` data from wide format into a long format with variables `type` and `rating`. ``` # A tibble: 6 x 9 time treatment subject rep potato buttery grassy rancid painty <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 1 3 1 2.9 0 0 0 5.5 2 1 1 3 2 14 0 0 1.1 0 3 1 1 10 1 11 6.4 0 0 0 4 1 1 10 2 9.9 5.9 2.9 2.2 0 5 1 1 15 1 1.2 0.1 0 1.1 5.1 6 1 1 15 2 8.8 3 3.6 1.5 2.3 ``` What would we like to find out about this data? --- # What would we like to know? - Is the design complete? - Are replicates like each other? - How do the ratings on the different scales differ? - Are raters giving different scores on average? - Do ratings change over the weeks? Each of these questions involves different summaries of the data. --- # Gathering the french fries ```r ff_long <- gather(french_fries, key = type, value = rating, potato:painty) head(ff_long) # A tibble: 6 x 6 time treatment subject rep type rating <fct> <fct> <fct> <dbl> <chr> <dbl> 1 1 1 3 1 potato 2.9 2 1 1 3 2 potato 14 3 1 1 10 1 potato 11 4 1 1 10 2 potato 9.9 5 1 1 15 1 potato 1.2 6 1 1 15 2 potato 8.8 ``` --- # Long to wide In certain applications, we may wish to take a long dataset and convert it to a wide dataset (perhaps displaying in a table). This is called "spreading" the data. --- # Spread We use the **spread** function from `tidyr` to do this: ```r french_fries_weeks <- spread(ff_long, key = time, value = rating) head(french_fries_weeks) # A tibble: 6 x 14 treatment subject rep type `1` `2` `3` `4` `5` `6` `7` <fct> <fct> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 3 1 butt… 0 0.3 0.2 0.1 0.3 1.2 0 2 1 3 1 gras… 0 0.1 0 0 0 0 0 3 1 3 1 pain… 5.5 0.3 0 0 1.7 9.5 5.5 4 1 3 1 pota… 2.9 9 11.8 13.6 14 0.4 2.9 5 1 3 1 ranc… 0 5.8 6 1.7 0 0 0 6 1 3 2 butt… 0 0.5 0.5 0 0.8 1.1 0 # … with 3 more variables: `8` <dbl>, `9` <dbl>, `10` <dbl> ``` Plot Week 1 against Week 9 in a scatterplot: ```r french_fries_weeks %>% ggplot(aes(x = `1`, y = `9`)) + geom_point() ``` --- # Week 1 vs week 9 ```r french_fries_weeks %>% ggplot(aes(x = `1`, y = `9`)) + geom_point() ```  --- class: inverse middle # Your turn: Do the replicates look like each other? Tackle this by plotting the replicates against each other using a scatterplot. You will need to first gather the data into long form, and then get the replicates spread into separate columns by replicate. --- # Are ratings similar on different scales? - Are ratings similar on the different scales: potato'y, buttery, grassy, rancid and painty? - We need to gather the data into long form, and make plots facetted by the scale. --- # Ratings on the different scales ```r ff.m <- french_fries %>% gather(type, rating, -subject, -time, -treatment, -rep) head(ff.m) # A tibble: 6 x 6 time treatment subject rep type rating <fct> <fct> <fct> <dbl> <chr> <dbl> 1 1 1 3 1 potato 2.9 2 1 1 3 2 potato 14 3 1 1 10 1 potato 11 4 1 1 10 2 potato 9.9 5 1 1 15 1 potato 1.2 6 1 1 15 2 potato 8.8 ``` -- ```r ggplot(data=ff.m, aes(x=rating)) + geom_histogram(binwidth=2) + facet_wrap(~type, ncol=5) ```  --- # Side-by-side boxplots ```r ggplot(data=ff.m, aes(x=type, y=rating, fill=type)) + geom_boxplot() ```  --- # Ratings by week How do ratings change over the weeks? Again, we use the long form of the data and plot: ```r ff.m$time <- as.numeric(ff.m$time) ggplot(data=ff.m, aes(x=time, y=rating, colour=type)) + geom_point(size=.75) + geom_smooth() + facet_wrap(~type) ```  --- class: inverse middle # Your turn Read the genes data from folder `data`. Column names contain data and are kind of messy. ```r genes <- read_csv("../data/genes.csv") ``` Produce the data frame called `gtidy` as shown below: ```r head(gtidy) # A tibble: 6 x 5 id trt time rep expr <chr> <chr> <chr> <chr> <dbl> 1 Gene 1 I 6 1 2.18 2 Gene 2 I 6 1 1.46 3 Gene 3 I 6 1 2.03 4 Gene 1 I 6 2 2.20 5 Gene 2 I 6 2 0.585 6 Gene 3 I 6 2 0.870 ``` --- # Plot the genes data overlaid with group means .pull-left[ ```r gmean <- gtidy %>% group_by(id, trt, time) %>% summarise(expr = mean(expr)) gtidy %>% ggplot(aes(x = trt, y = expr, colour=time)) + geom_point() + geom_line(data = gmean, aes(group = time)) + facet_wrap(~id) ``` ] .pull-right[  ] --- # Models and model output Functions such as `lm`, `glm`, `lmer`, ... allow us to fit models e.g. fit french fry rating with respect to all designed main effects: ```r ff_long <- gather(french_fries, key = type, value = rating, potato:painty) ff_lm <- lm(rating~type+treatment+time+subject, data=ff_long) ``` --- `summary`, `str`, `resid`, `fitted`, `coef`, ... allow us to extract different parts of a model for a linear model. Other model functions work differently ... major headaches! ```r summary(ff_lm) Call: lm(formula = rating ~ type + treatment + time + subject, data = ff_long) Residuals: Min 1Q Median 3Q Max -7.0729 -1.9674 -0.4644 1.5202 10.2192 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.19851 0.25792 4.647 3.50e-06 *** typegrassy -1.15513 0.15572 -7.418 1.49e-13 *** typepainty 0.70055 0.15577 4.497 7.11e-06 *** typepotato 5.13322 0.15572 32.964 < 2e-16 *** typerancid 2.03293 0.15572 13.055 < 2e-16 *** treatment2 -0.05128 0.12051 -0.426 0.6705 treatment3 -0.04546 0.12056 -0.377 0.7062 time2 0.10194 0.21613 0.472 0.6372 time3 -0.01361 0.21613 -0.063 0.9498 time4 -0.10250 0.21613 -0.474 0.6353 time5 -0.13301 0.21690 -0.613 0.5398 time6 -0.04611 0.21613 -0.213 0.8311 time7 -0.24621 0.21628 -1.138 0.2550 time8 -0.11626 0.21658 -0.537 0.5914 time9 0.13188 0.22783 0.579 0.5627 time10 0.54635 0.22783 2.398 0.0165 * subject10 1.71451 0.24389 7.030 2.48e-12 *** subject15 -0.35911 0.24489 -1.466 0.1426 subject16 0.47519 0.24408 1.947 0.0516 . subject19 2.01651 0.24389 8.268 < 2e-16 *** subject31 1.49284 0.25098 5.948 2.98e-09 *** subject51 1.87284 0.24389 7.679 2.07e-14 *** subject52 0.19484 0.24389 0.799 0.4244 subject63 0.96051 0.24389 3.938 8.37e-05 *** subject78 -0.58283 0.24389 -2.390 0.0169 * subject79 -0.53702 0.25027 -2.146 0.0320 * subject86 0.43543 0.25098 1.735 0.0828 . --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.9 on 3444 degrees of freedom (9 observations deleted due to missingness) Multiple R-squared: 0.3995, Adjusted R-squared: 0.395 F-statistic: 88.13 on 26 and 3444 DF, p-value: < 2.2e-16 ``` --- # Tidying model output The package `broom` gets model results into a tidy format at different levels One value for each: - model: `broom::glance` - coefficient in the model: `broom::tidy` - value in the dataset: `broom::augment` --- # Goodness of fit statistics: `glance` ```r glance(ff_lm) # A tibble: 1 x 11 r.squared adj.r.squared sigma statistic p.value df logLik AIC <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl> <dbl> 1 0.400 0.395 2.90 88.1 0 27 -8607. 17270. # … with 3 more variables: BIC <dbl>, deviance <dbl>, df.residual <int> ``` --- # Model estimates: `tidy` ```r ff_lm_tidy <- tidy(ff_lm) glimpse(ff_lm_tidy) Observations: 27 Variables: 5 $ term <chr> "(Intercept)", "typegrassy", "typepainty", "typepotato… $ estimate <dbl> 1.19851228, -1.15513007, 0.70054547, 5.13321525, 2.032… $ std.error <dbl> 0.2579150, 0.1557200, 0.1557749, 0.1557200, 0.1557200,… $ statistic <dbl> 4.64692727, -7.41799461, 4.49716394, 32.96439433, 13.0… $ p.value <dbl> 3.495385e-06, 1.489614e-13, 7.113736e-06, 2.275767e-20… ``` --- # Model diagnostics: `augment` ```r ff_lm_all <- augment(ff_lm) glimpse(ff_lm_all) Observations: 3,471 Variables: 13 $ .rownames <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "1… $ rating <dbl> 2.9, 14.0, 11.0, 9.9, 1.2, 8.8, 9.0, 8.2, 7.0, 13.0, … $ type <chr> "potato", "potato", "potato", "potato", "potato", "po… $ treatment <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,… $ time <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,… $ subject <fct> 3, 3, 10, 10, 15, 15, 16, 16, 19, 19, 31, 31, 51, 51,… $ .fitted <dbl> 6.331728, 6.331728, 8.046235, 8.046235, 5.972622, 5.9… $ .se.fit <dbl> 0.2578966, 0.2578966, 0.2523712, 0.2523712, 0.2530101… $ .resid <dbl> -3.4317275, 7.6682725, 2.9537651, 1.8537651, -4.77262… $ .hat <dbl> 0.007910376, 0.007910376, 0.007575050, 0.007575050, 0… $ .sigma <dbl> 2.899486, 2.897111, 2.899641, 2.899907, 2.898931, 2.8… $ .cooksd <dbl> 4.169299e-04, 2.081769e-03, 2.955862e-04, 1.164238e-0… $ .std.resid <dbl> -1.1882021, 2.6550643, 1.0225395, 0.6417396, -1.65222… ``` --- # Residual plot ```r ggplot(ff_lm_all, aes(x=.fitted, y=.resid)) + geom_point() ```  --- # Adding random effects Add random intercepts for each subject ```r library(lme4) fries_lmer <- lmer(rating~type+treatment+time+subject + ( 1 | subject ), data = ff_long) ``` --- class: inverse middle # Your turn - Augment the ff_long data with the model diagnostics - Plot the residuals from the (a) fixed, (b) random effects - Plot fitted values against observed values --- # Resources - [RStudio cheatsheets](https://www.rstudio.com/resources/cheatsheets/) - [Wickham (2007) Reshaping data](https://www.jstatsoft.org/article/view/v021i12) - [broom vignettes, David Robinson](https://cran.r-project.org/web/packages/broom/vignettes/broom.html) --- # Share and share alike
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.


Today Kali 2020.1 has been released and with it lots of new visual changes for its desktop. The following is a brief feature summary for this release:
But here I'm not going to explain all the latest improvements that have been introduced in this version but to reveal all the different themes and visual modifications that come with it. By the way, an essential change that I do want to emphasize is the switch to a default non-root user, with the username "kali" and password "kali". For more of the reasons behind this switch, please see this blog post: kali.org/news/: Kali Default Non-Root User.
From the desktop perspective, this version principally focuses on the GNOME desktop, bringing with it new shell themes and icons, but there are also some updates for the Xfce desktop.
The terminal is a fundamental tool for advanced Linux users, thus Kali's team wanted to pay special attention to it. As you might know, Kali replaced the default Xfce's terminal with qterminal in the previous release, as it provides some extra functionality while still being lightweight enough. Some of these features are font-ligatures and terminal-splitting.
This 2020.1 update introduces changes in the GTK2 theme, which qterminal benefits from, making it even look identical to the original terminal in spite of using a different graphical library. The menus now look more modern, removing the letter underlining and the menu frame, and the texts on it are more legible using a brighter color.
Now speaking about terminal-only changes, the new color-palette provides more vivid colors for bold text, differentiated from the regular ones. Finally, to save some vertical space, the tab-bar now remains hidden in case there is only one tab.
As I mentioned before, this release focuses on the GNOME Shell desktop. With this in mind, both the light and the dark GTK3 themes have been improved for GNOME specific applications. Furthermore, the most significant change here is the introduction of the new kali specific Shell themes in dark and light variants, matching the previously introduced GTK themes.
All these changes, along with the added Kali specific app icons, and some other GNOME Shell tweaks makes this flavor of Kali look fully refreshed and has nothing to envy to other distributions more focused on design.
In order to support all the applications that kali users need, Flat-Remix icon theme has been extended, adding 85 new app icons and 16 specific kali category icons. In the picture above, you can see the Xfce Whiskermenu using the new category images, and, coming up next, you'll find a closer view of all the added icons:
Carrying on with Kali 2019.4 release, Kali-undercover has been updated and starts to feel even more like Windows to help blend in. The window headerbars have been improved, now showing the app's icon and title on the left side, and opening a terminal will show you an "undercovered" MS-DOS like prompt. The panel has also seen some improvements with new applications and widgets, such as the new search and workspaces icons, that make the theme even look identical to Windows. And they do work!! Pretty awesome, isn't it?
Last but not least, the graphical installer now comes with a new theme, using the same color palette as the desktop light themes and a redesigned banner image. While it still uses an old graphical library, this change makes the installer look more modern and visually pleasing, with just some minor changes.


Press 'o' to toggle the slide overview and 'f' for full-screen mode.
Choose the theme in which to view this presentation:
Black -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
Copyright © John Lindsay, 2015