Princess Half Marathon Weekend

Be a runDisney Princess!

Monthly Challenge

Virtual Coast 2 Coast Step Challenge!

Star Wars Weekends

A galactic experience for the whole family!

Fan Girl Favorites

Enjoying Star Wars, Sci Fi, Fantasy, Disney and all things Geeky!

Running With A View

Running, trails, biking, challenges, nutrition; it's all things I care about and love to do.

Monday, May 18, 2015

Go 1 More Mile Each Day!

The whole idea behind our step challenges is to increase our daily activity levels, provide accountability and gain motivation from friends.   I think most of us wait to get our steps in on the weekend because that's when races and events are held, and honestly, we just have more time!  But we really need to move more every day because every step counts toward a better life.  So, I came up with some sneaky ways to help get those extra steps in this week!

 My challenge this week is for you to "Go 1 More Mile Each Day!"

*You can start by getting a daily average from your fitness tracker and adding 2100 steps to that number

*Or just bump your daily goal up by 2100 steps!

*Get your whole family involved in your extra mile

*And of course, I'd love to see the zaniest way you got steps this week!  Post on Kessel Runner to share!

Friday, May 15, 2015

Tips for Starting a New Fitness Class!

Starting an exercise program or even beginning a new one can be intimidating!  You are going to a class where you may not know anyone and launching something that you may have never done before.    The good news is, you are not alone!   I recently went to a new fitness class at a new gym, and it took some guts just to walk in the door!  So, I put together some tips that helped me and will help you as you explore a new fitness class!

Thinking about starting a new class?  or recently started out on a new fitness adventure?  I'd love to hear all about it!

Thursday, May 14, 2015

Catalog of Star Wars Weekends Event Information

This Page is your one stop spot for all the information you need on Star Wars Weekends 2015!  


Download Maps:
SWW2015 Weekend1 Side1
SWW2015 Weekend1 Side2

Star Wars Weekends Host:  James Arnold Taylor 

Celebrity Guests 
Celebrity Guests and Autograph sessions will be at the ABC Sound Studios.  Autograph sessions require a FastPass which can be obtained outside the gate to the right.   Autograph FastPass distribution lines will start as early as 5am depending on the guest.  

Jedi Training Academy
Do you Have What It Takes to become a Jedi? Have your padawan find out in this year's Jedi Training Academy!
Sign Up Location:  ABC Sound Studios
Times:  Subject to Change: Grab a Times Guide at the Gate
Force Watch:  First Come First Served!   Head straight to the signup location when you enter the park.  Ages 4 - 12 only and your child must be with you!

Padawan Mind Challenge
Younglings and their families use their knowledge of the Force to score for the Rebellion in Trivia!   
Sign Up Location:  Epic Stunt Theater
Times:  Subject to Change: Grab a Times Guide at the Gate 
 Force Watch:  First Come First Served!  Sign up for this event after Jedi Training Academy.  Ages 4-11 only and your child must be with you!

Character Encounters
Bring your autograph book and camera and interact with your favorite character!
You will find the Good Guys in numerous locations around the Star Tours Attractions and the Bad Guys in numerous locations in the Back Lot area.   

Legends of the Force Motorcade 
Cheer the Star Wars Stars as the 501st leads the motorcade to the Star Wars Weekends Even stage.  The parade will begin at the front of the park and travels to the Star Wars Weekends Event Stage.  The premium viewing area will be located at Echo Lake and will have beverages and snacks.
Force Watch: The premium viewing requires advanced purchase and is standing room only; you must pick up your wristband at 10:00 AM at Guest Services.  If you didn't purchase premium viewing, you will need to be along the parade route at 10:30.

Darth's Mall
Find exclusive merchandise, including limited edition Star Wars 2015 items only at Darth's Mall!  Be sure catch special appearance by Ashely Eckstein signing her merchandise.
Location:  New Location at the End of Streets of America
Force Watch:  Try out the new Jaba Cupcake and pickup your Star Wars Weekends Autograph Book!

Symphony in the Stars Fireworks Show
The  Symphony in the Stars fireworks dessert party starts at 9:00 PM with the fireworks starting at 9:30PM.  The premium viewing area will be located near the Stage.  DJ Lobot will be at the stage providing entertainment starting at 7:00PM.
Force Watch:  If you didn't reserve a premium package, reserve your spot early and listen to DJ Lobot!  Bring a towel to sit on, the concrete will be hot.

Interact with Your Weekend
Forget Hidden Mickeys, find your Hidden Star Wars Aura! Disney and the Aurasma App have come together for an interactive experience that all of us geeks and nerds will love!  Throughout the park, look for the Aurasma logo, aim your phone, and enjoy!

