Off on a journey

I'm writing this as I'm seated on a flight to PHL before getting on another plane to AMS where I start my start my two-month vacation. I've been working for 3 and a half years and have only taken small trips so when I got an invitation to a friend's wedding in Italy then another invitation to another friends wedding on the East coast the month after, I saw an opportunity. "Why don't I go to that Italy wedding then stay in Europe until the next wedding?" I asked myself. After some musing, I decided to take the plunge. I mean, c'mon, how often will an opportunity like this pop up?

 En route to Philadelphia

En route to Philadelphia

This will also be my first trip that I'm doing by myself. My first Eurotrip was done with my friend Karin and my previous vacations were always with family or friends so this is an exciting time for me! Here is what my itinerary looks like:

 - Netherlands [Amsterdam]

- Italy [Salerno, Florence, Milan]

- Switzerland [Chur, Zurich]

- Finland [Helsinki]

- Denmark [Copenhagen]

- Belgium [Bruges]

- France [Paris]

- United Kingdom [London]

All within about a month! Phew!  From London, I'll be flying to the East coast to my hometown of Bensalem to attend a wedding and visit my family (my sisters who live in California are also planning to visit during that time). After a week and a half of that, I'll finally be flying back to Seattle where I will rest and relax for the remaining 2 weeks before going back to work. 

The time I nearly peed my pants in a Dutch train

I don't know how it came up but I was just reminded of when I was traveling with my good friend, Karin, in the Netherlands. We were boarding a train that was pretty packed. Because of that and the fact that we were carrying our luggage, we got separated. It wasn't until i sat down did I realize that she was holding our train tickets. Oh and, by the way, even though we were in the same car, there was a separate door that was fully transparent that split the car in half. So I couldn't awkwardly, in my loud American voice, ask if I should get my tickets from her.

But then when the doors close and I see the guys that check your tickets walking around, I immediately panic. I was tired, I didn't speak the language, and I just can't deal with situations like that. I poke my head up to look for Karin and we finally see each other. She gives me an adorable little smile and gives me a thumbs up. I smile back to be polite but I have no idea what she meant by it so I nervously await my turn.

The doors open and the passenger start showing their tickets. The guy finally gets to me and I start to stutter. He quickly realizes that I'm the guy that Karin was talking about when she explained the situation and reassures me. He gave me a big ole smile and went on with his business.

We had a good laugh about it when we met up at our train journey's end but holy crap, was that an emotionally draining 5 minutes for me...


Karin's side:

"I tried to describe you as 'the guy with the black hair' before realizing you were wearing a hat and made my own fool of myself. Then I corrected myself with 'the guy up there that looks scared and doesn't understand Dutch."

Yup... that was me!

Textspansion v2

So as the preview hinted the other day, I've been working on a v2 of Textspansion. I actually started work on it almost immediately after the Hackathon at work which was last Friday to Sunday. Naturally, I thought to myself, "I just spent the last 3 days coding... let's code some more!" That Hackathon was exactly what I needed. 3 days hacking away at someone else's Android code base wanted me to revive that pile of goop code that was snuggled away in a corner and make it beautiful.

Oh dear lord what is this

The original Textspansion was written in approximately 3 months way back in 2011. Back then, design was an afterthought. I think the biggest UI element that I really wanted was the ActionBar because that was the hot new Android UI element at the time. Since we (Sean Barag and I) were aiming for Android 2.3 at the time and ActionBarSherlock wasn't a thing back then, we used some other 3rd party ActionBar-like library.  

When I looked at this screenshot last week, I almost wanted to cry. Where are the margins?! Gingerbread UI elements!? What is this, 2011!? But hey, at least the ActionBar looks great (I still do think that). 

Since the very first iteration, we made small incremental changes to it. We added the ongoing notification in the notification shade because some device manufacturers thought it was a good idea not to have a Search button, thereby ruining our main use-case. Then Ice Cream Sandwich was announced and the Search button was removed completely! Thanks, Google! We added string tokens for dynamic data such as the date or the time (I laugh now because the code for this is absolutely butt ugly. Then I cry.). Finally, I added some tutorial screenshots to replace the list that you see on the left. 

Development slowed down as we couldn't think of anything new to implement while we were in school. We continued to maintain it through support emails and bug fixes. I was totally surprised when we got an email last year from one person telling us the app was crashing when she was trying to import a list of over 500 snippets. First of all, we didn't expect anyone to use it when we first launched it. When it was picked up by Lifehacker, I nearly wet my pants. Then I find out there we have an actual power user using our app? I was super stoked. 

So why am I rewriting Textspansion from scratch? I won't sugarcoat it; I was a TERRIBLE programmer 2 years ago. The main Activity was 897 lines of code. 897! For barely anything complicated! In those 2 years, I like to think I've become a slightly better programmer. I want to take what I've learned in those two years and write better code. Also, Android has changed significantly in those 2 years. Our original backend is almost completely deprecated and is pretty inefficient. The past few days trying to utilize the modern APIs have been really exciting. Finally, something something phoenix analogy.

Enough rambling, here's a screenshot of Textspansion 2.

Seriously, I'm pretty hungry.