Working on my birthday

Today is my birthday, but I’m working hard and enjoying it.

I’m at the beach in Ecuador.   I had a morning surf session before breakfast with my kids riding on my back & Kelsey watching.  We have #3 on the way, you know.

I worked with Andres on Budgeteer from my hammock on the balcony all morning. He was working on the expense list view with local storage and I worked on merging the client and server code base and getting the development server set up with SSL and an Apache / Node.js proxy configuration.

Then I had lunch & started watching Lord of the Rings (I’m reading the books to Kelsey and watching each movie as we finish the book).  While watching the movie and staring at the waves, I did a little market research and networking.  I took a couple calls from recruiters including one interesting project.  Now it’s back to work on the Budgeteer development server.

I hope to get the web service endpoints up before a meeting with a client this evening to finish a FloreantPOS web service project deployment.

After that, I’ll be manning the barbecue for dinner and finally hope to catch an evening surf session.

Budgeteer Mockups

After going over the survey I decided to create mockups for Budgeteer based on the sketches I drew while interviewingImage and the feedback I got. 

Budgeteer usage survey

I’m developing a mobile app called Budgeteer. It is a personal finance app for tracking expenses and calculating budgets.

Next week we are going to the beach and I’ll be working on it with my partner Andres de los Reyes.

This morning I bombarded my wife with questions about the user interface & features for Budgeteer. She suggested I post a survey online.

Here is the survey.

I’d appreciate any feedback.

MySpace was better than FaceBook

For starters the name was a thousand times better. At least before the name was changed to include an elongated, fallen over bracket. “Check out MySpace” sounds so much cooler than “I’m on FaceBook”.

It had more features, and a better layout. Despite the fact that 13 year old girls could (and did) make their homepage look like a emo-goth equivalent of the hot dog theme with a sparkling magenta/fuscia background & animated cartoon blood dripping from the fangs of their least favorite bubblegum popstar (who’s music played ironically in the background) — and unicorns following the mouse — this was a feature, not a flaw in the platform.

The flaw was in you for daring to cross the threshold of the id of a 13 year old girl. But it was likely creepers like you who turned the 13 year old girl (now 15 and wiser) from confines of MySpace to FaceBook where they could trade 40 something stalkers for 20 something ones. Because FaceBook was cool, it started at Harvard.

That’s the only reason I can see that FaceBook won the “Social Network” wars — that teenagers were on MySpace first, so it becaome uncool first.

Well, FaceBook is uncool now, thanks to the purchase of Instagram — behold all the recent signups bewailing the purchase of their favorite 1990s technology digital photo filter simulating 1970s era faded analog photos complaining how they won’t use it anymore — on FaceBook.

My suggestion is, go back to MySpace. Maybe we can get Mitt Romney to lobby Rupert Murdock to change the fallen bracket back to the word “space”.

Features will win out, and all the unicorns and vampires are gone from MySpace — it’s full of 20 something wannabe folk stars. Leave FaceBook to the zombie farmers, and their click farmers.

My guess is that MySpace will outlive FaceBook.

Now that “the Zuck” (and all his VC backers) have cashed in, if Morgan Stanley can keep the price from falling for 6 months, they’ll have no incentive to keep FaceBook going as a going venture. It’s time to move on.

And there won’t be any money left after Facebook hits fair market valuation at less than $2/share — which will be split into quarters before Bono can finish divesting, so your $45/share purchase (due to a NASDAQ computer glitch) will be worth approximately 45 cents, if the company keeps revenue up, despite General Motors & everyone else except the “Games for Droolers” (who are the only other tech IPOs lately) pulling their ads — and Zuck & Co off to spend their money before it evaporates, and the VCs look for something else to pump and dump.

What is performance testing

Here is my response to the question posted on Quora “What is performance testing?

There are a lot of different activities frequently rolled into the term “performance testing.”

Generally, performance testing means testing the performance of your system – to give a tautological definition, which illustrates the ambiguity of the term more than it illuminates the process.

Some other terms often associated with performance testing are “load testing”, “stress testing”, & “scalability testing.”

Like all testing there are two completely different goals to performance testing: verification and discovery.

Measuring performance is the verification step, but there are many different things that can be measured including (but not limited to): response time, concurrency, latency, CPU load, memory usage, disk usage, etc.

Different loads can affect the application in different ways, so it’s usually not enough to just throw a bunch of requests at your system. The goal is to understand how your system performs under these loads, how many resources it consumes, how many users it can support at the same time, and how fast it can perform each action.

Simulating loads is probably the most challenging part of performance testing, because you can’t really have hundreds or thousands of users hitting your system in test. Besides the prohibitive cost, you may not have the physical resources in test to handle a realistic production load. Also, it is difficult to anticipate (and hence simulate) all real world scenarios. The variety of scenarios — things like network latency, variety of clients, unanticipated (or malicious) user actions, are very hard to cover.

