Boston – One Year Later

April 14th, 2014 Comments off

Our ballpark tour quite literally started with a bang.

5 Ballparks. 5 Games. 5 Days. Monday to Friday while everyone else is at work.

What could be better?

On Patriot’s day there are a couple big things going on in Boston. First is the Boston Marathon, second is a traditional 11am start for the Red Sox, which was where we were headed. It was a going to be busy, so we stayed on the edge of the city not too far from the most westerly T station.

On April 15, 2013, we woke up in Auburn, MA and drove to the Riverside station. There was already a line at the station itself, so we parked down the road and walked back.

It was all smiles on the train.

It was also a cool day, being April and all, but it was a party everywhere.

It was a great ending to a great first game, the Red Sox beat the Rays 3-2 on a Mike Napoli double in the bottom of the ninth. It was party central.

After the game we headed towards the marathon, we were going to go see the finish line and grab some lunch.

This photo was taken on the last turn onto Boylston St for the runners, the home stretch. The EXIF data for that picture shows “April 15, 2013 at 2:39:33PM”. That’s almost exactly 10 minutes before the first bomb went off: 2:49:43 pm.

The last turn on the map:

As we walked down from where Hereford meets Boylston, we discussed whether or not to go to the finish line first, or go for clam chowder first. I had heard from my good friend that we should try the chowda at Legal Sea Foods. We actually said ‘The finish line will still be there when we’re done lunch,’ so we walked inside The Prudential Center and found the restaurant.

That cup of soup.

As we sat down to eat we felt something. The Prudential Center is a huge office tower, the blue arrow points to it in the map above. Tamra asked me what I thought it was. I thought maybe a truck backing into a loading ramp a little too hard. I’m always the optimist. People didn’t know what it was, but most shrugged it off. 14 seconds later came the second explosion. This one was closer. The floor shook. Fire alarms went off. We started to leave.

We ended up back on Boylston street and by the time we had made it outside (a minute, two maybe) it wasn’t complete pandemonium, but something wasn’t right. First responders were running down the road, east, yelling at everyone to go back the other way. There were some hysterical people walking around, others dazed.

Of course, I walked right up to the barrier and looked east to see what was going on. This was not a popular choice in my tour group.

We started to walk west, not knowing what had happened.

I did the best I could, called our parents, let our friends know we were OK, not that we knew what had happened yet.

We weren’t sure if we were going to continue with the trip, but as one of my high school buddies says, “We’ll go, we’ll see”, so we did. We told ourselves that if at any time we wanted to leave any place we were, either one of us could say so and we’d just go.

We made it to Yankee Stadium the next day.

where they played Sweet Caroline in tribute:

and then on to Baltimore (Boog’s!), Philly (cheese steaaaak), and back to New York to see the Mets (Shake Shack).

During the Mets game on Friday, people started to rumble in the upper decks. ‘They got the guy’. Soon enough, there was an announcement on the scoreboard, and chants of “USA USA USA” broke out.

(via http://sports.yahoo.com/blogs/big-league-stew/citi-field-breaks-u-chants-boston-marathon-bombing-033456885–mlb.html)

With so many deaths and injuries, given the fact that we were so close ,we are very lucky. It’s a year later and I still won’t forget the look on Tamra’s face or the feeling of her hand in mine as we walked west west west.

What we like to think back to, is not how horrible that day was, but the kindness we experienced.

The lady who picked us up saved us that day. We didn’t have the energy left to make it to the car. When we got home, we remembered that the lady had worked at Bloomingdale’s as a makeup artist, and was from Montreal, so I reached out to the store manager via email and told them our story.

The story eventually made it up the chain, and a Bloomingdale’s SVP emailed and said she shared the story with the CEO and President of the company. Later that month, the store manager emailed me and said they had tracked down our hero, Emilia, and presented her with an award and reward for helping out. She turned around, refused the reward, and requested it be donated to the One Fund Boston Charity, another example of the fine person she is.

Thank you Emilia, we’ll always remember your kindness that day.

We want to go back to Fenway again someday, back to Boston. We’d like some happier memories of the city, not by erasing the ones we have, but but by making new ones.

That, and finally get that cup of chowder from Legal Sea Foods.

Categories: General

Archiving An Old Web Site To A Subdomain with .htaccess and PHP

January 14th, 2014 Comments off

I was recently browsing a website that had been upgraded. For the sake of argument, let’s say the original site was hosted at:

http://www.awesomesite.com

The new site content was placed at the above address, and the previous content moved to:

http://www.old.awesomesite.com

The problem that is now faced is that there are many links out there to pages on www.awesomesite.com that no longer exist there, and do exist on www.old.awesomesite.com. The URLs need to be redirected, but not all of them, because the new content on www.awesomesite.com needs to be unaffected.

How can we fix this?

Well, most questions online about mod_rewrite and .htaccess files that deal with subdomains are looking to redirect a whole site, or 404 redirects to a static page, which isn’t what we want.

Here is one way to fix it.

1. .htaccess file to redirect to a PHP script
Add an .htaccess file in the root level directory of the webserver (or add this line to an existing one in the right place) with this content:

ErrorDocument 404 /404.php

This will run a PHP script called 404.php every time the web server is asked for a page it can’t find.

2. 404.php – look for the file somewhere else.
The next step is to run this script that will check to see what file you just tried to access at www.awesomesite.com (OK, now we’ll switch to www.kje.ca), and look for it at www.old.kje.ca. If it exists, you’ll get forwarded there without seeing anything. If it doesn’t exist, then you’ll be left a pleasant message.

<?php
$test = 'http://www.old.kje.ca' . $_SERVER['REQUEST_URI'];
$file_headers = @get_headers($test);
if($file_headers[0] != 'HTTP/1.1 200 OK') {
   $exists = false;
}
else {
   $exists = true;
   header("Location: $test");
}
?>

You were looking for <?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ?>

<p> Tried to load <?php echo $test ?> but we couldn't find that.

3. Try It Out

So now, a test.

The file one.html doesn’t exist on http://www.kje.ca, but does exist on http://www.old.kje.ca. But, if you click on either link:

http://www.kje.ca/one.html

http://www.old.kje.ca/one.html

You get to the same page at

http://www.old.kje.ca/one.html

Now, if you try the link below, that doesn’t exist on either site, you’ll get an error message:

http://www.kje.ca/banana.html

I hope this helps!

 

Categories: General

3DownNews Removed from the App Store

September 5th, 2012 Comments off

As of April 28, 2012 3DownNews has been removed from sale from the App Store. I’d like to thank everyone who has used it and if there are any problems then please let me know.

Categories: General

Montreal Exiles RFC – Website & Email

January 23rd, 2011 Comments off

Check out the new website for the newly formed Montreal Exiles RFC, www.montrealexiles.com , set up by yours truly for a great friend. Good luck with the club Alex! Hopefully this will help the Montreal Rugby community learn more about the Exiles!

Categories: General

3 Down News – Featured in TapLynx App Spotlight

July 7th, 2010 Comments off

3 Down News has been growing steadily in the number of users lately, and is now featured in the TapLynx App Spotlight!

Categories: General