Category Archives: did you mean tumble?

Waking With The Sun

Music: Blink 182 – Pretty Little Girl

.. It’s time to switch from our designer’s credit card to the LLC’s, because, we’re lucky enough to have enough income that our LLC credit card can cover that no-longer-free Amazon VM.

Adam tries his best to convert non-straight-forward AWS pricing structures into toddler level english, so idiot peer, me, can understand what the hell we’re looking at. He repeats himself 3 or 4 times, switching back and forth between 3 tables that might as well read ‘lorem ipsum..’ on them – it’s all greek to me, when he switches to hard numbers from our past month’s hosting to translate gigabytes to dollars – we both stop talking.

That’s not right, 90 gigabytes in transfer last month?

What the hell. We’re being hacked, or trolled somehow, I’m sure.

Adam’s smarter than I, so he starts poking at something more realistic – that damn hip mongo db instance we have running for another side project – the hip shit always goes out of control when it matters, doesn’t it? I ask him, “remind me again how we convert hipster cred cool points from two years ago into actual cash to pay for this POS going out of control on us?”

He kills mongo, and brings it back up, does some unix kung-fu that makes me look like a toddler, in 3 seconds he’s determined it isn’t mongo, but something is pushing 60+gbits per second somewhere, what the hell is going on?

I’m out of my league, I dont even understand what magic command Adam just used to ascertain XYZ bandwidth is going somewhere, so I open up chrome and start poking around at websites. Damn, our website, the one for the pretty picture viewer for iPad and iPhone, has a lot of pictures on it, in PNG, and is a 1.1MB splash page – that can’t be it.

Our designer hears this and picks up on something she can fix – converting to JPG because perhaps, for the first time in our personal hobby careers, that matters. Adam and I tell her thanks, but shrug her off, because we’re smart developers and already know its more than that 1.1MB splash page. Thanks anyway, silly designer.

Adam pokes more, odd that there’s a constant 60gbps flow going over imaginary pipes. He does some mental math, wait a minute, 60gbps would translate to a monthly usage of terabytes upon terabytes. Wait, what?

Turns out Adam’s not as immaculate as he seems, we were accidentally looking at localhost traffic, imaginary bits moving really REALLY fast from one file to another on our box, consistently. This is weird, but not what translates to a transmission usage bill at AWS, so that’s not it.

We do some math on spotlight’s shortcut for calculators, fighting with each other over putting more parenthesis into the equation so we dont have to worry about operator precedence (I want more, he wants less).

Meanwhile, the designer’s cut the big graphic down to 1/4 the size without any visual quality loss, thanks much designer, we’re busy doing real work here, leave us be!

We poke more, tail the apache log, sorry, not apache, Adam’s got that hip nginx in there. I think of another hipster cred one liner here but keep it to myself, opting instead to be marginally helpful. We tail it, and watch – we don’t see anything funny, after a couple of minutes all we see is 4 hits on our webpage. 4 MB out that way, mongo’s down, what is going on here?

Two senior software engineers are stumped. We poke at ‘top’ for a minute or so, nothing crazy on the usage – where is this 90 gigs of traffic coming from?

Now we’re both getting to the paranoid point, throwing grand/insane/impractical theories around – most of these assuming someone gives a shit enough to try to hack our little webserver with nothing of value on it.

The designer pitches in, the website splash page size is down by half, in, what, 5 minutes? That’s good news, I guess.

Then it hits us, wait a minute. We’re clocking 3K hits a day now, thats 90K a month, 90K at a megabyte a hit, that’s right around 90 gig.. isn’t it?

Adam and I catch our breath, well, we figured that one out, didn’t we? Classic too-smart-for-any-good engineering, blaming all kinds of weird super technical imaginary beasts for something we’re sure can’t be right.

Suddenly I realize how software gets the way it gets, in ten minutes the designer has done something super useful, and the two senior software engineers have mentally engineered half a dozen highly complex and completely wrong solutions to a non-problem.

We laugh at ourselves, and thank our designer for actually doing something useful – which was more than we had done, clearly.

Later, we spend less time scheming our next month’s work than we did worrying about imaginary hackers – we’re a well-oiled, highly performant little machine at this point.

We show the designer the elaborate fancy software tricks we’ve pulled off in the next little product, and she’s unimpressed – immediately pointing out half a dozen idiot-level flaws in the usability of our immaculate designs.

We all immediately agree on every point she makes, not because she’s hard to work with or anything like that, because she’s the best designer on the damn planet – it’s not her fault she’s always right – it’s just a shame she has to work with peanut gallery morons like us, with our fancy software degrees and enterprise experience and so on.

If designers could code, well, it’s like if women could create babies without men. It’s exactly like that, actually.

