A Personal Ad Server

I like programming, I’m a bit embarrassed to admit. As a fifty-year old, programming is not what I am supposed to be interested in. I should be managing large teams of people and making insane amount of money. That’s the way we think in today’s hyper-competitive and overachievement-oriented world, where we are all in a race to nowhere. But, what can I say, I do like programming. In particular, I like web programming, which is even worse. I mean, any teenager with a diploma from any of those fly-by-night schools can do web site development and such. I would like to think that I do it with a difference, but who am I to judge?

A while ago, I realized that I could sell some of my programs and make a bit of money. Selling digital goods like programs and eBooks requires you to have a program to handle it all automatically. Since I liked doing it, I wrote the program myself, which would take the payment, validate it and let the buyer download whatever he bought. I called it ezPayPal, and was pretty proud of it. What’s more, I could sell that program too!

Someone bought it, and made a comment that read thusly, “I paid for the pro version, which admittedly is not a lot of money and I activated a product to see what it would be like and I was horrified to see an interface that looks like it is from 1985!” I personally was horrified to read that review! But then, I take criticisms seriously. The buyer was right, of course. So I set out to modernize the interface. To be fair to myself, I have to say that the backend part of ezPayPal is extremely robust and secure, and it is that aspect of web applications that I am particularly good at.

Database setup screen
Admin user setup screen
Admin interface elements
Listing your banners
Generating invocation codes
Configuration optons, showing help
Editing categories
Admin page tour sample screen

Since ezPayPal was already in production on my server selling stuff, I didn’t want to mess with it. I had another pet project, which was a personal ad server, to serve my own ads and banners to my network of websites. I used a behemoth of a program called OpenX to do it. Since it was so heavy for what I wanted to do, I later wrote a super simple, flat-file based ad serving script to replace it, which worked well enough. I decided to modernize it into a sellable product and set out to do some research into the modern technologies. I already used jQuery and AJAX in one of my projects (Easy Text Links), so I wanted to go a bit beyond that. (Now, don’t go hurting my feelings saying that those are also obsolete technologies!) I discovered the bootstrap framework by twitter, and was thoroughly impressed by it.

If you are a developer, sitting on the fence deciding whether to use bootstrap and the associated jQuery wizardry, there is one very good reason why you should. You see, in a form based interface, all the work is done at the server. So the user loads to form, enters everything and clicks “Submit” and you either update your database or come back with a validation error. In bootstrap, you can do it incrementally. You present a table of information, and the user just clicks whatever he wants to modify and in the backend, using AJAX, things get done.The interface becomes something like Facebook and twitter. After all, the bootstrap framework is from twitter. It turns out that doing it this way is actually a lot simpler even from a programming point of view, which was surprising. Sure, there is a bit of a learning curve, but it is minimal.

So, in the last couple of weeks, I worked very hard to develop the totally modern and fully responsive interface for the Ad Server. Here are the results in the form of screenshots posted above. What do you think?

Of course, I want to sell this package as well. More importantly, I want to apply all that I learned to ezPayPal and throw it back at that reviewer and see what he has to say. Seriously though, it was a lot of fun learning all these new tricks. More fun that it should have been, at my age, I guess.