I have not handled the Tubular project properly. I admit it. I have not kept my customers up to date on what’s been happening, and have been misguided in handling the delays. And I let the lack of information go on for way too long. I’m truly sorry for the way that I’ve behaved over the course of this project. I’m going to use this post to explain everything that has happened, to hopefully answer all the questions everyone has had about what I have been doing. I know that many of you are extremely upset with me about this course of action, and I accept that. I’m not looking for pity or expecting anything out of this, but it’s the explanation that everyone rightfully deserves.
The first signs of trouble with Tubular began developing at the end of December, 2006. At this point, we were still using the default Flash-based YouTube player. Up to that point, it was ugly, but it worked. However, suddenly, using this method stopped working. When you’re writing an app like Tubular, any change to YouTube has the possibility of breaking the app. I quickly noticed that there were changes to the way that Flash players were created on YouTube’s site. A small “key” string was being passed around, and was generated from YouTube’s servers. I couldn’t find a way to work around the issue while still using Flash. This is what led to the decision to switch from the Flash player to a QuickTime player based on the open-source Perian codec.
This took a lot longer than I was anticipating, mostly because of the way that Tubular was designed. A lot of rearchitecture had to be done to safely accomodate the new video player. However, I decided that this was a worthwhile trade-off at this point, especially since I would be able to extend the QuickTime player in the future to support things like a custom controller and a full-screen mode, as well as CoreVideo processing. This was during a particularly crushing quarter at the university I attend. Getting Perian running took about a month of my available time, and confirming that it worked with the rest of the system took even more. Much of the delay was due to my school work, but I decided not to tell anyone for fear of sounding like I was unable to finish on time. Which was obviously the wrong decision to make.
As customers grew more and more upset, I got more and more depressed about the project. I knew I was letting people down by not disclosing the nature of the delays. And they were getting upset at spending money on something that wasn’t happening. The more let down I made myself, the more difficult it was to work on the project. This eventually would spiral on and on. I know ths is a completely irrational decision, and I was definitely wrong for doing it. Tubular was and is a very emotional project for me.
In March, I started working full-time at a company doing web software development. This was required by my university as part of the graduation requirements. I thought I would have more time to work on Tubular, but I was wrong. Nevertheless, I trucked along and released a few updates over the summer. Each time, I would get a lot of response from people saying that I was taking way too long to finish. This continued to drive that downward spiral. Everything was starting to line up for the beta release.
In August, a lot of things had been lined up for the beta release. However, after the announcement that it was ready, there was a huge bug that was noticed in the video conversion code. When it occurred, it caused the app to start writing a lot of random data to disk. And “a lot” means several gigabytes, if left unchecked for a few minutes. This was introduced at some point after Tubular 0.9.8 was released, so nobody had to panic about it. But it was something that needed to be fixed before it could go out. The bug ended up being something incorrectly sent to ffmpeg, which handles transcoding the video into a QuickTime file for iPods. It took a long time to discover, and by the time I found the fix for it, I was taking classes again.
In late September, I found out that I would have to transfer to another university. This added another layer of stress. As time wore on, it became more difficult to find the time or energy to work on the project. This is nobody’s fault but my own, and should’ve been disclosed.
With very little time, I kept working on getting the release finished. I didn’t announce anything about it, though, because I was afraid of getting a lot of angry people on the blog. And when Leopard came out, everything turned for the worse again.
Since Tubular deals with YouTube a lot, it uses Safari’s engine to make doing the work easier. One such case was in the piece of code that got the raw video for a given YouTube video. Up until this point, it created a Safari page in the background, loaded the normal video player, and watched for the video stream. Once Tubular found it, it would stop dealing with the background page, and download the video. But Leopard included the new version of Safari 3, which caused much of that code to break. Now, getting access to that video is a very tricky thing to do, and so this complex method was needed. It’s taken us a long time to find a fix for this bug. In fact, we just found one three days ago. But that piece of the puzzle was such a showstopper that it caused the app to crash or hang in Leopard, and exhibit very weird behavior. It clearly wasn’t shippable. This all, once again, should have been conveyed to everyone.
So, to all of you, I’m very, truly, and deeply sorry. I have let you all down for my utter failure to act professional about my actions. I am turning myself around and am hoping to win back your trust. To that end, I will be much more open on the blog. I will let you know about delays when they happen, what their cause is, and progress on fixes. I will inform everyone on the status of upcoming releases and other information on the project.
Regarding refunds, I unfortunately can’t do any refunds right now, because of my financial situation. However, since Tubular is now in public beta, I will be able to supply refunds out of any future purchases. Please contact me at the support email address; I will not discuss refunds in the comments.
I hope that this explanation will at least answer many of the questions you all have. If it hasn’t, please respond here in the comments or privately by email.
RSS · TrackBack
Feel cheated Said
at 11:49 pm on February 3, 2008,Dude, it’s been more than a year and your “App” is still in beta, maybe it’s time for you to be a man and refund our money?
Be a man yourself Said
at 12:07 am on February 4, 2008,Guys, you all knew you were buying pre-beta software. Just because you felt cool to be IN for a pre-public beta you shelled out money that you now want back?
Why not decide when you spend money if it is worth it? Refunds? For wheenies.
Peter Said
at 1:01 am on February 4, 2008,Good to hear you are finally back on track, and it seems you have learned a valuable lesson in Customer Relationship Management.
I find it a bit strange that you are doing the whole “load hidden safari pages to find stream” thing - sounds like a hack to me.
I’m not programmer, but doesn’t YouTube have an API you can use. I’m using an App on my Nokia phone calles emTube ( http://www.emtube.yoyo.pl/ ) which plays and downloads videos directly from youtube, it also displays video info and related videos - top 10 etc. It seems there’s a way to use YouTube “officially” using their own API’s which should also help in keeping the app compatible.
Like I said, I’m no programmer so I may be wrong, but I though it was worth mentioning.
I don’t have much use for you app these days as both my phone and iPod touch can now play YouTube videos directly, but I’m glad to see you finally pulled yourself together and “came clean” - as for the $10, no worries - I’ve written them off a long time ago - but you probably will not be getting many pre-payments in the future
blip Said
at 2:09 am on February 4, 2008,I had honestly forgotten about the app until I recieved your mail about the update beause of the Leopard frenzy the last couple of months. I’m not interested in a refund as I’d rather see the app bloom. Wish you luck with those studies. Heck I’m still working on my thesis, what, years too late.
Though, there is problem with registration. The details I were sent by you (earlier and in this latest update), aren’t accepted by the validation server. Any thoughts?
Fred Zelders Said
at 4:37 am on February 4, 2008,No problem Steve.
No refund
D Said
at 4:50 am on February 4, 2008,Nice, I hope you enjoyed your ill-gotten gains. Pity it sounds like the money is already long gone yet you’re still on the hook to produce software that already has numerous competitors which actually work.
I hope this was a life lesson for you. It was certainly a lesson for me — never pay to pre-order software, regardless of the hype. Lesson learned!
Steve Streza Said
at 6:30 am on February 4, 2008,Frank, YouTube does have an API, and Tubular makes extensive use of it. However, they don’t make it particularly easy to get access to the raw video, so I have to jump through a few hoops to get the video. Fortunately, that “load-through-Safari” technique, which was definitely a hack, is no longer in the app. We’ve replaced it with a method which is far less sensitive and should cause significantly less crashes.
blip, a lot of people are having trouble with registration. I’m looking into it.
Rufo Sanchez Said
at 2:01 pm on February 4, 2008,On the one hand, yeah… you kind of messed up.
On the other hand, I’ve been through the exact same thing myself on a project where I completely and utterly dropped the ball (complete with the guilty spiral of descent), so I know where you’re coming from.
Everyone makes mistakes, and it’s nice to hear that you’ve learned from them. Now let’s see the killer app I registered for
John Tyler Said
at 3:09 pm on February 4, 2008,I should have expected as much from one of Phill Ryu’s friends. You guys are all crooks.
Si Brindley Said
at 3:49 pm on February 4, 2008,Right, I’m going to have one last look at this. But as someone pointed out - we can now watch YouTube on our phones and iPod Touches. And apps like Miro do a killer job of queueing up and saving YouTube videos and saving searches (”channels”) etc all for free in a native OS X app. Tough act to follow for a smalltime paid-for app
randy Said
at 5:55 pm on February 4, 2008,Man..cut the guy some slack. He’s a student. I made an investment in his programming abilities with my purchase. I never expect quick returns (not a day trader). Let’s let Steve take his time and put out a quality product, and then be encouraged to continue programming for the Mac.
Steve Streza Said
at 6:24 pm on February 4, 2008,John Tyler, I can understand how you might feel that way. But I honestly never meant for this to get so out of control. I’ve resolved to change, and I hope time will prove that to be true.
Si Brindley, the 1.0 is just the groundwork. I’ve been dying to start working on all the features I have planned for Tubular, but I couldn’t work on them while the app was still in beta. Once 1.0 comes out, you can expect some pretty awesome releases with features that exceed what even Miro and Tooble can do.
Ralph Streza Said
at 5:48 am on February 5, 2008,Life (as is software development) is a marathon, not a sprint.
Keep joggin!
Rex Stetson Said
at 5:00 am on February 23, 2008,Good thing you decided to become more open. I see it’s because of your lack of experience in the real world that you sloppiness was able to build up like that.
I have to say you messed up big time and I don’t think you can regain the trust of your customers any time soon. You have let it slip for far too long. But fortunately you know that already. The only way to recover some of the burnt ground you left is to make the updates to your app more extensive and faster. If you cannot handle that, please drop the ball for good and offer a working solution for the refunds.
You have lost my faith for good, Steve. While I wish you all the best for the future (and all the customers still willing to put up with your teen problems), I simply don’t care enough about your so called “product” any more. I bet there are many more like me out there who cannot even be bothered to write a response on your blog.
Make some real effort this time.
Leave a Comment