We finish up and I drive home, thinking how it’s funny, this is another first, the first time any optimization made to my own personal software actually makes a difference. A dozen failed self-published software experiments before, and generally acceptable performance built in as a standard, but never has success grown so large that any of us have had the choice of “hey, we could save half our hosting cost by optimizing some jpgs” – this is cool.

It reminds me of the time we stayed up all night in July, just after releasing the app on iPhone, free for the first week.

We hit the app store release button, and immediately all three of us were glued to our phones, searching “tumbleon”, and for more than an hour receiving an app store default response of “did you mean tumble?” – for some reason this cracked us up.

All three of us, we were so excited to launch this thing, sure we’d be insta-success, just like we were sure the time before and the time before that, and not to mention the one other time – we were beside ourselves, almost delirious. It was probably 8pm.

An hour or so later, the auto-synch script somewhere on the app store servers kicked over and the word “tumbleon” started meaning something on iPhones. Adam logs onto the server, curious to see if any one gives a shit.

“Jason, you should look at this.”

.. The logs are rolling with activations. Every 30 seconds someone’s downloading our baby and discovering something amazing – at this point delerium has given way to pure insanity.

At this point marketing, if marketing existed, would be telling us to shut the computers off and race downtown for a celebratory night of drinking – we don’t have marketing, and do things our own way when we party:

I (the not-amazing-unix part of the amazing duo) put together a small bash mess to remotely tail access logs and automatically play a super mario “power up” sound when an activation hit, and play the chorus to that “party rock” tune when a paid activation hit. Every few minutes something’d hit and our skype conf call would echo cyclicly as each of our computers caught the hit and made us smile.

I can’t remember how many years I’d thought of having a moment to actually write and appreciate a script like that, but for years and years I’ve secretly wanted to have that moment, and that night, we did.

That was also the night we discovered Google Analytic’s neat real time feature. For the first time ever, something we put out was tracking enough traffic that we could almost always see 5 people on the site from different areas around the world.

We stayed up through the night, or at least Adam and I did – I’d waited too long for this day to come, and I knew, in my gut, this may very well be a once-in-a-lifetime moment that would not come again. Skyping beyond the delirious hours, into patent insanity territory – and somehow, Adam, the machine, was still cranking code on something or another – I was just proud of myself for making something (the sound script) kick over at all while being so excited – so I stopped there, and soaked in the glow.

Adam was using the excitement as fuel for his next big whatever, and I just sat back, distracting adam with random hilarious whatevers and watching two windows on my second screen – google analytics, and the logs, rolling.

6 or 7am hit and we finally called it – that was it, one of those rare moments you’ve dreamed of for years – and when it hits it’s just as good as you imagined – you just soak it in and let it unfold, as if in slow motion, for hours.

A week later, the sale was over. Some 2,000 people downloaded the app, and the logs and google analytics died, predictably. That was it, our moment, our delirious insane ‘this is it!’ moment – just like that it was gone.

A few crummy, grumpy weeks later, we’re coming out the backside of yet another of our cycles – at heart we’re optimists, even the king of grumpy grumps, my good friend Adam, is really a dreamer at heart. We theorize something new and give it another go, this way or that, rinse wash repeat and teach ourselves to appreciate the good fortune we’ve already experienced. We are so lucky – and we realize that.

And yet, human nature kicks in from time to time, and we’re wanting more and more – and despite our dirty little contemptuous/greedy hearts, it just keeps on coming.

A few months later we’re posting that 100 million photos have been viewed in the app in 6 months, up from about 100K a day in early jan.

A few days later out little ticker hits another milestone – one million photos viewed in a day, the same day the budget cuts hit and I’m laid off.

Again with the delirium – it had been that part of the cycle, we didnt know our next move and when the layoff news came I couldnt think of even 20 hours to drain into TumbleOn version next.

I text my friend Adam: “we hit a million today, and also, I got laid off, let’s go do coffee.”