Force Watch:  Find out more on teching-up your experience and where to get the Aurasma App by reading how to Become Interactive with Star Wars Weekends 

Updates Will Be Made As Soon As New Information is Available!

Have an item I need to add to the list?  Leave a comment or email me at

Interact at Star Wars Weekends with Aurasma!

Disney has joined with HP and Aurasma again this year to provide an interactive experience throughout Hollywood Studios during Star Wars Weekends!  See what's in store for you ....

 Throughout Hollywood Studios, look for this logo...

Just click on the App, aim your phone, and see what happens!

Find out more and how to down load..


Get into the action and Bring Star Wars Weekends to life!

Be sure to start with your map of Hollywood Studios, Star Wars Weekends edition! 

For more Disney parks technology information, contact me at

Thursday, May 7, 2015

Staying Charged to Infinity and Beyond!

We all have gadgets that we take to Walt Disney World like our smartphones, tablets, video cameras, game stations, and fitness trackers!   Our smartphones alone consume a lot of juice during the day with location services, My Disney Experience, pictures and videos.  There is nothing worse than having a low battery when need to capture that special moment!  

With a family full of electronic consumers, I have a plan for staying charged while on any vacation!

1.  Bring an Extension Cord / Surge Protector
Have you noticed that the wall outlets are all over your resort room?  And there never seems to be enough!  My solution?  Bring a surge protector with you.  It not only provides a power base in one spot for your family but also a surge protection station for your important equipment.  I carry a small one when I travel alone, and a larger one for family adventures.

Monday, May 4, 2015

Say It Isn't So - Solo!

A sneak peak into the Marvel World of Star Wars #4 was released today, and it was shocking!

 ** warning spoiler alert ahead**

If this glimpse is true, then I am very upset with the new "canon".  Star Wars was a classic love story, just told in a galaxy far, far away.  To put Han as married and cheating on his wife, just degrades the whole saga.  But this blurb could be just intentional misrepresentation, and did what is supposed to:  create headlines and cause everyone to go buy the comic.

I'm betting that these two clips were taken out of context, and that Disney/Marvel wouldn't destroy a timeless tale.

I'd love to hear what you think!

Friday, May 1, 2015

June Challenge - Pump It Up Total Toning Challenge

The Month of June starts the Pump It Up Total Toning challenge! 

Each week in June we will be doing an exercise that can be a jump-start for your body.  Summer is tough for outside activity, but we can do all of these exercises inside and gain muscle and tone at the same time!

Here's what we are going to be doing each week:

Week 1:  350 Jumping Jacks
Week 2:  100 Push Ups
Week 3:  100 Crunches/Sit Ups
Week 4:  350 Squats

-You have one week to complete each challenge:  Monday through Sunday
-These are in addition to your normal workout schedule.
-If you are advanced, then add weights and/or double the number

Steps to being successful:
- split up the activity so that you are doing some in the morning and some at night
- be realistic, but it's best to do some every day so that you won't feel overwhelmed on the weekend. (especially if you want to take Sunday off)
- keep a record to be accountable

By the end of the month, you will have worked your whole body and burned calories you hadn't planned on!

I"m ready to Pump It Up!  How about you?

10 Must Dos for Star Wars Weekends

Updated May 1, 2015

The Force will be with you for 5 Weekends from May 15th through June 14th!  Every Friday, Saturday and Sunday of Star Wars Weekends you will can relive your Star Wars memories with your family or make new ones to cherish for a lifetime!

This year is jam packed with galactic fun and excitement and here's what to plan for...

1. Character Interactions
From the original Saga to The Clone Wars to the new Rebels you will find your favorite characters roaming around Disney's Hollywood Studios!  And don't be shy; ask to get your picture taken with your favorites!  There will also be designated spots for pictures with Minnie, Mickey, Donald and Goofy in their Star Wars Spirit, and popular characters such as Captain Rex, Boba Fett, Chewie, Darth Vader and Queen Amidala!

Tips from the Force:  Be sure and bring some trinkets to trade with the Jawas, don't show your

Rotating Images