I can think of one instance where a company went to great expense to duplicate their production hardware and network in a test environment for performance testing, only to be foiled in their measurements by an unanticipated variable: distributed content caching networks like Akamai.

The other side of the coin of performance testing from measurement is exploration. In this aspect, you’re trying to measure the limits of your system — where it breaks. The same techniques and instrumentation can be reused from the measurement process, but here you’re not trying to see how the system works, but to break it under load, discover how it breaks, and what the repercussions are.

Unusual things can happen, for instance, when you run out of memory. Performance can drop from hundreds of responses per second to several seconds per request once a memory threshold is reached and you switch to swap or start getting out of memory errors. These repercussions can potentially affect security, and even other systems.

Not everything in performance testing is about achieving a certain load, however. Some tests (and some issues, such as memory leaks) can only be found after running for an extended period of time under load.

Even some usability issues may be uncovered in performance testing. For instance, you may implement safeguards to prevent DOS (denial of service) attacks but find that they can adversely affect users behind corporate firewalls (who may share an IP or IP range) or search engine bots that are critical for SEO.

In short: performance testing is a lot of things — and determining what your goals are — both for verification and discovery — is a large part of the task. Determining how you are going to simulate load and measure performance are the other main tasks.

Workation at Villa de los Suenos on the Ecuador coast

One Sunday afternoon a couple weeks ago, we decided to go on vacation.

I’d just finished one project, customizing an open source restaurant Point of Sale system for a client, and I was (still am) consulting part time for another, something I could do anywhere with reliable internet.

Sencha.io is a cloud service based on node.js. I set up continuous integration servers with Bamboo and Jenkins on the Amazon cloud and am developing test tools and automation for them. The team is distributed, and they found me through odesk.

A vacation was just what we needed.

My wife was exhausted struggling through the first trimester of her third pregnancy and entertaining our two rambunctious kids. I’d been working hard to establish my software consulting business and get income. We hadn’t really had time yet to enjoy living in Ecuador.

I’m working from my home office in Cuenca Ecuador right now, and if we could find a hotel with wi-fi on the beach, I could continue working part time and go surfing and play with the kids.

Kelsey found Villa de los Suenos on VRBO and after a Sunday afternoon nap, we booked 3 days. We ended up staying a week.

We’d leave for Guayaquil on Monday after my scrum meeting at noon, spend the night there, go to the Temple, and catch the bus to Montañita Tuesday and spend a week on the coast. I’d still work 4 hours a day for Sencha, and fix bugs on FloreantPOS.

So that’s what we did.

Villa de los Suenos was amazing. Almost like having your own beach house. The owners lived downstairs and made us breakfast every morning. I’ve never met more hospitable hosts than Shell and Marsha.

Every morning at dawn, the kids got up with me to go down to the beach. We’d watch the local fishermen go out through the surf in their open boats, and then we’d build sand castles and explore tide pools and get our feet wet in the ocean. Sometimes our hosts’ dog Choco would accompany us and demand we through his ball or a stick for him to fetch.

The beach was perfect with cool dark sand and breaking waves that were just a little too intimidating for me since there were also some rocks. But with a bit more time and watching the locals, I’ll get out.

After a couple hours we’d come up for breakfast — usually eggs and cinnamon rolls and juice — and then take a dip in the pool. We’d lounge around, walk through the village, or go to the beach again with Kelsey (now well rested) and then have lunch on our balcony.

After lunch I’d put in 4 solid hours work on the patio, watching the waves crash, and maybe splash in the pool to cool off. Work has never been harder, but I had to remind myself that working with a view of the beach beats working in an office in rainy Seattle.

After work, we’d catch the bus into Montañita and have dinner in town and watch the hippies & backpackers wander around. Sometimes I’d get up and dance in the street with the kids. Cafe Solana, run by a young couple from New York (originally from Ecuador) was our favorite place to eat. Luckily for us, it was the off season, and Montañita wasn’t too busy. But it was still nice to take a taxi home after some ice cream or pastries to the perfect quiet of Villa de los Suenos in La Entrada, a 10 minute taxi ride north.

Quiet except for the constant roar of the surf that is.

I finished re-reading Lord of the Rings in the hammock on our balcony. Kelsey & I got sunburned on Saturday when we spent the day at the beach in town, but she managed to keep the kids from burning and we rented a surf board and took turns in the water.

The highlight of the day though, was when Harmon & I chased the lifeguards on their beach car and they let us ride with them.

I took Harmon out on a boogie board our last day. He was scared to go out in the surf, but laughed each time we were were lifted by the whitewater (not even up to my waist) as he clung to my back and would grant me permission to go out one more time with him after each wave.

We were all exhausted and sick when we got home (I had an ear infection) but I think we’ll go back again one more time before leaving Ecuador in June.

We might take friends & family with us and I plan on working with Andres, my Ecuadorian partner on Budgeteer.