Posted by David Harris
Wed, 27 Dec 2006 20:16:00 GMT
About 6-7 months ago, I found a link to the Vongo movie download service and signed up for their 14-day trial. Everything worked fine, movies downloaded correctly, and there was a lot to choose from despite the poor titles they managed to license. It reminded me of Starz On-Demand, which I used to have when we had digital cable. Later, I found out that Vongo was a service provided by Starz, thus explaining the similarities.
Fast forward to last month or so, when Blockbuster Online began their new program that allows users to exchange movies from the online program for a free rental, rather than mailing them in a-la-netflix. At this time, I was considering a switch to Netflix, solely based on the interface (BB queue management is horrible). However, with the advent of instantaneous rentals for simply stopping by the store on my way home, I decided to put my Blockbuster viewing into overdrive, or at least watch more than 3-4 movies per month.
Needless to say, this resulted in the demise of most of my Vongo viewing. I occasionally watched an old 80’s movie a few times per week, but suffice it to say that my library grew quickly to around 60GB and I was downloading more than I was watching. I thought about canceling, but I did manage to watch 7 or so Vongo movies a month, so it was worth the monthly fee (I’m a big movie watcher). Plus, I could occasionally get a movie from Vongo that was also in my Blockbuster Queue, helping to keep my queue under control.
Fast forward to a few weeks ago, when my old Wachovia Check Card finally died on me and I activated a new card with a different number. Obviously, this wreaked havoc with all my online services, but at most I got an email for each online service, with instructions on how to update my credit card information, and a timeline for when that needed to be done by. I was prompt to update my information as soon as I got those emails.
Vongo was not so nice. Instead of sending a warning email, or even alerting me from within the Vongo software, they simply canceled my account. And by Cancel, I don’t mean “place into an unusable state until the information is updated”, I mean they automatically deleted my whole library, movies I intended to watch, basically forcing me to quit or start over.
Bad customer service. I was already on the borderline of whether to keep the account, and with an easy out and 60GB restored on my computer, do you think I’d go through the effort of signing back up? The answer is “heck no”.
So, the lessons I learned:
- When creating a model for an online subscription-based business, one of the first things that should be planned is the exit strategy for users, even before an entrance strategy. If you want to allow them to keep data, plan what format and even the interface they will be able to access that from. Most importantly, make these terms clear to the user when he signs up.
- Communicate with the user. Make absolutely sure that if you cannot bill them, that they actually wish to end their service. Make it easy for them to end, but if they simply need an extra week to get things together, provide access to a grace period during which they can do so. I feel if you allow people extra time, the little money you lose in fees is easily recuperated by the way they’ll rave about your customer service to their friends and on their blogs. Or, it will at least be the opposite of this blog entry.
- Last, but not least, a very easy way to cancel services you don’t want anymore (and that give you a hard time), such as AOL or Netzero or others, is to change your debit or credit card number. For identity theft purposes, most creditors or banks should allow you to do this with little trouble. I wound up canceling two other services (Netzero was giving me trouble cancelling, but that’s another entry) at the same time just by not providing new billing information.
So let that be a lesson to the web 2.0 crowd that does so well on micropayments. I’ll be there soon enough, so this was an equaly good lesson for me. Good customer retention is not always done by providing an awesome incentive to stay, but rather good communication, and an easy exit and return strategy (listen up, cellular providers!)
Posted in Random | Tags 2.0, communication, vongo, web | no comments
Posted by David Harris
Thu, 30 Nov 2006 20:29:00 GMT
I’ve not been a developer for a long time, but I’ve been around just long enough already to learn the lifecycle of a “real world” project. Note that this is for single-developer projects. Team projects give you a lot more latitude and ability to make these things work more seamlessly. Sometimes.
Phase 1: Planning
Most projects at least, thankfully, begin with planning. It’s almost never enough, and rarely covers all the special cases you’ll later be coding late nights to fix. But there is still almost always a phase where you at least are given a set of features, maybe a basic UI desire, and a pat on the back. As the developer, you get hard to work designing the perfect database structure, thinking of clever ways to organize code, until a day or two later in…
Phase 2: “Git ‘r Done!”
This is the point where you have things about half organized in your brain, and then get told “We needed that yesterday!” And, the corollary, “Get it done, it doesn’t have to be perfect!” And it’s not perfect, not the shining gem you hoped to produce, but it works. It works for every case they gave you, and when you’re finished you sit back, hoping that’s all they want. But it never is…
Phase 3: “But see, there’s one exception…”
In this phase, you realize what they told you in phase 1, and which you used to shortcut code in phase 2, did not line up with reality. For example, they say “All employees come in at 8am and leave at 5am.” So when you’re rushing for release, you make that an assumption. Phase 3 is where they come in and say “Well, we have this one employee, Bill, who comes in at 10am and leaves at 3pm”. For a minute, you think you might can get away with coding that one special case in. Until you realize that later they’ll have yet another exception to cover. So you rewrite most of the business logic and make a few database schema changes. And in the end, you wind up with better code anyway, and start to feel good about what you’ve produced. Until the inevitable…
Phase 4: “I’m a creep, I’m a weirdo. What the hell am I doing here?”
Of course, we’re talking about the inevitable and dreaded Feature Creep. For months, maybe years, you add feature after requested feature to that nice little software package. Maybe it began as a simple timesheet application, but now it’s a fully functional document repository with full search and indexing capabilities. We’ve all been there. Thankfully, the end seems to be in sight when…
Phase 5: “We had to let Bill go…”
They make a policy change that renders that previous Phase 3 exception void. Maybe all employees are forced to get there at 8am. Maybe they fire the guy who keeps coming in late. Either way, they no longer need your clever system for time configuration, as it adds a slight bit of complexity they get no benefit from. Only now, the whole system hinges ever so slightly on that one bit of business logic, you know that if you even touch that code the whole mountain will topple. So you finally stand up for yourself and say “no!” And then you quickly come back with “Well, it would be possible if we did a…”
Phase 6: Rewrite.
Inevitably, your code will reach a point where you just need to rewrite it from the ground up. If you had known they wanted a document repository from the beginning, you would have designed it in. This phase gives you the chance to really plan things out knowing everything that should be included. So you work and work and release a final version that does everything right, only to find out that…
They hired Bill’s son, who works Bill’s old schedule.
And the cycle thus repeats itself.
Posted in Programming | Tags boredom, development, lifecycle, software | no comments | no trackbacks
Posted by David Harris
Mon, 13 Nov 2006 21:54:00 GMT
This is a sponsored post for Reviewme.com:
Somewhere in the midst of today’s feeds I ran across the site reviewme.com. After seeing what it was about, I was surprised to see that googling for a minute gave no other similar services out there. In an age where the top bloggers (such as the TechCrunch and Engadget tier) get free PSPs to test out and review, I was shocked to see that nobody else had already capitalized on this yet! Correct me if you’re able to find another place. So props to these folks.
(Edit: I have since found a similar service)
The basic premise is simple—companies want to advertise, bloggers want to defray server costs. I once read that a corporation spends on average $100 for each customer they get, in terms of marketing and advertising costs. So, with a service like reviewme, assuming a review gets only one customer (and not several), businesses essentially save money by using this instead of traditional methods. Plus, it tends to promote an image of being culturally relevant; the product or service gets into the blogosphere, and we all know that never hurts.
For the blogger, it makes sense, because it might eventually get rid of all ads. As much as I like Google’s Adsense, I don’t yet get enough to defray the cost of renting a server. Granted, I’m not a Michael Arrington, but still, one of these reviews per month gets me what Google does, with more whitespace around and slightly less of a load time.
For the reader, it makes sense, because you’re alerted to a product or service you might otherwise had not known about. Reviews are impartial and biased only to the feelings of the blogger, so if you trust your rss subscriptions, you can trust the reviews. Some people believe this system isn’t as ethical as ads, but they do come with a disclaimer of being a sponsored post, so I don’t see any major ethical faux-pas. I think if your readership dislikes them, the blogger should probably not go that route, but these days most readers understand the need for an advert placed somewhere, so this will probably catch on too. Bloggers can accept or refuse offers, so if they don’t want to review Viagra, they don’t have to. And at the least, it keeps new content up on the site. On a slow news day, why not put a nice review up?
The main thing I love about it is that for once, it allows the small-medium sized blogs to actually succeed. Where large blogs get plenty of revenue, they might have to post 2-3 times per month to make the same revenue they get from a strategically-placed google ad. A small blog can post one per month and equal that amount, and still be a good benefit to the company being reviewed. At least, I hope companies won’t only go for the large blogs and ignore the untapped small to medium market.
So thus far, I give reviewme.com a good chance of succeeding. They basically seem to split costs halfway with the bloggers, so it’s much more fair than most advertising systems. I only hope, as with all systems, that it doesn’t get abused somehow. For now, it definitely seems to make a blogger’s life easier.
Tags advertising, blogging, reviews | no comments | no trackbacks
Posted by David Harris
Tue, 07 Nov 2006 05:36:06 GMT
Ok, I’ve always had this theory about music, particularly the structure behind music as a whole. Obviously, most music genres are simply a fork of an older genre. For example, we know country music is the uncle of rap music. Blues led to country and R&B, R&B leading to rap.
I’ve always thought this could be easily represented by using Graph Theory. Each genre gets its own vertex, with each edge representing how close or distant each genre is to another.
My next idea is to actually plot the whole history of music using graph theory.
My problem is I don’t know a heck of a lot about graph theory outside the 4-color theory, traveling salesman, and the seven bridges problem. However, I think I can at least get something to capture data for the graph.
Obviously, music is subjective to the listener. So I think I will devise a certain way to gather the data via social networking. Obviously, that’s the best way to get data these days.
So I’m proposing a game, similar to the old Hot or Not (or maybe that’s still around). A user gets two songs at random, and must rate 1-10 how much they correlate with each other. I think from that I should easily be able to calculate edge distance, or how well genres in general correlate to each other.
If such a graph were available, and then colored by historical era, it would be easy to spot musical trends, almost to a point where one could predict which genres will be reinvented a decade from now, and which will be abandoned temporarily.
My only problem is finding a source for such songs, and having them be accurately mapped to a correct genre.
The other problem is that the set of genres allowed in current ID3 tags (and picked up by iTunes, CDDB, etc.) is very limited for this purpose. And I want sub-sub genres involved in this, like acid jazz or reggaeton or otherwise. I’m thinking I can devise a way to collect that data from the social network too.
The benefits of this are awesome, even though it’s going to take a bit of work. Imagine an algorithm that can accurately predict what a user will like given a single correct statement up front, with given probabilities. For example, the user can say “Coldplay is my favorite band and I enjoy Baroque music”, and an algorithm should easily traverse the graph to make the claim “there is a 72.3% chance you will also enjoy Weather Report, a Jazz Fusion artist. Click here to listen.”
Such a mathematical determination would easily trump algorithms used by Last.FM and other networks to choose favorite songs based on what everybody listens to. Those are good at what they do, but it’s not very good about predicting a new emerging artist’s fan base.
At the least, it will be cool to have a graph detailing the relationships between music genres. We already know Acid Jazz is a mixture between dance/electronica and jazz, but not to what degree they are related.
Sounds like a good CS senior project, if I can delay it that long.
Posted in Programming, Thoughts, Random | no comments | no trackbacks
Posted by David Harris
Mon, 23 Oct 2006 19:57:00 GMT
As some of my readership (a whopping 10-20 people that never comment) knows, November begins National Novel Writing Month, my favorite time of the year for failure.
Now, fellow Netvibes users can easily keep track of their dwindling word count! I’ve thrown together a little module to make sure you stay on track. It’s currently pretty bare-bones, but I hope to add some of Danguyf’s little widgets to the mix soon, as well as allow for colors for “bad progress” or “good progress”. Please use the comments section in this post to submit any bug reports or feature creep requests, as I don’t feel it’s a big enough tool to merit a whole Trac or something. :)
Anyway, if you use Netvibes, you know the drill:

Tags development, nanowrimo, netvibes | no comments | no trackbacks
Posted by David Harris
Sat, 21 Oct 2006 20:48:00 GMT
So recently this blog has become major spam fodder. I’ve had little time to wade through the comments and trackbacks lately, and the old version of Typo required about 3 clicks to delete a single comment or trackback, with no optionfor bulk deleting. I’ve already experimented with the latest Typo subversion trunk on my other blog, so I knew it had a lot of better spam prevention and management features, including Akismet support.
Only a simple “svn up; rake db:migrate” didn’t quite do it this time. I visited the blog only to find a crazy batch of mysql errors, such as “unknown column contents.body_html” and others. Uhhh.
To save time, after freaking out a little I decided to check the fastcgi processes running under my account. I opened up top and found I had 5 still running! This is crazy to me, because normally those processes crash with a nice http 500 error every minute or two, so of course they stay intact when I need them to crash. Simply killing those processes made everything work again.
So bear with me as I remove all the spam up here, it may take a few days. I may also switch engines to Mephisto, which I fell in love with recently. And forgive me even more for the lack of content, but I’m hoping things will allow me to resume work on Fictiverse and get that tutorial up and running.
Tags comment, spam, typo, upgrade | no comments | no trackbacks
Posted by David Harris
Wed, 20 Sep 2006 19:59:00 GMT
At some point, every Firefox-loving blogger has to put his top ten extensions out. I figure, while I’m not really getting much programming done at nights, I’ll write up the more simple ones like this one. So, to get down to it…
1. Web Developer
This one has become priceless to me. As somone frequently involved in creating and designing website and web applications, I mess up sometimes. This toolbar has everything I need to make things ok again. I mean, everything. Not to mention that it’s also good for removing stylesheets from awful myspace or geocities (if that’s still around) pages, clearing cookies for certain domains, stopping image animations (for those sites where newbies use horrible animated gifs as avatars), hiding all images, resizing your browser window (for those sites that make it impossible to do so normally), and the magical “View Generated Source” option that allows you to view html source exactly as currently rendered, even counting the stuff Javascript does. Basically, professional developer or not, this tool-bar is a must have for the web-savvy.
2. Greasemonkey
Almost as important as seeing the internals of the sites you visit is being able to customize them on the fly. Greasemonkey enables users to submit javascript files that provide customization for many websites out there. I have several set up to give me advanced features on some browser games I play. You can either use scripts other people put into the userscripts.org repository (when it’s actually working), or create your own.
3. Flashblock
I don’t mind ads. You’ll never see me promote Adblock, nor do I use it. I recognize sites need income to keep things going. What I do hate is intrusive ads, like those created in Flash. In fact, more than Flash ads, I hate everything made in Flash. I think Flash should have been assassinated back in 1999. I think Flash is the Britney Spears-Federline of the internet—charming and beautiful when she first came out, but now with age her time is up and yet she still pokes her backwoods face in the public sphere. In fact, sites that use flash inappropriately (read: for the whole site) will never get my visit. So, for flash-hating fascists like me, Flashblock is the perfect FF extension! It simply blocks every flash out there from showing! Such simplicity brings such beauty to the web browsing experience. However, for those youtube fanatics, you can turn flash back on either piecemeal (for just the flash blocks you wish to see), or turn them on for an entire site. And it simply stays out of your way, silently protecting you from the evils of terrible design.
4. IE Tab
Unfortunately, we still live in a Microsoft dominated world. Not for long, my brothers! Viva la resistance! And, many designers still make their site compatible with Internet Explorer. Now, just a year ago, I still sung the praises of IE, would have joined it in jihad against the evils of open source browsing. Then, I tried using standard CSS to make a site look and feel good. By the end of the project, I had Firefox installed, IE blocked from ever using again, and vowed to buy a Mac, not even using MS Office (their one decent product) again. However, not everybody enjoys writing in standards, and thus we need IE tab to still allow us the beauty of Firefox without keeping us to enjoy helpful sites like MSN.com. How does it work? It simply allows you to click an icon on the status bar that will render the page using an embedded IE window. All the “benefit” of IE, using the much better interface of Firefox.
5. Blueorganizer
This one is a newbie to my list, but is quickly climbing the charts. Really, I don’t even know how to describe what it does. You simply have to install and see for yourself. To put it basically, it functions as a linkdump for goods you see online, only it keeps semantical track of what things are, and allows you to operate on those bookmarks based on what they are. You simply have to check it out to see. You’ll either love it or hate it.
6. Fasterfox
Claims to make Firefox faster. Does it? Who knows. It certainly seems a bit speedier. It can’t hurt to try. I recommend the “Optimized” setting. Don’t use Turbo, let’s please keep inside of RFC specifications and not overload servers who are gracious enough to host data for us to enjoy.
7. ImageZoom, ColorZilla, ShowIP
I group these three because they each do something extremely specific, hardly enough to warrant a whole category, but yet they sit there and do their job silently but perfectly, making my web browsing just a little better. Image Zoom simply zooms images. Is that a girl picking her nose? Zoom right in and see! Colorzilla sits in the left corner of your status bar. Is there a color you think is UBER on somebody’s site and you want to copy it? Colorzilla can tell you quickly what exact color that is. Perfect for emulating other people’s sites! ShowIP simply shows the IP associated with the site being browsed, and allows you to run a quick Whois or other search on it. These three don’t add a ton of functionality, but they’re good to have there when you need them.
8. ForecastFox (Enhanced)
Are you obsessed with the weather? Did you just smell rain? Oh, you so just smelled rain! Before you make bets with your co-workers, install ForecastFox Enhanced! This tells you brief info on the weather in your status bar, so you can be alerted to every fahrenheit degree of change going on outside. The Enhanced version simply has a larger radar map you can view. Perfect for the weather-obsessed or those of you lucky to not be quarantined due to allergies.
9. Adsense Notifier
This little baby simply displays how much money you made from displaying Google Ads on your site(s) that day. This way, you don’t have to actually log in to see that, yes, you made no money that day. Look for that hundred dollar check a whole decade from now.
10. QuickProxy
Some of us use proxies. Simply put, it allows us to see a site, after passing through another server. I use a proxy at work not because I’m hiding anything, but because I can keep all my traffic in one place, and log it so that if I’m at home I can easily figure out “oh, what was that site I was shown the other day?” without too much work. QuickProxy allows you to turn on and off your proxy with a single click, instead of going through Firefox’s twenty thousand dialog boxes to perform the same action.
So, there it is, disappointing as it may seem. I’m not one to install extensions that replace the functionality of a whole different program (I don’t need an extension to post blog entries, I can do that from a separate, better utility). My extensions simply enhance a browsing session that’s already happening. Most of them sit so far out of my way that I only notice them when I need them. Exactly how a good interface should be! If you have ones you think are more important than these, comment them. I’m always looking for the next cool toy. Keep in mind I’m not one to use stuff like “Finance Manager for Firefox – manage all your finances from this nifty sidebar!”.
Enjoy, and again, viva la resistance!
Tags extensions, firefox, ten, top | no comments | no trackbacks