Recent waves in online business world

By “recent”, I mean maybe up to the last couple of years or so. Let me start a little earlier than that.

When blogging became hip, there were programs (read: paid products) that teach you how to blog, how to write effectively, how to get your blog to be read.

And on the last note, website traffic became important. So there were programs (read: paid products) that teach you how to get traffic to your website. More importantly, how to get targeted traffic, because casual passers-by were next to useless for business purposes. Just look at all the traffic from Digg and StumbleUpon and Reddit and other social media sites. People come, look at your post, then leaves. That’s pretty much useless.

So creating an email list became imperative. You want to capture people’s email addresses so you can talk to them. If they sign up, then they want to hear from you. This is what Seth Godin would call permission marketing. But beware! There were some WordPress plugins that set annoying pop-ups that has a sign up box for people to put their email addresses. This pop-up happens either on finishing reading a post, or worse, on leaving a page. That would be “annoyance marketing”.

Then came teaching programs (read: pai… ok, you get the idea), that teach you how to teach a topic. The main one is Teaching Sells. The idea is that people will want to pay to learn something useful (and probably turn it into something profitable).

And on that note, videos were becoming popular, what with the increased bandwidth that most people have. And that some people like to see a person talking to them, instead of reading text or hearing audio files. So there was this product called Video Boss (I think). It teaches you (see previous paragraph) how to shoot, edit and upload a video. There were all sorts of information in that product, going so far as the minute details such as making your video visually interesting and lighting setups and so on.

Then there was the app craze, popularised by the iPhone. “Create apps. Become millionaire.” says some paid products (or to that effect anyway). If you’re a developer (which you probably are if you’re reading this blog), then be aware of what you’re creating. Create and sell apps if that’s your thing and that it’s working for you, not because someone says it’s the in thing.

Then there was the Kindle revolution, changing how people read. You can now self-publish on Amazon and push your ebooks out to millions of Kindles in the world. And make a bit of money from every ebook you sell.

The app thing and the Kindle thing have two things in common. They both relieve you of payment processing, and they both let you leverage an existing platform. Apple’s App Store for iPhone/iPad, Windows Store for Windows apps, Google Marketplace for Android devices, BlackBerry App World for Blackberry devices. And Kindle for well, Kindle devices.

Somewhere in those times, there was a need to know how to launch your product. I’m not talking about hype (or just hype anyway). I’m talking how to get sales from your product launch, how to get maximum impact. There’s this product called Product Launch Formula (by Jeff Walker) that teaches you how to do this.

I subscribe to many of these people’s email lists, so I get emails whenever whatever. Some are useful, some are interesting, some I just delete because it’s an obvious sales email (after you receive as many emails of such nature as I do, you can tell from the subject line or within a couple of sentences in).

There’s a point to all this. And I’ll tell you in the next post.

Next level of web development

The other day I met up with a friend who just finished giving a talk on HTML5. Well, not exactly HTML5 but more on the current mix of technologies that’s making up the current web development skills. The basic technologies involved are HTML5 (markup/data), Javascript (action) and CSS (presentation).

My friend used HTML5 in his title because there doesn’t seem to be a term for this new “level” of web development. And because he’s afraid his audience won’t know what he meant.

I remember writing Java applets (using the applet tag). I remember web sites without an ending paragraph p tag because the web browser was extremely tolerant. I remember web pages with font tags everywhere because CSS was practically non-existent back then. I remember displaying the current time using Javascript was an extremely cool thing to do.

Then web standards were introduced. HTML markup standards were encouraged. Javascript libraries started sprouting. And CSS came to the rescue, separating the presentation layer from the code layer.

As far as cross-browser issues go, adhering to current/latest HTML standards and using good Javascript libraries and using CSS meant that users are free to choose whichever browser they want. And the web site they’re visiting is expected to behave the same way and be rendered on the screen the same way (with maybe a few pixels off the mark as an error buffer, I guess) regardless of the web browser chosen.

And my friend is worried.

He’s worried that the current web developers are so used to the current set of technologies that basic programming problems are not even considered.

The big one is Internet access. He told me this group of (mostly young) web developers assume the Internet is as available as air. The idea that there might not be Internet access never crossed their minds, and so their web applications crash in the most spectacular manner when the user has no wifi.