We do coffee, and Adam’s a good friend, he’s not into it anymore, just like I’m not – but the layoff sucks and the upside is extra time to do something useful, so he tries to help distract me. He pitches me for the millionth time on the next big idea that I’m always shutting him down on, but this time I say let’s do it. The day started with < 20 hours on the docket, and ended with months of scheduled hobby time we're still eating at to this day. --- I fly to Seattle, I visit my friend, and I tell myself I can be an independent little worker bee for a few weeks, and for a few weeks I am - until I'm not and the reality sets in - the app is no substitute for a steady paycheck - and even if it were, we had one month of ideas, not a year. That's part of it, but the other part of it is that my friend in Seattle had this kid. Man, I hate kids. This three year old terror could scream happily at the top of his lungs for hours on end, and could NOT understand why I spent so much time being frustrated looking in front of my laptop rather than playing the one level of castle crashers he loves to play for hours (the weapon select warehouse area). Peaceful, it was not. While out there, my buddy tells me he's halfway interested in doing some apps and we have some really good times those first few days talking about almost anything other than the layoff situation. Two days later, I'm sitting there, grumping at my computer, up early - because when I'm messed up, I'm waking up before 10am - and I hear the sweetest sound in the world. Wait, context, here's the thing, my friend - he's an optimist at heart, a really great guy, but there's a certain sadness about him. I'm not sure what it is, but forever he's been one of those guys - he's so kind, loving, and basically - fucking amazing - but something's missing there - you just feel it, most everyone does. This is a grade A amazing person, and yet, there's some hole. Back to the sound, Mom's up and around, and my buddy is dead asleep. The three year old terror's up with mom and he runs and jumps into his dad's bed, rolling and jumping around until he wakes. At this point, I'm already rubbing my temples, grumping at my computer screen. This goes on and on, and I feel for my friend with this tornado waking him this way - and then I hear it... My friend wakes to the day with a smile. I can't see him - but you hear it the timbre of his voice, his eyes aren't even open and the love oscillating through his home and permeating every cubic inch of air is lifting him from slumber to some higher plain I had completely forgotten existed. God, I think, how many years have I been grumping at this fucking screen? how many million moments have I missed the love and life oscillating in the air, the simple presence of being and seeing the sun rise once more? My buddy drives me to his work, to drop me at a coffee shop nearby and I watch him as he drives, to him the job isn't it, the job is temporary - a reprieve at times from three year old lungs, but mostly, a waste of time - my buddy with the 'certain sadness' is someone else now - my buddy has his direction, and place in life, and there is nothing, NOTHING more important than waking up to a new sunrise filled with three year old giggles and screams. The sadness is gone. It takes me a long while to digest the thing I witnessed that morning. The sound. --- A few weeks later, I'm back home, and bored out of my mind - realizing I don't have what it takes to stick with any project of my own that isn't paying salary+ rates for my time. Hobby time, sure, but it was time - time to get back to getting a job - a great job. The job was important, but God, the moment I noticed my buddy was whole and had a house bursting at the seems so full of love - the job wasn't going to be enough this time around, that's what I kept thinking. Thanksgiving hits, and we put TumbleOn on sale, there's a moderate amount of coverage (which for us, is 2 articles a month..) - 35,000 users download it in two days - incredible, and yet, it doesn't matter. Adam, our designer, and I are all with our respective families and the sale is a ploy - we're winging it, seeing if getting the word out more will lift sales afterward. It doesn't, and it doesn't matter - because we're all spending the holiday in our own little version of my friend in Seattle's world - those two or three holiday days where the adults all put the calendars down and take the time to actually live and soak it all in. A few days later, I've got a new great job, and Adam's just finished up at his. At this point, Adam had elaborate plans that I laughed at, like the asshole friend that I am. He's going to spend 6 months really trying to make something happen. Self-involved me failed at that dream after about 2 weeks, so I couldnt' see how he'd do any better. Christmas rolls through, Tumblr iPad is release, cutting our sales in half or so - worst christmas present ever? We feel sorry for ourselves for a number of days, until the optimistic cycle kicks over again. We post our new year post - 100 million in those first 6 months, another 200 million in the 2 or 3 months since - it's growing, what are we doing feeling sorry for ourselves? And we come full circle, confused by 90 gigabytes of transfer, ignoring our google analytics altogether, which regularly clocks 10 visitors on the site any given time of any day - and the fun little mario sound script, that stupid thing is useless now, b/c we'll be adding thousands of users a day when our ad-supported version hits in a few weeks - had we had the thing on during our free experiment back when, we would have been scrambling to turn our speakers off, because, you know, 20K users in a day is about 13 chimes a minute.. --- Before I went out the door to drive home, I asked Adam- 'how much are you working on your 6 month dream?' He opens this funny little insane-person's plugin on his browser, he clocked 56 hours last week, for fun. Damn, maybe Adam's not me after all, maybe this kid's got it - I really hope he does, he deserves the damn world. I drive home and think on my friend from Seattle, the guy with perpetual loving sunrises, maybe he's not me either, maybe he's got it too, he, too, deserves the world. Maybe we all have a little flame inside ourselves, some little switch that's going to flip over - some little moment or series of moments that's going to catalyze the next great chapter, our truly golden years. For some of us, that may be a three year old noise box to wake us with the sun, for others, our ambition, drive, dedication, and the big pay-off. I'm not sure what my little flame is, but I know this. For so many years I wanted to write that script and hear mario singing my success - I just wanted to hear that little cash register sound, heralding my 15 minutes. For all of those years I had completely forgotten about those sounds that truly mattered, the sound of a three year old thrashing his father to conciousness with all of his little might. Once you empty your so-important little bucket list, hit your number, your dollar amount, whatever, there's still a whole lot of life to live - I think for my next trick I'll figure out how to wake with the sun.