"Judge not lest ye be judged yourself." -Metallica/Holier Than Thou

If there’s one thing to know about Susan it’s that when she decides to do something, she does it. Whether it’s going back to college or learning photography or tackling a project at work, whatever she chooses to do, she does.

Last month Susan set a goal of raising $1,500 in donations for the Girl Scouts. The money went toward purchasing a tornado shelter for one of the local Girl Scout Camps. Earlier this month Susan organized a garage sale and between that and some donations from friends and family, she met her goal.

Everyone who met this goal was offered the opportunity to rappel down One Leadership Square in Oklahoma City this past weekend. Standing 22 stories and 308 feet tall, One Leadership Square is the 10th tallest building in Oklahoma.

Last Saturday, my wife went over the side of it while hanging from a rope. Twice.

Susan also volunteered to help out with the ropes, so she got a test run of the system Friday night. She said the system they used was unlike the ones she used back in college and had a ton of added safety features, including an automatic braking system.

Saturday was the “public” rappelling, and both my family and some of Susan’s family came out to watch. Her time slot was 12:30pm so the sun was directly overhead and it was nice and hot by the time she got to drop down, but drop down she did.

After talking with her for a few minutes on the ground it was back to the roof for Susan where she finished volunteering for the rest of the day. The kids, Dad and I hit one of our favorite hot dog spots, Coney Island, before heading back home.

Congrats to Susan on meeting her fundraising goal and for dropping off a perfectly good building!

Similar Posts:

Last Friday I turned 41 years old. In some ways 41 is more depressing than 40. Mentally, 40 was a tough age; 41 only serves to remind you that 40 actually happened and that time is still moving forward. Happy birthday.

This year’s birthday festivities were broken up into lots of little slices. Thursday (the day before my birthday) I had dinner at Kyle’s Steakhouse with a few of my co-workers. I had the salmon and while it wasn’t as good as it used to be, it was still good. Susan informed the restaurant that it was my birthday and asked them to create a sugar-free dessert. The end result was a “peanut butter cheesecake” that tasted like I was eating peanut butter out of a jar. As far as cheesecake goes it was pretty terrible but as far as peanut butter from a jar goes, it was pretty good!

I took Friday (my birthday) off from work and Friday morning Susan brought me coffee and a cheese omelette in bed. We had lunch with my dad at Cimarron Steakhouse and I had a big ‘ol medium-rare T-bone along with some fried mushrooms and a loaded baked potato. I couldn’t finish it all but everything I was able to shovel into my yap was delicious! Friday night, Susan had a reception to attend and so we had hors d’oeuvres which lasted until we got an Arby’s hot ham and cheese melt on the way home. We ended Friday with cake and ice cream with our families. The highlight of Friday night was I decided to show the drone off to my nephews. Somehow the wireless controls didn’t connect properly and so when I launched it the thing shot off two or three yards away before I could force an emergency landing. Oops.

Saturday was Susan’s special day as she got to rappel off of Leadership Square as a reward for raising $1,500 for the Girl Scouts. I’ll write more about that later this week, but it was really cool. After that, Susan, the kids and I met up at our friend Howard’s house for his birthday (which is only a few days after mine). The kids had a great time swimming in Howard’s new pool and we had a good time hanging out for a bit.

We ended my birthday weekend with a trip to S&B Burgers. I got my favorite, a medium-rare Bleu Burger wrapped in bacon with deep fried cheese cubes and a “Dude Abides” (White Russian) to wash it down. The diet resumes tomorrow.

A great weekend with great friends and family and great memories.

Similar Posts:

Every year on August 19th I sit down at the computer and try to come up with something interesting to say about my wedding anniversary. This morning while trying to come up with something to write about I opened up the folder on my computer where all our wedding pictures are stored and realized that we have a total of 39 photos from that day. No negatives, just 39 4×6″ prints. Based on that number I’m guessing two 24-shot rolls of film were shot and a few of them were duplicates or didn’t turn out.

Of those 39 photos, more than half of them are the traditional staged post-ceremony pictures. There are pictures of me with other members of the wedding party, Susan with other members of the wedding party, and the two of us together with other members of the wedding party. Of the remaining pictures, two are of random people, two are of the wedding cakes, two or three are of the two of us eating cake, one is of the groomsmen with their tuxedos off and one is of Susan’s car covered in shoe polish and toilet paper out in the parking lot.