And the worst part of it all was that these web developers think HTML5 is the current “web developing thing”. Sort of like “I’m a C# programmer” or “I’m a Python programmer”. They’re now developing in HTML5, without understanding that HTML5 is just the markup.

It’s the “as long as it works” mentality. I’m a practical man, so I agree with this mentality. I also do so with some understanding of the underlying technologies. This “HTML5, Javascript, CSS” combo seems like a black box, but it isn’t. Each part even advances independently of each other.

It’s like self-publishing on the Kindle without understanding the role of “traditional” editors and publishing houses. It’s like auto-tune of your song without understanding some music basics. It’s like relying on the auto-focusing of modern “prosumer” cameras without understanding basic camera equipment and terms.

I’m not saying they’re bad. I’m guilty of the last one. I use a camera that does everything for me when I click “Record” because I don’t want to fiddle with aperture and focal length and filters and such.

The problem is, if you don’t know (or care) what’s the underlying technology, you won’t know what to look for when things go wrong.

Question

Is there a term for this current level of HTML5, Javascript (I can only think of jQuery as a popular library) and CSS (CSS2/CSS3?)?

Difference between app business and app development

A few days ago, I went to a BlackBerry developer meetup session hosted by my friend. Being primarily a .NET developer, I thought I’d broaden my horizons and learn what the BlackBerry platform was about.

It was a little bit of a show-and-tell. It turns out that the next version of BlackBerry is going to be out soon, and the session was sort of a “getting developers to develop for the BlackBerry 10” thing.

I’m not really going to go into the details of the new BlackBerry nor its development platform. I am going to talk about apps, since it’s the in-thing currently. Here are the markets I know of:

  • Apple’s app market on the iPhone and iPad
  • Microsoft’s app market on Windows phones and the to-be-released Windows 8
  • Google and its Android phone app market
  • RIM (Research In Motion) and its BlackBerry app market

I’m using “app market” in the general sense. There are probably other app markets, but the ones listed should be in the top few in terms of audience size.

What I learnt at the session

I’m not a BlackBerry developer, so I mainly kept quiet and listened. However, as the presentations went on, and I asked questions, something hit me. I approached app development differently from the developers present, including the presenters.

Preemptive disclaimer: The developers are probably very good at their work. The following are my opinions after being self-employed for over a year and studying business and related materials for longer than that. I’m not putting those developers down.

Here we go. These developers were interested in the technical aspects of BlackBerry development, whether it be the hardware specs of the BlackBerry, or the tools used for BlackBerry development.

I asked my friend who’s a consultant for RIM about the BlackBerry, and he told me a bunch of specs on the new BlackBerry. Now I’m a programmer, but I don’t get real excited about stats.

Let me put it to you this way. Most consumers will have their eyes glazed over when you tell them some piece of hardware has X gigabytes of storage and so on. Apple, just said the iPod can hold 1000 songs.

Get the picture?

The developers were interested in what they could do on the new BlackBerry. I was interested in what consumers could do on the new BlackBerry. That difference is what makes you money. If you don’t like the idea of monetary gains, then think of the popularity of your app. Think of widespread acceptance and downloads of your apps.

File selection

One developer asked my friend (who’s presenting at that moment) to go to a particular website and click a button there. Nothing happened. I asked that developer what’s supposed to happen.

He said you’re supposed to have a pop-up to select files. The first thought I had was security. And even if file selection is allowed, and assuming the user knows what he’s doing, what kind of files were allowed and why would it even be useful?

Sure, you could select photos for upload, or business documents for transfer. But I believe the app should handle the file selection interface, which makes it seamless for the user.

Designing for the consumer

But that question is really the heart of what most (or all) of the developers there were concerned about. They want to know what’s the storage capacity, the screen size, what tools to use for development, how to debug your applications and so on.

These are all valid questions and concerns. And I understand that some people are really into the technical aspects.

So what kind of questions did I ask?

I asked if videos can be taken. How’s the quality of a video playback? How’s the quality of the audio? Is there a YouTube app?

On the train or buses, people plug in earphones and either watch videos or play games or text communicate (either messaging or Twitter or Facebook or whatnot) on their mobile devices. The technical aspects are useful. I just think coming up with an app that people would want to use is priority one. The app doesn’t have to be complicated. It just has to either be useful or entertaining.

