Wednesday, October 21, 2009

EasyTask Manager Review

I have been quite busy trying to organize my business workflow for the last few weeks. Tasks, ToDo lists, calendar, email, you name it. My recent upgrade to iPhone 3Gs started the whole thing.

I have gained some interesting experience with good results and I wanted to share that in a few upcoming posts.

So I started with the simplest task possible (or so I thought): I wanted to have my ToDo list on Mac, Windows, and on iPhone—with as little manual intervention as possible.

So I googled, and googled, and googled. And I found something that looked like what I needed. I am talking about EasyTask Manager from orionbelt.com.

EasyTask Manager had all the components: Mac application, iPhone application, and the Windows one. And it looked great! I was so excited!

With the Mac and iPhone applications installed, I entered a few tasks on Mac and expected them to go to iPhone. Supposedly EasyTask Manager on Mac was going to find my iPhone connected to the same wireless network?...

No, that did not happen. After spending an hour trying anything I could think of I gave up and created an online account at the developer's website (and that had to be googled; there was no easy way to find it).

The Mac app could be synchronized alsmost automatically (every 10 mins), or manually to the web and then from the web to iPhone (manually only). "Not ideal but that would work", I thought.

Well, it did work a few times. Next day I entered a few more tasks, synced them to iPhone (yes, manually), and left the office. When I was out, I completed one task, edited one note, and created one new task. Not too heavy of a load, right?

Not really. I came back to the office and tried to sync my changes back. The status I changed (completed one task) went through and I saw the task completed on Mac, but that was about it.

What do I mean?

I mean the note I edited on iPhone did not make it back.

I also mean the new task I created on iPhone synced back but created multiple instances of not only the new task but also some of the existing ones? Like three tasks looking the same (or alsmost the same, I do not remember exactly)?

I tried to get rid on the extra ones, and after deleting one all three disappeared (thus making me lose sothing I should not have). I repeated the procedure of losing my ToDo list with a few of the other duplicates and at that moment I was very clearly not ready to use that software anymore. Not at all, not for free, not even if someone would pay me.

Yeap, both apps went to trash, and I have never installed the Windows one. Never did, never will.

You know, the applications looked so great. I was almost ready to pay $20 for the full version!

Wow, what I cannot understand is how that company is still in the software development business... It is so difficult to find a new customer, and I was ready to become one! Only they were not ready...

It is really sad for me to see things like that. I guess I have been in the software development business for too long to see such bad example that seemed to have never passed even the simplest smoke test. Bug after bug after bug.

But hey, I would like to thank you the developers for letting me move on and discover much better way of syncing not only ToDo list, but calendar and email too!

See you here next time as there is more to come.

Thursday, September 3, 2009

Business Continuity and Customer Web Portals

Today I would like to talk about an important aspect of doing business—Business Continuity, as it applies to Customer Web Portals.

To start with, let me tell you one thing that you probably heard of already, but which is so important that it needs to be told ten time a day.

If you are serious about your business, you should be very serious about your online presence!

If you have got a website that is just out there, update it with SEO friendly content relevant to your business and do it today!


If you can provide your customers with a useful information and give them some tools to make it easier to do business with you, build your Customer Web Portal, and do it like yesterday!


OK, as my favorite host Dave Ramsey likes to say, "I hope I was not unclear!".

Now, what is Business Continuity and why is it so important?

Consider this. What we all experience today is simply a very different, "always on", 24/7 world driven by our desire to have something remarkable. It is not about what we need anymore, it is more about what we want. If you want to know more about this, read Purple Cow by Seth Godin.

But in very simple words this is what happens. We all already have everything we need. This is true not only for our personal lives but for most of the businesses. There are just too many choices for the same kind of product or service.

So what would happen to your business if it suddenly stopped providing your customers with what they want? Even a simple but critical interruption can cause them to leave. We are not too patient anymore assuming all we need to do is to call a different number to get the same or even better service.

Enough reasoning though, and let us see what we could do to make your customers happy by providing them with ability to do business no matter what happens to your servers, website, or some other IT components.

Let us design a simple IT solution (which will be not simple at all inside) that will provide us with high availability, data protection, and happy customers that will be unaware of occasional issues we might experience.

Rule No. 1.
We will host out main Customer Web Portal outside, preferably quite far from your main headquarters. There are a number of hosting decisions to make.

Rule No. 2.
We will build our main Business Software that provides business functionality of the Customer Web Portal so it can run on a different server (typically located at your headquarters) using Internet as the communication channel. This could be your main company business software with a database, all of which would enforce business rules or perform some data processing, or anything similar.

Rule No. 3.
We will build a secured cryptographic system that will connect Customer Web Portal with Business Software component over unsecured Internet connection.

Now, if you look at the above setup, we already have a good foundation (two different physical locations; two or more different servers) but we are still not protected from any failures.

Let us fix that.

Rule No. 4.
We will deploy an identical copy of our main Business software with a copy of the database to the outside hosted Customer Web Portal and will connect them together. The business Software will perform the same processing in parallel with the main system thus forming a hot standby backup system .

We are not done though.

Rule No.5.

We will deploy an identical copy of the Customer Web Portal software to one of the servers located at our headquarters. We will connect the extra copy of the portal to the main Business Software in a similar way as the outside hosted Customer Web Portal connects to the main software. This is going to be our Backup Customer Web Portal.

If anything would go wrong with an Internet connection, or a server at either our headquarters or the outside hosted server, we are still in the business because we effectively have two pieces of everything providing the required redundancy.