Susan and our niece Jessica

As far as I know there are no photos of the actual ceremony and no pictures of either reception (the one at the church and the one that night at the Round Up Club). My, how times have changed. Last month, Susan and I played photographer at our friend Jennifer Martin’s wedding. Between the two of us, in a span of a couple of hours we shot around 1,400 pictures and were able to deliver them to the family on DVD the following day. Of course we weren’t the only people shooting pictures at Jennifer’s wedding. A few other people were snapping photos with DSLR cameras, and everyone else was taking pictures with cell phones. I am sure Jennifer ended up with literally thousands of pictures from her wedding day.

Back to 1995. We do have a wedding video that Susan’s Uncle Ronnie shot for us. It captures a bit of the action before the wedding, the entire ceremony, some of the church reception, and ends as Susan and I drive off in her car. While the VHS video shot in 1995 looks a lot like a VHS video shot in 1995, we are very grateful to have it.

Every now and then a detail from that day will pop into my head. I had a few novelty t-shirts around that time and wore one — a white t-shirt with a picture of a can of Spam on the front — to the after hours reception. It had no significance in regards to the wedding itself; I just thought it was a funny shirt. The last time I was in Vegas I ate at a restaurant that had Spam on the menu and that shirt instantly popped in my mind. I have lots of memories from that day that I’m afraid of losing because I don’t have any record of them.

Here is a link to those 39 pictures, roughly two pictures for every year we’ve been married. That’s crazy.

Happy 19th Anniversary, Susan.

Link: 39 Wedding Pictures

Similar Posts:

For my 41st birthday, I asked for (and received) a Parrot AR Drone 2.0. Yes, my birthday isn’t until the end of next week. Now that I’m over 40, I can open presents early if I want.

Starting at $300, the Parrot AR Drone 2.0 (“Parrot 2″ hereon) is an intermediate level drone. There are several smaller toy drones in the sub-$100 range, and lots of “toys for big boys” drones in the $1,000+ range. The only comparable to the Parrot 2 is DJI’s Phantom, which runs $499 without a camera and $799 with a camera. $300 seemed more sensible for a first-time drone owner, so I went with the Parrot 2.

For roughly $50 more you can get the Power Edition — same drone, but with two larger batteries and three extra sets of propellers. I went with that one.

Here’s everything that came in the Power Edition package: the drone, an indoor hull, an outdoor hull, two lithium 1500 mAh batteries, a battery charger, some stickers, three additional sets of propellers (in orange, blue and red) and a manual with printing so small I couldn’t even tell if it was in English or not. (The manuals are online in PDF format here.)

Additionally, the Parrot 2 comes with two cameras (an HD 720p front-facing camera) and an SD down-facing camera) and a USB port. You can plug in a USB stick to record videos and pictures from your flights, or purchase additional USB add-ons like the GPS/black box.

Here is the drone with no hull attached.

If you fly it like this, it will be broken in about 4 seconds. Here it is with the outdoor hull:

…and here it is with the indoor hull:

So far I have only flown the Parrot 2 with the indoor hull attached, and I’ll tell you why. First of all, without it, I would have broken many things in our house. Second of all, the majority of all my videos end with me smashing the Parrot 2 into something and having it land belly-side-up somewhere. The indoor hull has definitely saved my propellers from slicing against tree limbs, blinds, the ceiling fan, my face, two different flat screen televisions and the cat at least once.

Unfortunately, the indoor hull is not designed to take a beating, at least not a beating of the level I’ve been dishing them out. My second crash resulted in a clean break of the styrofoam hull. I could not find any black electrical tape so I had to resort to repairing the hull with some white duct tape. An hour after owning the drone, my hull looked like this:

I have since removed all the white tape and replaced it with black electrical tape. Without tape, this hull would be in 5 separate pieces now. I’m afraid to fly this thing without one on. All things said, I have had some spectacular crashes (many from running into the ceiling fan (not running) 15′ in the air) and watching the Parrot 2 drop like a rock to the carpeted floor below. So far nothing has broken but I’ve only had it two days and I’ve been under the weather so I haven’t really put the thing to the test yet.

