Why we insist on hosting our applications on our own cloud

We are a SaaS company. We have an extremely experienced team. Together our five man team has over 70 years combined experience, two of us have been developing since before 1st grade and have over 40 years just to ourselves. Quality is our #1 goal. If something isn’t working after we’ve said it’s ready, we take it as a failure, no excuses, analyze what went wrong, and make changes so it doesn’t happen again. To achieve this level of quality we have found that we have to have a controlled environment. We’ve found that customers who insist on hosting our applications themselves are usually not as good as we are (sorry, we don’t want to sugar coat it, it’s just usually the way it is). Anytime we’ve setup our applications on someone else’s servers it invariably costs us extra time, money, and more importantly to us: quality. So aside from the quality our cloud lets us achieve, here are some more reasons it’s the way we do business. We value the value of experts and recognize that even though we have a high degree of confidence in our own skills and abilities, there is a lot we don’t know, and there are always people that know more than us. As such, even though we have 3 experienced Linux system administrators (two of which managed all the servers for a dial-up ISP back in the day) we use server setups and configurations that are standard in the industry and don’t have any weird hacks, tweaks, or funky setups. These are server images / configurations used by thousands of other companies. Our servers...

Why Self Directed Time is Important

Sometimes I love programming, sometimes I don’t.  Recently the importance of pursuing personal projects that you have a passion for has been re-enforced. I enjoy a simple web game called “Canvas Rider“.  I’ve always wanted to make a cool track for the game, but the editor for the track is not very friendly.  Even making simple shapes takes a lot of work.  So I decided to try to write a converter that would convert files generated in InkScape to work with Canvas Rider.  While doing this I needed a better way to search through parsed xml in php and came across QueryPath (a jQuery like tool for php). Once I became familiar with QueryPath (which I was highly motivated to do because of the personal interest I had in the project I was working on) I’ve since used it in numerous other projects.  From doing some Screen Scraping to read linked contacts, to auto-generating an sdk for “Wrike” from their documentation.  And now, again scraping a wholesalers site to send real-time inventory notifications to a reseller. At Novak Solutions, every Friday after 1pm self-directed time starts.  The only expectation is that you eventually report what you did and learned. Another company “TrackAbout” has a nice blog post about the benefits they’ve seen from implementing 5% self-directed time.  Dan Pink gave a very cool Ted Talk about motivating employees and how autonomy and mastery are 2 of the 3 major factors that impact employee motivation.  Self-directed time breeds these two feelings. So, give it a try.  Give your employees some structured self-directed time for a little while and see what benefits you get from...

Getting a BitNami stack running on VMware with VMware tools

We use BitNami for our production servers, and it’s nice to be able to test the same image locally before we push to our production server. This allows us to work out those rare bugs where code behaves differently because of a library or OS difference. To get a BitNami VMware image to be useable you need to install VMware tools. First thing you need to do is download the BitNami VMware image you want, as well as either VMware Player or VMware Workstation. Once you have the VM running, go to the player menu and select Manage, and then “Install VMware Tools”. Next, you need to mount it. Run the following: sudo mkdir /media/cdrom sudo mount /dev/cdrom /media/cdrom Now copy the tgz file in the cdrom path to your user directory, and untar it: cd ~; sudo cp /media/cdrom/VMwareTools* .; tar -zxvf VMwareTools* Now, we need to install the kernel header files so that VMware tools can be compiled (the BitNami VM image doesn’t come with them included). First we need to update the apt-get indexes, so do this: sudo apt-get update Next we need to install the kernel headers: sudo apt-get install linux-headers-$(uname -r) Now you can run the VMware tools installer: cd ~ && sudo vmware-tools-distrib/vmware-installer.pl Hit enter to go with the default option whenever asked a question by the installer. That should do it, although I do one extra step.  As much as I dislike Linux GUI’s, it’s nice to have a browser on the dev server, the reason being we use *.nlocal.info for all our local development sites, then we setup Apache mod_vhost_alias on our...

Shopping cart field names

On the Infusionsoft forum someone asked what the Infusionsoft Fields in the shopping cart are. Knowing this allows you to pre-fill some of your customer’s information from other sources. Below is a picture that shows the field name of each text field in the shopping cart (click the picture for a full-size...