I just got back from SDP13 in Israel and spent 10 days in that lovely country. With this trip planned, I thought it a perfect time to ask my girlfriend to marry me. I'm 44 and I've never been married so it's about time, right? Unfortunately we had a minor argument and in my haste I texted "Maybe I'm not getting married…" This text was meant for a friend of mine who I'd been confiding in about the whole diamond buying experience. But this text went to my lovely girlfriend instead. Foiled by technology again. So the cat was out of the bag and I didn't think I could surprise her with the ring in Israel.
I was perplexed as I wanted it to be a surprise even though she now knew it was coming. If I were to take her out to a nice dinner or maybe to watch the sunset, she'd know what I was up to. At the same time I considered how to be romantic and unique. I really wanted her to say "yes" (though she knew I was going to ask, she didn't let on with what her answer would be) so making it memorable was important to me. But what could I do that others haven't done before. I thought of writing her a song (I am a musician) but it felt trite and over-done. Then I remembered I am a software developer (ok, I didn't forget, but I am trying to build some tension). I'd write her an App for her tablet.
The trip to Israel meant we'd have 15 hours of flight time on our way to Tel Aviv and if I snuck an App onto her tablet, she's likely to find out and be curious enough to click on it. So that was my plan. Luckily I work late at night after she goes to sleep sometimes so I could work on the app in secrecy. She even gave me her tablet the night before the trip to put some videos on so I could install it then.
The App is a simple Win8 app that shows the story of our lives together and asks her to marry me at the end. One trick for me was that I wanted the tablet to record her reaction. I battled myself with whether I should tell her I'm recording so she could fix her hair and such or whether to record it and get a more natural response. I opted for the natural response of secret video recording. So we were set…app installed…all I could do is wait.
We got to the Atlanta airport to head to New York for the first leg of the trip and I was uneasy she'd find it too early. But I just held my breath and acted normal. We boarded the plane only to find it were being held on the ground due to an issue in New York. So she opened up the tablet to kill some time. She found the app really quickly (to my surprise) and thought it was something she had installed until the opening screen appeared. About 20 seconds into viewing the app we heard over the speaker that we had to turn off all devices in preparation for take off. She complied but we were both nervous. She wasn't sure what it was. "Is that that I think it is?" she asked. I remained coy and silent. We weren't ready for take off…it took another hour on the ground before we took off. That was one of the longest hours of my life. (Though that is hyperbolic…passing a kidney stone was definitely longer.)
We finally took off and she hurriedly turned back on her Surface when the 10,000 foot ding sounded. She sat there and watched intently for the long 8 minutes of the app. When the final screen showed with the three options ("Yes", "No", "I Have to Think About It") she paused. She decided to tease me and hover over the "No" option for what seemed like an eternity until she finally hit the "Yes" button and made me the happiest guy in the world. The fireworks video that I picked for the "Yes" button showed and I gave her the ring. You can see the result here:
P.S. I've been asked a lot about whether I had videos for "No" and "I Have to Think About It". I did. The "No" was a sad trombone video with a sad face. The "Thinking" simply played our song "I Won't Give Up" by Jason Mraz.
|Building a Web App with ASP.NET5, MVC6, EF7, and AngularJS (New)|
|Best Practices in ASP.NET: Entities, Validation, and View Models|
|Front-End Web Development Quick Start|
|Lessons from Real World .NET Code Reviews|
|Node.js for .NET Developers|
|Implementing ASP.NET Web API|
|Building a Site with Bootstrap, AngularJS, ASP.NET, et al.|
|Application Name||WilderBlog||Environment Name||Production|
|Application Ver||22.214.171.124||Runtime Framework||.NETCoreApp,Version=v1.0|
|App Path||D:\home\site\wwwroot||Runtime Version||.NET Core 126.96.36.199|
|Operating System||Microsoft Windows 6.2.9200||Runtime Arch||X86|