The Parrot 2 does not come with a remote — instead, you download a free app onto your iOS or Android device and that becomes your remote. Once powered up, the Parrot 2 actually becomes a wifi hotspot, so to start flying all you have to do is connect your device to the drone’s hotspot, launch the control app and you’re good to go.

Most of my early flights took place in the house. The learning curve comes from (a) learning how to control the Parrot 2 with the app, and (b) keeping yourself oriented as to which way the drone is facing. Using the app, your right thumb controls moving up/down and turning left/right, while your left thumb controls moving forward/backward and tilting left/right. It’s very easy for your thumbs to drift from the control circles, resulting in having to take your eyes off the drone and looking down at your phone or tablet instead.

There are lots of buttons on the app, ones for recording video, taking pictures, changing the drone’s options, and so on. There are a couple of ways to land the drone: one is by pressing that green “LANDING” square in the picture above. That cuts the power to 50% and the drone will try and land wherever it is. There’s also the red “EMERGENCY” button at the top of the screen that simply cuts power to the Parrot 2, at which point it will drop out of the sky like a brick. Yesterday I could not imagine a reason to hit that button but after having the Parrot 2 almost blown out into traffic by a wind gust, I can see where it might come in handy.

It’s also occasionally difficult to figure out which was is forward (especially with the indoor hull on installed) which is why I glued a pair of googly eyes to the front of mine.

Because the Parrot 2 is so light it is very susceptible to wind gusts. Last night after the wind calmed down I took the Parrot 2 outside and was able to capture the following picture of my house:

Five seconds later a wind gust blew the drone over my house and over my neighbor’s house, almost causing it to smash into their roof.

Here are a couple of videos I shot earlier using the Parrot 2. It never dawned on me that the Parrot 2’s camera would not record sound (only video) so I added some generic 8-bit music to it just because it felt very stark. I plan on attaching my Flip camera to it later tonight or tomorrow (if I’m not feeling better) and see if I can’t record two angles (along with some sound).

Almost immediately I need to order another battery and another indoor hull for my Parrot 2 (maybe with birthday money). I’d like to try flying the thing a little higher outside but I’ll have to wait until the wind dies down (and I get a little braver) before I do that.

EDIT: I forgot to mention how long the thing can fly. On a normal 1000 mHa battery, the Parrot 2 can fly for 8-12 minutes. With the 1500 mHa batteries I bought, you can fly for 12-18 minutes (each). The batteries take 90 minutes to fully charge. Also, the drone is able to fly high — really high. Even though the app supposedly limits the drone to 100m (roughly 330 feet) there are several videos on Youtube of people flying the Parrot 2 1,000 feet or higher (but not in Oklahoma wind…)

Similar Posts:

If you had asked me last week, the only two reasons I could come up with for having a garage sale would be to get rid of some extra clutter and make a few extra bucks in the process. I had completely forgot about doing one as a fundraiser, which is what Susan (and by proxy, the rest of us) did last weekend.

One of the Girl Scout camps that Morgan goes to (and Susan went to — Camp Ekowah) does not have a tornado shelter. Several Girl Scouts banded together to raise the money needed to add a large safe room to the camp. The estimate was hundreds of thousands of dollars, so to cover the cost each Girl Scout pledged to raise (at least) $1,000 each.

Even before the garage sale, several of our friends and family donated toward the cause. That got Susan close to her goal, but not quite all the way there. To raise even more money, Susan decided to have a fundraising garage sale. Lots and lots of our friends donated items to Susan’s sale, which we were very grateful for. Susan took Friday off work and spent the day (along with a couple of her friends) sorting, organizing, and pricing the items. Friday afternoon, our driveway looked like this:


Saturday morning rolled around. I woke up at 5:45am to find Susan had already left the house and returned with coffee and doughnuts. After my sleepy butt was less sleepy I joined her outside to help move some more items from inside the garage to the driveway itself.

In the Craigslist Ad Susan mentioned “no early birds”. For the record, that means nothing to most garage sale shoppers. The sale was set to begin at 7am and by then we had already seen two or three shoppers. No early birds indeed.