Both main and backup systems are synchronized in real time and can survive complete lost of one of them.


Now we are almost done. Almost because we need to document the procedures of switching to a backup system and back in case some outage would really happen.

And the last thing? Test, test, and test the whole thing!

I hope this description will help you design your systems to be 24/7 available and be able to survive any surprises life can throw at you.

And do not take my word for it; the above setup was the only reason why one of my customers is still in the direct deposit business after a main server crash (two days of downtime), and after
AT&T changed their business ADSL setup thus literally taking the whole WAN connection down (for another two days).

Saturday, August 15, 2009

Remote Access and Cisco VPN

Whatever your opinion about working remotely (or teleworking) is, it is here to stay, and it is becoming more and more prevalent. While it might be not for everyone, there are just too many advantages not to seriously consider it for your company.

In my opinion, it is our future. As more people get seriously annoyed with having to put up with traffic every day, and as more companies realize that this can actually do good for the business, the more of us we will see it adopted.

Saved time (more work done every day?), greener environment (less gas consumed, less pollution), less commuting, less spent for car maintenance. Actually, the main reason is even more important.

It saves money for the business. A lot of it. Consider providing technical support for a customer located in a different state. Being able to quickly fix critical issues by just simply accessing system remotely is one thing, and having to go there is another.

It brings money to the business. Because now your business can have customers located not only in a different part of the country, but also in a different part of the world.

OK, I think that everyone knows this already so let's talk about how we can actually make it happen.

First of all, here is how it all works. Very briefly.

NOTE: Remove access is a vast topic so here we will only be discussing a small business scenario where your company will provide access to your workers who can access your internal network from a remove location, such as their home, hotel, or a Wi-Fi spot on a beach in Florida.

1. We need a VPN gateway located on your company network. The gateway will accept remote connections from your workers using Internet as a communication channel.

2. We also need a special VPN Client software that will have to be installed on worker's laptop that will be connecting to the VPN gateway in the office through the public Internet.

NOTE: As the communication channel used here is open, all traffic between VPN gateway and VPN Client software must be (and always is) encrypted. No exceptions.

3. To establish a remote connection, you use the installed VPN Client software to connect to the VPN gateway that must have a public IP address. Once connected, you will have the same access as if you connected your laptop to your office network inside the office.

4. The last step is accessing other computers through established VPN connection. You can use a number of technologies such as Remote Desktop Connection (RDP) to access Windows PCs or VNC for Linux and Mac.

Here is a few examples on How to setup remote access for Mac, How to use Remote Desktop Connection on Windows XP, and Setting up VNC server in CentOS.

One of the best VNC clients: Chicken of the VNC (Mac), TightVNC (Windows). Linux comes with a number of Linux remote access clients that cover both VNC and RDP protocols.

That's all. While there are only a few components needed, there is probably a million different ways how those component can be selected and how they will talk to each other.

Having seen too many bad examples and a few good ones, I will describe only one of the possible ways of how this could be done. I do believe this is one of the best ways to implement a reliable VPN access to the office of a small business company.

VPN gateway. I always use Cisco routers with the Advanced Security (or higher) Cisco IOS software.

Two good examples would be Cisco 1841 or 2811 router, depending on what other features your network needs. Cisco Advanced Security IOS software has a feature called Easy VPN, which performs functions of a VPN server.

VPN Client Software. Cisco has a special software called Cisco VPN Client. This software performs function of a remote end of a VPN connection.

Why Cisco Easy VPN? Why not SSL VPN, or some other kind of VPN?

Yes, there are many, but the idea is still the same: there is some sort of VPN Client software that must be installed on the remote side (laptop of a teleworker in our case). The only difference is that in case of SSL VPN this VPN Client is downloaded and installed through the Web browser almost transparently for the end user as compared to Cisco VPN Client software that has to be installed on a remote site before the VPN connection can be made.

While in some limited situations SSL VPN is the only kind of VPN possible, I do recommend to use Cisco Easy VPN for most of the remote access setups.

The reason is simple. Reliability and cross platform compatibility.

With so many different versions of browsers installed on so many operating systems it is obviously not very easy to make sure that the web-based VPN client installation in SSL VPN scenario would go smoothly. And sometimes it does not. The point is that you want to work out software installation issues, if any, before you believe that you can connect remotely.

On contrast, you can only hope that SSL VPN will work when you need it. Of course, if you know both operating system and a browser you will be using for your remove access and can test SSL VPN connection, then you should be fine too.

Cisco VPN Client is available for Mac, Linux, and Windows. Once installed successfully it is a great reliable software that can keep you connected for hours and even days without any interruptions.

Now, to make this complete, let's answer one more question. Why not use other vendors? Well, you can. As a matter of fact, there are many products sold much cheaper than you would have to pay for a Cisco router.

If you are ready to spend significant amount of time building the solution and testing it to make sure it performs up to your expectations, you surely can go with other vendor too. And you have to be ready to drop the solution (and possibly the vendor) and go with another product if your test fails. Do you have that much time? I do not.

The reason I am staying with Cisco products is simple: Reliability and feature set. You can build literally any network solution you might ever need using Cisco products. And I know that the solution will be available 24/7.

So, the choice is yours—as always. Just keep in mind that your business life will be defined by hundreds of choices you make every day. Which will either bring you to a low IT overhead and happy teleworkers or a nightmare of technical support and a need for full blown IT department.