Thursday, September 17, 2009

Control Technology, Not Let It Control You

If you have a pointy-haired boss dictating the direction of technology the company is going to take, run away fast.

Two and a half years ago, I was still working at a big company, when this actually happened. What did I do? I ran.

Don't get me wrong, I mean the company was very good and the bosses are nice and caring. Heck one time I was so sick, the boss was nice enough to offer to pay for a full medical check up. I didn't take him up on his offer though because I hate to feel indebted to anybody. But just because you read about it in "tech du jour" magazine does not mean you have to change your whole software department to use it. It is as silly as proclaiming you are a neurosurgeon after reading "Brain Surgery for Dummies". By the way, I did eventually went for a medical check up, and found out I had hypertension aka high blood pressure. So now I have to take some medicine every day until the day I die to prevent my heart from exploding or something. Just like that Ironman guy with that thingamajig that prevents his heart from melting.

The thing is, if you are running a technology integration firm you need to know that you need to use the right tool for the right job. You don't use a hammer to chop down a tree. You don't use a saw to hammer in nails. And you most definitely don't use a screwdriver to saw a piece of wood in half.

How bad could the situation be when technology that you boss chose just because it is over-hype as "poised to take over the world by storm" or "with this technology you will never have to code again"?

Imagine this scenario. You pointy-haired boss came upon a Predator wrist equipment. Now this equipment can cloak your boss, display real-time 3d mapping images, or cause a nuclear explosion. Now imagine your boss randomly pressing some buttons. What are the chances of him pressing the button that activates nuclear explosion?

Wednesday, September 16, 2009

From IT Consulting to SaaS MicroISV

Don't let the jargon filled title intimidate you. This is not a blog about "paradigm shift" and "value added" "synergy" with all those bombastic buzzword. Nah, this is a blog where I explain and do things, the "kampung" (village, rural, simple) way.

What is IT consulting? Well, you use IT to first trick your customer by gaining their 'con'fidence before in'sult'ing them and run away with their money. HA HA HA

SaaS = Software as a Service. Basically you build a software (usually a website) that offers some sort of service (usually porn or gambling) that charge base on subscription.

MicroISV = Independent Sofware Vendor run by a single person. This person is usually the software developer, manager, accountant, sales, marketing, best friend, father/mother, stressed out person with numerous mortgages and a broken down car.

Ok, with that out of the way, I will proceed with a few reasons why I am moving from IT Consulting (HA HA) to SaaS MicroISV.

1) Growth.
The natural progression for an IT Consulting business goes something like this:
Stage 1 - Make static websites for friends and families for $300.
Stage 2 - Build small accounting and inventory programs for business for $3,000.
Stage 3 - Build large enterprise level suites of software that sells for $10,000.
Stage 4 - Finally, pick up government or industrial contracts that go for $1,000,000 (1 million).
Usually you the founder have already died from old age by the time your business reaches stage 3. Check out HP, Xerox, and IBM. Especially IBM; to have someone like Thomas J. Watson come along and steal the business that you have laboriously sweated blood to expand is just so WTF.

Now compare it with a SaaS business:
Stage 1 - Make website that charges for downloads of music, anime, and anime's music.
Stage 2 - Do periodical marketing and updating of the content.
Stage 3 - Profit!
All this happen within your lifetime! Thank you Southpark underwear collecting Gnomes! You guys are "genius"!

2) Exposure.
IT Consulting is a 1 to 1 business. You (1) <---- Project -----> Customer (1). It will take you forever to get a good customer base to enable you to have repeat business. Remember, the more customer you have, the more source of revenue you have. Now compare this to SaaS. Now its a 1 to Many business; You (1) <---- Project -----> World (M). Imagine building a software in 6 months time and releasing it to a worldwide internet audience of 6,767,805,208 users. Now imagine if 0.1% of those users are your customer. Wow.

3) Maintenance.
Remember IT Consulting business stage 3 from Growth? Well around this time you will have a bunch of software lying around written by your team that uses different technology. Please don't start with the RoR can do everything evangelism. I have yet to see RoR being used to in production for industrial level PLC programming. And please don't say I can write RoR code that can be compiled into the C or Basic logic code which can later be compiled into machine code. Yes, you can also use a jackhammer to hit a hammer to hit a nail into the wall too! Now is that a smart thing to do? What do you think genius? Ok, so you have some software written in C, Basic, and Assembly for PLC projects. You have some Internet banking application written using J2EE. You have some CRM software written using RoR. Now imagine this, all your customer are calling at the same time to fix a bug and have given you a very tight deadline. Are we having fun yet?
Now lets try SaaS. All 6 million of your users complain that the link to a restricted area of your site is not working. No problem, find the link creation code, modify and test it, and publish. All it took was 10 minutes to make 6 million users happy because they can start downloading Hentai again. 10 minutes. Wow.

So now I'm in SaaS. Except that I lack the brainpower to come up with a software. I envy those smart guys who came up with ravejoint. Why can't I think out of the box and come up with stuff like that?! Ooops sorry, thinkingout of box; bad, jargon bad!

PS: Pssst, if you have a good SaaS idea and would like to collaborate gimme a tell!

Tuesday, September 15, 2009

One Language to Rule Them All

Every other year, some new technology will be heralded as the best thing since slice bread.