As mostly a bystander, I found it interesting to to divide our customers into different categories. There were of course the traditional, almost stereotypical garage sale visitors — middle-to-older-age women who would walk slowly through the sale, picking up multiple items and checking them out. Then there were the obvious resellers. All of them drove pickups, some of them pulling trailers and almost all of them leaving their trucks running as they walked up, quickly surveyed the sale, and then split. Then there were what I called the hopefuls, who asked about things obviously not at the sale. “Got any tools back there? How about fishing poles?”

Of all the garage sales we’ve had, despite the Craigslist ads, Facebook posts and signs at both ends of the neighborhood, this one had the least amount of traffic. A few people suggested we should have put other signs further away pointing people toward the sale. We sold a lot of things but by lunch time it became very clear that we weren’t going to sell everything. Not even close. We did have several friends and family members stop by which was fun and made the time go by faster.

Susan had planned on running the sale until 3pm, but by 1:30pm it was evident the customers were drying up and so we called it at 2pm. With Susan exhausted from running the sale all day, Mason and I jumped in and began loading the leftovers into my truck. Even with filling the bed and the backseats of the truck, it took three trips to haul all the leftovers up to Goodwill.

After the sale was done, Susan counted all the money and ended up with $555. That puts her well over her $1,000 goal — by doing that, she gets the opportunity to rappel off of the top of the 244-foot-tall Leadership Square building downtown, and she’s pretty close to her ultimate goal of $1,500, which gets her Go Pro video of the event and a few other extras. Of course, the real reward will be putting in the tornado shelter for the Girl Scouts.

For me, the real reward was this baggie of Smurfs, which I found at the garage sale for 50 cents.

Similar Posts:

I spent the week before last in Washington DC for work. I “kind of” flew home on Thursday, attended a wedding on Friday, packed over the weekend and drove to Chicago, where I spent last week. It’s been a long two weeks.

The trip to DC began with a flight (yes, flight) to DC through Dallas. While trying to make my connecting flight in Dallas I got turned around and ended up in baggage claim, which forced me to go back through the TSA line a second time. The second time I had already filled my water bottle (and forgot about it), which led to a 15-20 minute diversion as I had my bag removed and searched and received the coveted “invasive pat down” from a genial fellow named Raul who, for all intents and purposes, is now my boyfriend.

I spent three days in DC. The first day was spent at an awards ceremony where my team was presented with an award by the FAA Administrator for our work on the e-mail migration project I’ve been working on for the past two years. The next two days were spent in a “lessons learned” meeting, where everyone shared what went wrong and what went right with the project in hopes of helping future projects.

My flight home on Thursday was scheduled (I thought) to leave Baltimore at 6am. To make sure I didn’t miss the flight, Super Shuttle picked me up in front of my hotel at 2:45am, and dropped me off in front of BWI at 3:45am. When I checked in at the gate around 4am I learned that my flight wasn’t scheduled to leave until 8:40am. I found a place to sit and killed 4 hours waiting to board. After the plane was boarded, the pilot announced that due to storms in the Dallas/Ft. Worth area, “we might be leaving in two hours, or not at all.” At that point we all exited the plane and awaited further updates. Around 10:30am we reboarded the plane and made it to DFW, only to find that all flights heading north from there (including Oklahoma) were either full or had been cancelled. Based on that knowledge I rented a car (it’s only a 3 1/2 hours drive from DFW to OKC), only to learn that I-35 (the interstate that connects those two cities) had received up to 14″ of rain in some areas and was closed. I upgraded my rental car to something big enough to sleep in and began working my way home. A couple of detours and roughly 6 hours later, I arrived in OKC only to discover that no one was home, my keys were in the house, and the garage door keypad no longer worked. Exhausted, I slept in the back of the rental from 6:30pm until 7:30pm, when Susan was able to get home and let me in.

On Friday Susan, the kids and I attended our good friend Jennifer Martin’s wedding. Susan and I served as unofficial photographers and documented the entire evening from beginning to end. Susan took almost 1,000 photos while I only took 400. Susan and I had a good time taking pictures and the kids had a good time eating cupcakes and dancing the night away!

Saturday morning, Susan, her sister, and the kids hopped into Susan’s car and headed out west to San Diego. That gave me the weekend to hang out and rest up for my own to trip to Chicago.