So I basically asked questions that consumers are more concerned about. And the new BlackBerry from what I’m told, is targeting the consumer market. It makes sense that BlackBerry developers should also be concerned about similar topics.

There were questions on the price of licensing. It’s free to upload apps, but there’s a fee for certification. From some research I did, the revenue sharing scheme is the standard 30/70, with 70% of the revenue going to the developer.

Here’s the funny thing. No one asked about making money stuff. Not about how to do in-app purchases, or the kinds of prices used (although the developers are free to set their own price), or how to get paid. Maybe they already know, and I’m the only one in the dark (I’m not a BlackBerry developer).

I look at the apps from the perspective of both a business owner and a developer. Maybe that’s why I stopped fretting about technical difficulties. Because the instant a human user uses your software, you’ll find out the real and important difficulties.

A Sandbox In The Cloud

I am honoured and excited to bring you an article written by a Rackspace staff, Joseph Palumbo. My thoughts will be at the end of this article. Thanks Joseph! Disclaimer: I’m not paid by Rackspace.

As a founding member of Rackspace’s Managed Cloud support team, Joseph spends half of his time teaching customers about the Cloud and the other half learning about the Cloud from them. Follow him on Twitter.

Solid, high performing websites and web applications don’t happen by accident. From imagining an idea, creating code and developing an intuitive user experience, there are many behind the scenes tasks to ensure everything works smoothly.

Despite how simple a website or web app might appear, the reality is that even the simplest looking sites can have powerful and complex code behind them. The complexity means that one small change can take down the entire site. However, both business needs and technologies evolve, necessitating changes to your site. The choice, however, is how you implement these changes.

You can choose to make code changes to your live, production environment, but this is a dangerous proposition. By doing so, you assume the risk of making a mistake that can be visible to users, or creating an error that can make your entire site go dark for an extended period of time. The better alternative is for businesses to create a test and dev sandbox that mirrors the live environment, but in the recent past, this was expensive to do. The high cost presented a difficult decision: do you spend the money to create a test and development environment or do you assume the risk of introducing a bug or error into the live environment?

With the advances in cloud computing, you no longer have to choose. Businesses can easily clone their production environment and create a test and dev sandbox. In the cloned site, developers can replicate the ratio of usage rather than purchase all of the horsepower; this means that you can have a more cost effective version of your site because you aren’t serving up production traffic.

This cloned site can be created on demand for testing code changes and will literally cost just pennies per hour. Not only can businesses create a cloned site for temporary testing, the cloud presents a cost effective solution for a long-term test and dev sandbox.

Furthermore, the test dev sandbox allows experimentation to happen behind the scenes without anyone outside the company (or the IT department) ever knowing. While you are making changes to your test and dev sandbox, the production site is humming along, bringing in revenue, collecting customer data and maintaining your online presence.

Once your developers have perfected the changes and are ready to move the mirror site into production, it can be uploaded directly. If there is a load balancer in front of your configuration, you have the ability to make the test environment the new production environment. You simply make a change on the load balancer, redirecting traffic from the old production site to the new production site in the middle of the night. This is easily done from a systems administration point of view and can result in little or no downtime to your configuration.

In the past, I would receive frantic phone calls from people who didn’t have a test and dev site and didn’t know their code very well. They only had a production site and were trying to make changes, but they were concerned about the potential of bringing down their site, or even worse, making an irreparable error such as erasing part of their database.

The cloud lowers the cost of having a test and dev site, allowing businesses to prove out their code changes without adversely impacting their production site. You can have peace of mind that you won’t make visible mistakes to your users or delete any of their data. Peace of mind is worth every penny – and with the cloud, it won’t cost very many pennies to have.

Post-article thoughts

I have personally maintained development, test and production web servers, along with the corresponding web sites. It can get exhausting, especially when you have to coordinate the efforts of other developers and testers (from dev and test sites), and juggle inquiries from customers and customer service officers (from live sites).

I’ve also personally done server maintenance. There was this one time when there was a change in some wiring structure in the data centre, and I had to be there personally (because there’s no one else) to make sure my servers were still operational after the change. I’m really not a hardware kind of guy…

DNS propagation, IP address settings, SSL certificates, server upgrades. If there was an easy way to enclose all that into a standalone testing environment, my life would have been so much easier.