In the beginning, you have C and its object oriented derivative, C++.

Second, an event driven programming model called Visual Basic was made known to the world; along with it came the Visual suit for J++, Foxpro, and all that Visual stuff.

Next comes Java and its siblings, J2ME and J2EE. Birth of the MVC concept. You know, model, view, controller.

A little later C# and its parent .NET came out for basically everything Windows and web related. It also has all that Visual stuff. Again.

Soon after along rolls Ruby on Rails, which made web development fast and easy.

Now we have Silverlight 3, whatever the hell that is.

All of this, from Visual Basic down to Silverlight 3, have either been created by using C or its derivative C++. Wow. Of course before C was written in 1972, insane Borgs have been programming our PC using machine language called assembly. MOV AL #61h. MODE 13h. Shudders. I still have nightmares when I was learning to become a Borg for a semester.

Language extremist will say C/C++ is obsolete and useless. Well, you know that Virtual Machine that runs your software? It was written in C/C++. You know that favourite IDE you're using right now? It was written in C/C++. And the OS it's running on? C/C++. Guess what your favourite web browser is written in! And your favourite web application server!

C/C++. The One ring that rules them all. Learn it well.

Programming Google Android

I have been running an IT Consulting business for 2 years. It made good money, but I don't think its a good idea to work this way. At least, not for a startup. After reading SaaS Startups Knobs and Dials And Other Insights, I decided to move in another direction. I decided to write a stock ticker for a mobile phone platform created by Google called Android as a technology prototype. Lo and behold, they are using Java to power it!

Aah, Java. It has been 7 years since I last wrote any commercial software using Java. I wrote J2ME programs that ran on Nokia phones. I wrote a J2SE client and server messaging service using XMPP as its protocol (at the time it was known as Jabber). I wrote a B2B software that is powered by JSP and Servlets served by J2EE Application Server.

With all the experience programming for Android should be easy right? Wrong!

The most I managed after "Hello, World" was... well, thats all I managed. Ok, no problem, it's been 7 years. That's hell of a long time right? All I need to do is spend a week or so going through the SDK, and then I'm good to go. One and a half month later, I'm still stuck at "Hello, World".

So what went wrong? I have no idea. Maybe I got old and the old brain doesn't work as well as when I was younger I guess. Anyways, here are some steps you'll need to follow in order to start programming for Android.

1) Know Java.
2) Install Eclipse for your IDE
3) Install The Android SDK
4) Make sure you installed the ADT Plugin
5) Start programming!

Trust me, this is the best way to go about it. The ADT Plugin lets you edit, build, debug, package it into .apk, and sign your program, all at the push of a button. All you need to do is set it up first, then you're good to go.

Or... you can be a man and go through literally the 9 levels of Dante's hell by using a basic editor like notepad, compile and package the program into .apk file., and use a keytool and jarsigner to digitally sign your program. Oh, and don't forget them command lines! You gotta love command lines to do all this masochistic crap. Oh, the pain!

Sunday, September 13, 2009

Why We Need SSTO Instead of Sending Up More Space Tourist

Lately a lot of people has been going up into space. Rich people. People who has money to burn. Burning money to go into space. Now you ask yourselves, why did I say that?

Well, one of the main reason is we are still using multi stage Expendable Launch Vehicle (ELV) to reach orbit. The basic idea is that as the propellant are used up the container that holds the propellant are jettisoned because they are now considered as dead weight. Doing this allow the vehicle to travel long enough to reach escape velocity and hence into orbit.

Now what is wrong with this picture?

Okay, imagine this. You are driving a race car towards the finish line. 800 meters before the finish line you throw away your hood. 600 meters before the finish line you throw away your front passenger and back seat. 400 meters before the finish line you throw away your doors. 200 meters before the finish line you throw away your car body.

What's left at the finish line is just you, your car chassis along with your car engine.

For the next race you have to totally rebuild the car, all over again. Expensive? You betcha! Not to mention the difficulty and complexity of building a car that can jettison parts while travelling at high speed.

The best solution for this problem? Single Stage To Orbit (SSTO) vehicle.

Sure, they have proposed other solutions like space fountain's launch (Lofstrom) loop or orbital ring. Mother Nature has proposed the bird called Dodo as one possible solution in evolution. These solution will never work due to cost, impracticability, etc. A space vehicle will be as useless as the wingless Dodo when they are stuck on Mars due to the fact that there are no space fountain on that planet. Unless they can MacGyver a launch loop out of Martian rocks and sand, but the chances of that happening is nil.

What criteria do we need to build a SSTO vehicle? First it must not use propellant. The further we need to travel, the more propellant we need to carry, the bigger the container to hold all that propellant. Can you imagine the cost of building a SSTO vehicle the size of Himalaya to travel to the moon? Second, because we don't use propellant, we don't use rocket to provide thrust to push the vehicle forward. This means we need a new method of propulsion that works in the atmosphere, in low orbit, in space, and maybe underwater when we accidentally land in the Pacific during re-entry. Third, this new technology must use energy to power it and since normal propellant is out of the question, we need to use energy that is already available in abundance in space.

So how do we really build a SSTO vehicle? Gimme $10 million dollars; I'll build one for you. Either that or I run away to Bora-Bora with your money.