Monday morning Dad and I hopped into the Avalanche and drove north to Chicago. We had the traditional White Castles for lunch and some delicious Aurelio’s Pizza for dinner with my Aunt Linda and Grandma O’Hara. At 85, Grandma O is suffering from moderate dementia. From what I understand some days are better than others. I arrived on a bad day. I only see her a couple times a year and the change between the last time I saw her and this time was dramatic.

I spent Tuesday, Wednesday and Thursday in Des Plaines, Illinois (near O’Hare Airport) loading servers. My small team loaded roughly 40 servers in two days. Each server weighed approximately 75 pounds and had to be moved several times. By the end of the week my hamstrings, arms, knees and back knew exactly how many servers we had moved. We ate lunch at Giordano’s Pizza one day and had dinner at Harry Carey’s Steakhouse another night, but for the most part we just worked and slept. And drank. A lot.

Friday morning at 5am I hopped in the truck and drove down to Springfield, IL to pick up Dad (who was visiting his cousin) before hitting the trail and finishing the drive. It wasn’t the fastest trip ever, but after slamming a few energy drinks and cups of coffee we rolled into my driveway just after 8pm. Susan and the kids got home from their trip around 10pm.

I slept in this morning and took two additional naps throughout the day. I’m almost caught up on rest now. Hopefully my back stops hurting before I head back to work on Monday.

Similar Posts:

My hotel this week in DC is so far away from work that I’ve been riding the Metro roughly 30 minutes each way. During that time each morning I’ve noticed that most Metro riders fall into one of the eight following categories.

01. SLEEPERS. These people get on and nod off. I’m not sure how they do it, but they do. I spend most of my time on the Metro worrying about (a) getting off at the right stop and (b) worrying about people stabbing me, and sleeping would seem to raise the odds of both. But lots of people do it (sleep, not stab me) every day. I’m really not sure how they manage to get off at the correct stop. I suppose I’m only assuming that they do.

02. HEADPHONES. Slightly better than the sleepers, the headphones-people are only depriving themselves of one sense. That being said, I depend on that sense on the Metro to let me know what stop we’re at and which one is coming up next.

03. PHONES. Lots of people spend their time with their noses buried in their phones — not talking on them but playing games on them. You can toss tablet owners in this category, too. I haven’t seen a lot of people actually talking on the phone and I’m not sure if you can even get a cell signal down there. I can’t, but I’m AT&T; I can’t get cell signal in my garage…

04. READERS. While the younger crowd seems to prefer electronics, the older riders like their paper. Newspapers, paperback books, and magazines.

05. STARERS. With nothing to read or listen to, these people just stare off into space. I can never tell what they’re looking at. They’re looking at … something. Or maybe nothing. I have no idea. They seem catatonic. They’re like Metro mannequins.

06. LOOKERS. Lookers are the opposite of starers. Lookers look at everything and everybody. Their heads and eyes are constantly moving around. Whenever two lookers lock eyes, things get awkward. (Spoiler: I’m a looker.)

07. TOURISTS. Tourists are easy to spot as they’re the only people having any fun. They laugh and talk loudly and almost fall over every time the Metro speeds up, slows down, or makes a turn. They also check the Matro map hanging on the wall. A lot. Like, sometimes after every stop.

08. CRAZIES. While I didn’t spot too many this time, occasionally I’ll spot someone talking to their shoe or licking one of the poles. I take back what I said about the tourists. These people seem to be having fun, too.

Similar Posts:

A few weeks ago, Susan mentioned that she was going to submit some photographs to ShutterStock. ShutterStock is a website where people can purchase stock photography to use for their websites. You, as the photographer, get 50% of the purchase price. Before being accepted, you must submit 10 photos to ShutterStock and 7 of them must be accepted. For fun this week I decided to dig through some of my old photos, submit them to ShutterStock, and see if I could get accepted. Let’s see how it went!

Shot at the Surrey Hills Park.

This picture was rejected for the following reasons:

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Subject is blurry, too soft, or out of focus when viewed at full resolution.
– Image is poorly composed and/or poorly cropped.

Yikes. Let’s try a different picture of fruit!

Shot at Pike’s Place in Seattle.

This picture was rejected for the following reasons:

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Image has exposure issues, unfavorable lighting conditions, and/or incorrect white balance.
– Subject is blurry, too soft, or out of focus when viewed at full resolution.
– Image is poorly composed and/or poorly cropped.