<script type="text/javascript" src=""></script>
<style type="text/css">
/*Make sure your page contains a valid doctype at the top*/
#simplegallery1{ //CSS for Simple Gallery Example 1
position: relative; /*keep this intact*/
visibility: hidden; /*keep this intact*/
border: 1px solid #666;
#simplegallery1 .gallerydesctext{ //CSS for description DIV of Example 1 (if defined)
text-align: left;
padding: 2px 5px;
font: 10px normal verdana, arial;
<script type="text/javascript" >
var simpleGallery_navpanel={
    loadinggif: '', //full path or URL to loading gif image
    panel: {height:'45px', opacity:0.5, paddingTop:'5px', fontStyle:'bold 11px Verdana'}, //customize nav panel container
    images: [ '', '', '', ''], //nav panel images (in that order)
    imageSpacing: {offsetTop:[-4, 0, -4], spacing:10}, //top offset of left, play, and right images, PLUS spacing between the 3 images
    slideduration: 500 //duration of slide up animation to reveal panel
function simpleGallery(settingarg){
    var setting=this.setting
    setting.panelheight=(parseInt(setting.navpanelheight)>5)? parseInt(setting.navpanelheight) : parseInt(simpleGallery_navpanel.panel.height)
    setting.curimage=(setting.persist)? simpleGallery.routines.getCookie("gallery-"+setting.wrapperid) : 0
    setting.curimage=setting.curimage || 0 //account for curimage being null if cookie is empty
    setting.preloadfirst=(!jQuery.Deferred)? false : (typeof setting.preloadfirst!="undefined")? setting.preloadfirst : true //Boolean on whether to preload all images before showing gallery
    setting.ispaused=!setting.autoplay[0] //ispaused reflects current state of gallery, autoplay[0] indicates whether gallery is set to auto play
    setting.currentstep=0 //keep track of # of slides slideshow has gone through
    setting.totalsteps=setting.imagearray.length*setting.autoplay[2] //Total steps limit: # of images x # of user specified cycles
    setting.fglayer=0, setting.bglayer=1 //index of active and background layer (switches after each change of slide)
    setting.oninit=setting.oninit || function(){}
    setting.onslide=setting.onslide || function(){}
    var preloadimages=[], longestdesc=null, loadedimages=0
    var dfd = (setting.preloadfirst)? jQuery.Deferred() : {resolve:function(){}, done:function(f){f()}} //create real deferred object unless preloadfirst setting is false or browser doesn't support it
    setting.longestdesc="" //get longest description of all slides. If no desciptions defined, variable contains ""
    setting.$loadinggif=(function(){ //preload and ref ajax loading gif
        var loadgif=new Image()
        return jQuery(loadgif).css({verticalAlign:'middle'}).wrap('<div style="position:absolute;text-align:center;width:100%;height:100%" />').parent()
    for (var i=0; i<setting.imagearray.length; i++){  //preload slideshow images
        preloadimages[i]=new Image()
        if (setting.imagearray[i][3] && setting.imagearray[i][3].length>setting.longestdesc.length)
        jQuery(preloadimages[i]).bind('load error', function(){
            if (loadedimages==setting.imagearray.length){
                dfd.resolve() //indicate all images have been loaded
    var slideshow=this
        var setting=slideshow.setting
        setting.$wrapperdiv=$('#'+setting.wrapperid).css({position:'relative', visibility:'visible', background:'black', overflow:'hidden', width:setting.dimensions[0], height:setting.dimensions[1]}).empty() //main gallery DIV
        if (setting.$wrapperdiv.length==0){ //if no wrapper DIV found
            alert("Error: DIV with ID \""+setting.wrapperid+"\" not found on page.")
        setting.$gallerylayers=$('<div class="gallerylayer"></div><div class="gallerylayer"></div>') //two stacked DIVs to display the actual slide
            .css({position:'absolute', left:0, top:0})
        setting.$loadinggif.css({top:setting.dimensions[1]/2-30}).appendTo(setting.$wrapperdiv) //30 is assumed height of ajax loading gif
        setting.gallerylayers=setting.$gallerylayers.get() //cache stacked DIVs as DOM objects
        setting.navbuttons=simpleGallery.routines.addnavpanel(setting) //get 4 nav buttons DIVs as DOM objects
        if (setting.longestdesc!="") //if at least one slide contains a description (feature is enabled)
            .bind('mouseover mouseout', function(e){
                $(this).css({opacity:(e.type=="mouseover")? 1 : 0.8})
            .bind('click', function(e){
                slideshow.navigate(keyword) //assign behavior to nav images
        dfd.done(function(){ //execute when all images have loaded
            setting.$wrapperdiv.bind('mouseenter', function(){slideshow.showhidenavpanel('show')})
            setting.$wrapperdiv.bind('mouseleave', function(){slideshow.showhidenavpanel('hide')})
            slideshow.showslide(setting.curimage) //show initial slide
   //trigger oninit() event
            $(window).bind('unload', function(){ //clean up and persist
                if (slideshow.setting.persist) //remember last shown image's index
                    simpleGallery.routines.setCookie("gallery-"+setting.wrapperid, setting.curimage)
                jQuery.each(slideshow.setting, function(k){
                    if (slideshow.setting[k] instanceof Array){
                        for (var i=0; i<slideshow.setting[k].length; i++){
                            if (slideshow.setting[k][i].tagName=="DIV") //catches 2 gallerylayer divs, gallerystatus div
                    if (slideshow.setting[k].innerHTML) //catch gallerydesctext div
        }) //end deferred code
    }) //end jQuery domload
        this.setting.totalsteps=100000 //if any of the nav buttons are clicked on, set totalsteps limit to an "unreachable" number
        if (!isNaN(parseInt(keyword))){
        else if (/(prev)|(next)/i.test(keyword)){
        else{ //if play|pause button
            var slideshow=this
            var $playbutton=$(this.setting.navbuttons).eq(1)
            if (!this.setting.ispaused){ //if pause Gallery
                $playbutton.attr({title:'Play', src:simpleGallery_navpanel.images[1]})
            else if (this.setting.ispaused){ //if play Gallery
                this.setting.playtimer=setTimeout(function(){slideshow.showslide('next')}, this.setting.autoplay[1])
                $playbutton.attr({title:'Pause', src:simpleGallery_navpanel.images[3]})
        var slideshow=this
        var setting=slideshow.setting
        var totalimages=setting.imagearray.length
        var imgindex=(keyword=="next")? (setting.curimage<totalimages-1? setting.curimage+1 : 0)
            : (keyword=="prev")? (setting.curimage>0? setting.curimage-1 : totalimages-1)
            : Math.min(keyword, totalimages-1)
        setting.$gallerylayers.eq(setting.bglayer).css({zIndex:1000, opacity:0}) //background layer becomes foreground
            .stop().css({opacity:0}).animate({opacity:1}, setting.fadeduration, function(){ //Callback function after fade animation is complete:
                setting.gallerylayers[setting.bglayer].innerHTML=null  //empty bglayer (previously fglayer before setting.fglayer=setting.bglayer was set below)
          , setting.gallerylayers[setting.fglayer], setting.curimage)
                    alert("Simple Controls Gallery: An error has occured somwhere in your code attached to the \"onslide\" event: "+e)
                if (setting.autoplay[0]){
                    if (setting.currentstep<=setting.totalsteps)
                        setting.playtimer=setTimeout(function(){slideshow.showslide('next')}, setting.autoplay[1])
            }) //end callback function
        setting.gallerylayers[setting.fglayer].style.zIndex=999 //foreground layer becomes background
        setting.bglayer=(setting.bglayer==0)? 1 : 0
        setting.navbuttons[3].innerHTML=(setting.curimage+1) + '/' + setting.imagearray.length
        if (setting.imagearray[imgindex][3]){ //if this slide contains a description
        else if (setting.longestdesc!=""){ //if at least one slide contains a description (feature is enabled)
        var setting=this.setting
        var endpoint=(state=="show")? setting.dimensions[1]-setting.panelheight : this.setting.dimensions[1]
        setting.$navpanel.stop().animate({top:endpoint}, simpleGallery_navpanel.slideduration)
        if (setting.longestdesc!="") //if at least one slide contains a description (feature is enabled)
        var setting=this.setting
        var endpoint=(state=="show")? 0 : -setting.descpanelheight
        setting.$descpanel.stop().animate({top:endpoint}, simpleGallery_navpanel.slideduration)
        var layerHTML=(imgelement[1])? '<a href="'+imgelement[1]+'" target="'+imgelement[2]+'">\n' : '' //hyperlink slide?
        layerHTML+='<img src="'+imgelement[0]+'" style="border-width:0" />'
        layerHTML+=(imgelement[1])? '</a>' : ''
        return layerHTML //return HTML for this layer
        var interfaceHTML=''
        for (var i=0; i<3; i++){
            var imgstyle='position:relative; border:0; cursor:hand; cursor:pointer; top:'+simpleGallery_navpanel.imageSpacing.offsetTop[i]+'px; margin-right:'+(i!=2? simpleGallery_navpanel.imageSpacing.spacing+'px' : 0)
            var title=(i==0? 'Prev' : (i==1)? (setting.ispaused? 'Play' : 'Pause') : 'Next')
            var imagesrc=(i==1)? simpleGallery_navpanel.images[(setting.ispaused)? 1 : 3] : simpleGallery_navpanel.images[i]
            interfaceHTML+='<img class="navimages" title="' + title + '" src="'+ imagesrc +'" style="'+imgstyle+'" /> '
        interfaceHTML+='<div class="gallerystatus" style="margin-top:1px">' + (setting.curimage+1) + '/' + setting.imagearray.length + '</div>'
        setting.$navpanel=$('<div class="navpanellayer"></div>')
            .css({position:'absolute', width:'100%', height:setting.panelheight, left:0, top:setting.dimensions[1], font:simpleGallery_navpanel.panel.fontStyle, zIndex:'1001'})
        $('<div class="navpanelbg"></div><div class="navpanelfg"></div>') //create inner nav panel DIVs
            .css({position:'absolute', left:0, top:0, width:'100%', height:'100%'})
            .eq(0).css({background:'black', opacity:simpleGallery_navpanel.panel.opacity}).end() //"navpanelbg" div
            .eq(1).css({paddingTop:simpleGallery_navpanel.panel.paddingTop, textAlign:'center', color:'white'}).html(interfaceHTML).end() //"navpanelfg" div
        return setting.$navpanel.find('img.navimages, div.gallerystatus').get() //return 4 nav related images and DIVs as DOM objects
        setting.$descpanel=$('<div class="gallerydesc"><div class="gallerydescbg"></div><div class="gallerydescfg"><div class="gallerydesctext"></div></div></div>')
            .css({position:'absolute', width:'100%', left:0, top:-1000, zIndex:'1001'})
            .find('div').css({position:'absolute', left:0, top:0, width:'100%'})
            .eq(0).css({background:'black', opacity:simpleGallery_navpanel.panel.opacity}).end() //"gallerydescbg" div
            .eq(1).css({color:'white'}).end() //"gallerydescfg" div
        var $gallerydesctext=setting.$descpanel.find('div.gallerydesctext')
        setting.$descpanel.css({top:-setting.descpanelheight, height:setting.descpanelheight}).find('div').css({height:'100%'})
        return setting.$descpanel.find('div.gallerydesctext').get(0) //return gallery description DIV as a DOM object
        var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
        if (document.cookie.match(re)) //if cookie found
            return document.cookie.match(re)[0].split("=")[1] //return its value
        return null
    setCookie:function(name, value){
        document.cookie = name+"=" + value + ";path=/"
<script type="text/javascript">
var mygallery=new simpleGallery({
    wrapperid: "simplegallery1", //ID of main gallery container,
    dimensions: [300, 200], //width/height of gallery in pixels. Should reflect dimensions of the images exactly
    imagearray: [
        ["", "","new","Give Dad his day in the shade!"],
        ["", "", "_new", "Help Dad express his inner hero"],

        ["","", "_new", "Make Dad's office unique!"],

        ["", "", "_new", "Help Dad keep track of work, play, sleep!"],

        ["", "", "_new", "Handprint or sign a book you can read together!"]     ],
    autoplay: [true, 2000, 20], //[auto_play_boolean, delay_btw_slide_millisec, cycles_before_stopping_int]
    persist: false, //remember last viewed slide and recall within same session?
    fadeduration: 500, //transition duration (milliseconds)
    oninit:function(){ //event that fires when gallery has initialized/ ready to run
        //Keyword "this": references current gallery instance (ie: try this.navigate("play/pause"))
    onslide:function(curslide, i){ //event that fires after each slide is shown
        //Keyword "this": references current gallery instance
        //curslide: returns DOM reference to current slide's DIV (ie: try alert(curslide.innerHTML)
        //i: integer reflecting current image within collection being shown (0=1st image, 1=2nd etc)
<div id="simplegallery1"></div>

Running For Charity

The runDiney race you are looking for is Sold Out!
  •  Half Marathon - SOLD OUT
  •  Challenge - SOLD OUT
  • 10K - SOLD OUT
  •  5K - SOLD OUT
What do you do?  If you didn't get in, there is Hope!  Sign up for a charity and make your run count!

I have had the privilege to run for runDisney charities 3 times! I ran the Walt Disney World Marathon Weekend for the A-T Children's Project two different years, and Run for Our Sons for the Inaugural Star Wars Weekend.  These opportunities were very rewarding experiences because I had the chance to be involved in a community that makes a difference, to meet the families I was running for, and to participate in a much deeper way than just running for myself.

Charities require from $500 to $1500 in fundraising obligations depending on the charity and the race.  However, I was able to raise all the money through donations, yard sales and promotions.  You receive bonuses such as park tickets, pasta parties, tshirts and more from meeting your fundraising goals!

Each runDisney race is unique and provides numerous charity options to choose from and you should be able to find something that you can pour your heart into.

So, if you missed out on registration, the Course is Still With You!  Choose a charity, become involved and improve your health and the health of others!