That’s worse than the first one! Maybe I’ll move on to boats!

Shot in Seattle.

This picture was rejected for the following reasons:

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Image has exposure issues, unfavorable lighting conditions, and/or incorrect white balance.
– Subject is blurry, too soft, or out of focus when viewed at full resolution.
– Image contains color fringing and/or inappropriate lens flares.

Maybe a bigger boat?

Shot in Alaska.

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Image has exposure issues, unfavorable lighting conditions, and/or incorrect white balance.
– Image contains color fringing and/or inappropriate lens flares.

No luck with water. Maybe concrete?

Shot in OKC.

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Image has exposure issues, unfavorable lighting conditions, and/or incorrect white balance.
– Subject is blurry, too soft, or out of focus when viewed at full resolution.
- Image potentially infringes on intellectual property rights.

Intellectual property rights? What the heck?

Shot in St. Louis.

– Image contains excessive noise, grain, artifacts, and/or is poorly rasterized.
– Image has exposure issues, unfavorable lighting conditions, and/or incorrect white balance.
– Subject is blurry, too soft, or out of focus when viewed at full resolution.
- Please provide a property release signed by the artist for any scanned/photographed artwork.

Yes, indeed. If anyone knows who the artist of this graffiti near the St. Louis Arch is, please have him contact me.

While you’re at it, I’m also going to need property release forms from every building in this picture.

Here are the final 3 pictures I submitted:

In all, all 10 were rejected:

– 10 for “noise”
– 9 for “poor lighting”
– 8 for “focus”
– 4 for “lighting problems” (which is different than poor lighting)
– 2 for “composition”
– 1 for “dust and scratches”
– 1 for “trademark”
– 1 for not including a property release signed by a graffiti artist.

I believe my dreams of becoming a member of ShutterStock just came to a crashing halt.

Similar Posts:

I’m very close to completely converting all of my old physical C64 disks into D64 disk images, a project I started roughly 10 years ago — not that it takes 10 years to convert ~600 floppies into D64 disk images (it only takes a minute or two to do a disk), but there have been a lot of stops and starts. Along the way I’ve used three of four different methods (x1541 cables, the FC5025, the Ultimate 1541, and my current method of choice, the ZoomFloppy) and experimented with several different tools and methods to ensure that I’m getting the most data possible from these old floppies.

Now, most of the floppies I’m capturing look like this:

In my digital collection, that’s “Disk 009,” and I’ll end up with two files (009A and 009B, one for each side). But occasionally, I run across old disks of mine that look like this:

Not all glue was created equal, and many of the labels I used for numbering disks have dried up and fallen off, never to be seen again. This bothers me to no end because now I don’t know what to call this disk image. Right know it’s called “Unknown-034.”

While rummaging through these old virtual warez I ran across a disk labelled “DCMR.” DCMR stands for “Disk Catalog Manager/Reporter.” I vaguely remember using it in the mid-80s. After converting the disk over to a D64 file I loaded it up in an emulator and found that not only did I apparently use it extensively, but that it contains a nearly complete list of every program from every disk. Hey, this could be useful!

The first thing I did was make backups of my old lists and put them on the same disk as DCMR using DirMaster by Style. (If you do anything with D64 disk images, you should download DirMaster immediately. It’s an invaluable tool that I rely on for cleaning up disk images and moving files from one image to another.)

With all the files on one disk, I loaded up DCMR…

…and was able to search for the first game on that mysterious disk. Apparently, this was originally disk 381!

Wahoo! One mystery solved, and I plan on using this newly discovered data to figure out what the rest of those disks with missing labels originally were. Man, this is awesome!

Similar Posts:

Our neighbors, quite selfishly, have placed padlocks on their gates that surround their pool. You cannot lock up water, my friends! You are depriving us, your neighbors, from our right to swim in that pool as we once did while your house was on the market!

Mason though, the crafty one that he is, figured out the combination to the padlock. While our neighbors are out of town for the week, Mason managed to get the padlock open. We have been kept dry by the man for too long now. YOUR REIGN OF TYRRANY HAS ENDED!

And, while the neighbors are away, a good time swimming was had by all. Happy Fourth of July!

(PS: We actually got permission to swim in the pool while our neighbors were out of town, but this version sounded a lot more exciting.)

Similar Posts: